logoalt Hacker News

alfons_foobaryesterday at 6:52 AM1 replyview on HN

Agree that "splitting for splittings' sake" (only to stay below an arbitrary line count) does indeed not make sense.

On the other hand I often see functions like you describe - something has to be executed step-by-step (and the functionality is only used there) - where I _whish_ it was split up into separate functions, so we could have meaningful tests for each step, not only for the "whole thing".


Replies

AnimalMuppetyesterday at 3:58 PM

How about "splitting for comprehension's sake"?

If I have a huge function, and I can peel parts off into sensible well-encapsulated sub-functions, and I name them well, then my ability to comprehend the whole goes up.

If I do that, future me will thank me, because I will almost inevitably be back to that function at some point.

But for this to work, the sub-functions have to really do what they say, and not do anything more. I have to be able to trust that I can understand them by just their name and arguments.