6 ms·
This feels borderline tautological: good code is good because it’s good. Good or bad, you’re going to end up needing to add new features to this code. Or someo
by aaronbrethorst 2y ago
This feels borderline tautological: good code is good because it’s good.
Good or bad, you’re going to end up needing to add new features to this code. Or someone misunderstood an input or output to/from this code and you’ll need to read through it to understand how it’s implicated in a bug.
I think ‘good code is easy to read’ is pretty profound: DRY code with the right abstraction is easy to read. DRY code with the wrong abstraction is hard to read.
- ModernMech 2y agoIt's because they are using "read" to mean "understood/interpreted" in the sense that the reader is executing the program in their head. In their last paragraph: It should be so well-structured and named that its purpose and functionality are immediately apparent [when read]. This minimizes the need for others to read through **and interpret** the code, allowing them to use it more effectively. (emphasis added) So the point is really: "Good code should be so apparent that when the reader reads it they do not have to be a human interpreter."
- Sakos 2y agoIs that possible? I'm not sure if I've ever read code like that before, but maybe that's just me.
- bayindirh 2y agoHave you ever had the need to read the source code of a tool because it doesn't behave the way it should, and its help and documentation prescribes? I have been there a couple of times, and how some stuff is handled in these codebases were sad. Sloppy, assumption ridden, or pure, inelegant and fragile hacks. Even if you're reading a code to modify it, good code is easier to follow and read (point of the junior developer), and as a result, you touch less and less parts of the code to develop it even further. So yes, Good code is rarely read, or "read less, and in more niche cases".
- gravypod 2y ago> Have you ever had the need to read the source code of a tool because it doesn't behave the way it should, and its help and documentation prescribes? I believe this varies wildly programmer to programmer. I'm often diving into code and reading that when debugging. I've done this with many code bases. It may be debatable if any of them are "good".
- bayindirh 2y agoPeople's quality bar differs in height, that's true, but I want to raise one example: https://rclone.org/install.sh https://rclone.org/install.sh Which is readable, understandable and exceptionally good at what it does for 200 line bash script. So, there's good code out there.
- pydry 2y agoMost essays about good code seem to end up being tautological. The good ones dont.
- chaboud 2y agoThere’s a thin sliver of things I have read through that I considered good (even great) that were high effort to read. Things like STL, boost (in parts), numpy… huh. Come to think of it, all things that use C++ templates… and I’m a big fan of templates… The thing they all have in common is that they are/were overwhelmingly useful to people who didn’t need to go digging inside of them to use or understand them. These are bodies of code for which the behavioral and algorithmic properties were documented thoroughly, bodies of code that generalize to wide ranges of applications. Still, we’re not all writing STL core classes every day. Sure. Write code so good it doesn’t need to be read. Write code so good that people want to read it. And write code that, when read, is welcoming, comprehensible, and considerate of others or yourself in the future. Saying the first thing shouldn’t mean unsaying the other things… Something our author may learn over time.
- aaronbrethorst 2y agoI would argue that lots of useful code is an utter dumpster fire internally. That doesn't mean we shouldn't strive to do better. Useful | | Bad-------Good | | Not Useful
- eyelidlessness 2y agoThere’s probably a time axis that comes into play, at least for a large number of projects. Bad code which is immediately useful, even indispensable, can decline in utility fairly sharply the parameters which determine its usefulness change faster than it can be adapted to meet those needs or goals.
- aaronbrethorst 2y agoThere's definitely a time axis that comes into play. I'd say that all tech debt should be (but probably isn't always) in that top left quadrant. Like they say, good/fast/cheap - pick two (if you're lucky).
- earnesti 2y ago
- petermcneeley 2y agoI think you are not reasoning correctly here Adding features to a code means it was incomplete. Misunderstanding input/output usually means it is poorly documented or lacked a good API. A good API works at the surface (in/out) and not in the volume. Really good code solves a problem completely. I have worked with such code and yes almost nobody ever goes into this code (and makes changes).
- x0x0 2y ago> Adding features to a code means it was incomplete. That definitely implies code can't be good if needs change, which makes no sense to me.
- CuriousCosmic 2y agoAdding features means it was incomplete. Good code can essentially always be built upon instead of modified.
- exe34 2y agois "building upon" different from "adding features", in this new terminology?
- phito 2y ago[dead]
- x0x0 2y agoBut code can be complete and then become so-called incomplete because, again, needs change. eg someone releases a new file format. You believe ffmpeg is bad code?
- mewpmewp2 2y agoIn that case you could argue that you would be just writing new code to write a handle for that file format. In ffmpeg case I assume this is how it would be.
- frapaconi 2y ago[flagged]
- aaronbrethorst 2y agoBooks and movies have no morals and so they cannot be good or bad.
- frapaconi 2y agoPrecisely! Well, I suppose Arnold runs bad code in Terminator. Well, I suppose suppose it might be good code according to Skynet.
- eyelidlessness 2y agoIn case it isn’t obvious, I’m reasonably confident that most everyone else is discussing “good” as an assessment of quality, not morality. There are actually aspects of morality which might be discussed, but I generally don’t think it’s the topic at hand.
- xwowsersx 2y agoYou are being a pedant. "Good" can describe anything that meets high standards or performs well in its context, e.g. as 'good game' or 'good weather.' Your excessive focus on minor linguistic nuances is counterproductive. It's more important to understand the overall message than to get bogged down by trivialities, which everyone here seems to be able to do — except you. Moreover, by repeatedly correcting language, you give off an 'I'm smarter than you' vibe, which isn't conducive to a productive conversation.
- frapaconi 2y ago[flagged]
- aaronbrethorst 2y agoI know this can be hard to accept, but language is fluid and words have many different ways of being used.