In a decent IDE you can CTRL+click (or similar) on a function name to go to its definition. This is absolutely faster than scrolling, especially if you’ve got more than a couple dozen lines in the current file.
When splitting functionality into smaller functions you would ideally not have to keep implementation details of other functions in short term memory.
You only need to understand/remember the contents of the current function. Does it do what the name suggests? Cool, you’re done checking it.
Of course, the “2 hard problems in computer science” meme exists for a reason - it’s not always straight forward to come up with good names. But in my experience, even when coming up with a fitting name is difficult, reducing nesting usually helps a lot with comprehension, mainly because it reduces scope and thereby the amount of information you need to hold in your head.
The larger a function gets, the harder it is to check that it does what it’s supposed to.
There is of course a balance to strike - trying to force every single function to be at most 3 lines is likely to make the code more difficult to understand and is, in my eyes, almost pathological. But a function that covers more than a screen is the other extreme that should be avoided when practical.
In a decent IDE you can CTRL+click (or similar) on a function name to go to its definition. This is absolutely faster than scrolling, especially if you’ve got more than a couple dozen lines in the current file.
When splitting functionality into smaller functions you would ideally not have to keep implementation details of other functions in short term memory.
You only need to understand/remember the contents of the current function. Does it do what the name suggests? Cool, you’re done checking it.
Of course, the “2 hard problems in computer science” meme exists for a reason - it’s not always straight forward to come up with good names. But in my experience, even when coming up with a fitting name is difficult, reducing nesting usually helps a lot with comprehension, mainly because it reduces scope and thereby the amount of information you need to hold in your head.
The larger a function gets, the harder it is to check that it does what it’s supposed to.
There is of course a balance to strike - trying to force every single function to be at most 3 lines is likely to make the code more difficult to understand and is, in my eyes, almost pathological. But a function that covers more than a screen is the other extreme that should be avoided when practical.
Oh hey it works, thanks.