logoalt Hacker News

Kwpolskayesterday at 7:42 AM3 repliesview on HN

As with all guidelines, some people will turn it into a hard rule, and build a linter to enforce it. Then they will split long functions into shorter ones, but with a lot of arguments. And then their other linter that limits argument count will kick in.


Replies

VBprogrammeryesterday at 9:04 AM

And someone else will use the idea that this is a misconception to justify putting hundreds of lines in one function.

Some junior dev will then come along with his specific user story and, not wanting to tear the whole thing up, will insert his couple of lines. Repeat over a 10 year lifecycle and it becomes completely unmanageable.

I remember trying to tease apart hundreds of lines of functions in a language which didn't have the IDE support we have these days. It was always painful.

Even the most script like functions I've ever worked with benefit from comments like:

  # Validate that the payment was successfully sent.
These subheadings can just as easily become functions. If you limit the context in each function it becomes a genuine improvement.
Hackbratenyesterday at 11:33 AM

> and build a linter to enforce it.

That’s why linters allow you to suppress specific rules for a single statement (and ideally let you write a short comment that explains why you chose to suppress it.)

n4r9yesterday at 8:33 AM

Sounds like an opportunity to guide that person.

show 1 reply