4 ms·
I don't think the fact that a function works well is a good enough reason to write a 2000 line function. Sometimes there are long pieces of code that implement
by realrains 3y ago
I don't think the fact that a function works well is a good enough reason to write a 2000 line function. Sometimes there are long pieces of code that implement complex algorithms that are difficult to break into smaller pieces of code, but those cases are limited to the few you mentioned.
- BigJono 3y agoComputers execute code in a linear fashion, why on earth would you "need a reason" to NOT abstract something? Just because abstraction is often the right thing to do doesn't make it the base case. It's like saying you need a reason not to add 4000 random jumps in your assembly code just to make it more difficult to read...
- ahtihn 3y agoSource code isn't written to be executed by computers, it's written to be read by other humans. Source code tends to be very far removed from how computers execute anything, so I wouldn't use that as a justification for any sort of code style.
- amoss 3y ago> Source code isn't written to be executed by computers, it's written to be read by other humans. It is pronounced "documentation".
- osigurdson 3y agoI guess all we know is there were 2K lines of code and the commenter thinks that was the right way to do it. It would be necessary to see the code to appropriately critique it.
- goatlover 3y agoNot just the commenter, but his team as well. It passed code review with flying colors, apparently. The moral of the story is that there always exceptions and developers should not be ideologically committed to one approach above all else.
- em-bee 3y agowe know more than that: You could argue that every one of those 9 scopes could be a separate function, but then devs would be tempted to reuse them. Yet, each step had subtle assumptions about what happened before. what we don't know is if it would have been possible to abstract those assumptions away so that functions could have been defined without them.
- osigurdson 3y agoEven the contrived example in the post can be factored differently (and better imo). How do we know those 9 scopes are appropriate?
- PH95VuimJjqBqy 3y agoWe do know that if we trust the poster, they said very clearly it could have been done but they didn't consider the value to outweigh the downsides.
- em-bee 3y agoyes, i meant we don't know if it would have been possible to extract functions in such a way that they are actually safely reusable.
- nomel 3y ago> that implement complex algorithms that are difficult to break into smaller pieces of code My longest code is always image processing. It's usually too hard to break up for the sake of breaking up. There's nothing to reuse between the calls to filters/whatever.
- flohofwoe 3y agoThe default should be reversed, don't break into smaller pieces unless there's a really good reason.
- coldtea 3y ago>I don't think the fact that a function works well is a good enough reason to write a 2000 line function. The fact that it works well and reads well (when it does, as in the parent's case), is. Aside from those factors what else would be against it? Dogma?
- deleted 3y ago[deleted]