this post was submitted on 15 Sep 2023
116 points (90.8% liked)

Programming

17418 readers
228 users here now

Welcome to the main community in programming.dev! Feel free to post anything relating to programming here!

Cross posting is strongly encouraged in the instance. If you feel your post or another person's post makes sense in another community cross post into it.

Hope you enjoy the instance!

Rules

Rules

  • Follow the programming.dev instance rules
  • Keep content related to programming in some way
  • If you're posting long videos try to add in some form of tldr for those who don't want to watch videos

Wormhole

Follow the wormhole through a path of communities !webdev@programming.dev



founded 1 year ago
MODERATORS
you are viewing a single comment's thread
view the rest of the comments
[–] Dark_Arc@social.packetloss.gg 3 points 1 year ago* (last edited 1 year ago) (1 children)

The code on the right is better (though perhaps taken to an extreme) and what it comes down to is the code on the right makes you think in terms of the layers of the function when you make a change.

Linear functions provide very little friction to changes that (when you see the interaction through all the layers) are actually quite bad. The code on the left will -- without extreme discipline -- become spaghetti as the years pass. Even with extreme discipline as the lines of code in the function grow, and other comments are added, the actual flow of the function will be harder to see and harder to grok because it can't all be put up on the screen at the same time.

It's ultimately the same idea as minimizing side state/side effects. You want a bunch of small pieces that can be independently verified as doing their job, rather than one large thing that you can't understand at a glance.

[–] morrowind@lemmy.ml 1 points 1 year ago (1 children)

You can always extract out the linear code when it actually becomes useful. It's much easier to refactor when needed.

[–] Dark_Arc@social.packetloss.gg 3 points 1 year ago (1 children)

I disagree, by the time you find you "need to" it's often already tangled.

[–] morrowind@lemmy.ml -1 points 1 year ago (1 children)

Linear code is almost always easier to refactor than code split into functions

[–] Dark_Arc@social.packetloss.gg 4 points 1 year ago

Yeah I'm going to hard disagree with you on that.