115 karma · joined July 25, 2016
Those ideas do have flaws, and most of us are looking to improve how we right code. So if you aren't blind to those flaws, please, write a book or a blog or whatever on the best ways to write software so that we can all learn.
https://github.com/unclebob/fitnesse/blob/master/src/fitness...
Yup, OK, got it. The FitnessContext looks a bit rough, but no big deal.
https://github.com/unclebob/fitnesse/blob/master/src/fitness...
That's completely readable, I get it.
https://github.com/unclebob/fitnesse/blob/master/src/fitness...
Again, looks fine.
The main issue with all of these files is that there is quite a bit of boilerplate code, but that's Java's fault, not the code's fault.
I'm sorry, but I disagree. Looking for the most substantial pieces of code that I could find, and they look really good. I'm sure there are some little utils or something that look strange out of context, but I would be thrilled if I were called to work on legacy code and it was this nice.
;-)
For example, even with widescreen monitors, it is still useful to limit line length. Why? Because many people will have multiple source files side-by-side on one of those widescreen monitors, at which point it makes sense for them to not run on indefinitely.
And of course, that is just a guideline, one that I break regularly. However, if it's a method with many args, I'll break the args onto their own lines.
However, the overriding concern is that an organisation works to code towards a common style, whatever that may be, so that unfamiliar code is predictable and understandable.
. . .
If code is difficult to understand, I consider that to be a bug. And if, for some reason, the section of code actually is difficult to implement, I would at least want a pretty good comment explaining the context around it and the reasons for the approach taken.
Not only will this help improve the code, but if it is a senior developer, it will help them to understand where they've become blind to a particular complexity. It is great feedback to have someone explain that they don't understand code that seems 'fine' to you.
But with FP, it seems like it is always the answer. And it's even better if your Operating System can be immutable too. And your build scripts. And, even if it take 10 times as long to write, at least we will be confident that it's type safe at the end.
Most people use Unity these days. I'm pretty sure it's in C#, and there was something about the licence recently that they probably backed down from. You can still write in c with OpenGL, but you will probably have to create your own game engine(?). You will need a game loop where you track the milliseconds elapsed each frame. Try not to stutter in your game loop. 16 ms. Oh, and double-buffering the output is probably a good idea.
See? Don't sound so smart now, do I?
And C4 diagrams are great for explaining software architecture, which wouldn't have been possible without UML and esp. class diagrams.
For anyone who didn't live through that time, the Open-Closed Principle states that software should be open for extension, but closed for modification.
However, you could also rephrase that principle to be: 'you should always prematurely abstract your designs'.
I think if abstraction was viewed as a negative to be avoided unless necessary, software architecture would have been far better off.
To be fair, premature abstraction is a lot of fun for those that do it. It's just those that follow who aren't so keen.
The thing I love most about emacs is that it is joyously consistent. The same key combination to jump ahead by a word works everywhere, such as when you're opening files or navigating directories. This consistency means that I am often very efficient trying new packages that I have never used.
Maybe you've never seen someone use emacs in anger? If so, check out this video of Steve Yegge doing some stuff in Emacs: https://youtu.be/lkIicfzPBys?t=142
As for VI vs emacs - both are good. I would search YouTube for 'Top 10 VIM plugins' and 'Top 10 emacs packages' and see if either grab your attention and go with that.
I think the site looks great and is very useful. The one suggestion I have would be to add a bit of space to everything to give it some breathing room.
These are the changes I made: try them out and see what you think.
body { padding: 10px; background: #f0f0f0; }
#groups { grid-template-columns: repeat(auto-fill, minmax(350px, 1fr)); }
.group { padding: 10px; margin: 4px; }
.group > span { margin: 0 20px 20px 0; }
.gmatch { padding: 6px 0; }
My advice would be to do what you need to do to weather this period of your employment and not give yourself a hard time about it. you don't NEED to be doing anything. If your job is still coding, do some coding while you are at work, go home and then do some hobby that you have been wanting to do. Learn to play the piano or fly racing drones or whatever.
If you have a long enough career, having a six to eight month slump of not being into coding is nothing, so don't sweat it. Just make try to make it through it without making it worse.
I too would like to hear about what complexities you are encountering and if they are incidental or necessary complexities.
Imagine everyone on a team does a (free, found online, not 'legitimate') test and then spends an hour or two discussing the results. Everyone learns that the developers are not very agreeable (joking! Lighten up!) and that the sales people are extroverted and that we're all quite different but we can all work together to achieve a common goal, or whatever.
I think it's fine so long as you don't claim it it science and that you don't get caught up in it. And it's better than going on a ropes course . . .
Of course, that was not on an RTX 3090.
'This is awkward! Something went wrong and it's probably our fault :-('
is much better for users than
'Unexpected error occurred in logTicketResponse'
And no, it isn't sufficient, but it is better. Providing useful error messages is really hard (and it sounds like your application does a good job of it), and we as software developers are not very good at it.
For everyone who complains about the cutesy error messages, how much time are you spending in your own code to provide useful error messages that explain the problem and suggest resolutions?
What you need is the ability to filter the graph. Narwhal and the nx mono-repo toolset has a pretty cool dependency graph feature built in. Here's a video of how they use it:
The people who (at least initially) advocated for microservices were the first to point out that it is better to start as a monolith and then refactor into microservices as required by external factors.