Seeing that Uncle Bob is making a new version of Clean Code I decided to try and find this article about the original.

You are viewing a single thread.
View all comments View context
3 points

Because abstractions leak. Heck, abstractions are practically lies most of the time.

What’s the most time-consuming thing in programming? Writing new features? No, that’s easy. It’s figuring out where a bug is in existing code.

How do abstractions help with that? Can you tell, from the symptoms, which “level of abstraction” contains the bug? Or do you need to read through all six (or however many) “levels”, across multiple modules and functions, to find the error? Far more commonly, it’s the latter.

And, arguably worse, program misbehavior is often due to unexpected interactions between components that appear to work in isolation. This means that there isn’t a single “level of abstraction” at which the bug manifests, and also that no amount of unit testing would have prevented the bug.

permalink
report
parent
reply
1 point

How do abstractions help with that? Can you tell, from the symptoms, which “level of abstraction” contains the bug? Or do you need to read through all six (or however many) “levels”, across multiple modules and functions, to find the error?

I usually start from the lowest abstraction, where the stack trace points me and don’t need to look at the rest, because my code is written well.

permalink
report
parent
reply
7 points

Yeah, cause silly mistakes in one place never affect another place that’s completely unrelated.

permalink
report
parent
reply
3 points

That’s great, but surely, from time to time, you have to deal with code that other people have written?

permalink
report
parent
reply
2 points

I do, and whether I have a good time depends on whether they have written their code well, of which the book’s suggestions are only one metric.

permalink
report
parent
reply

Programming

!programming@programming.dev

Create post

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



Community stats

  • 3K

    Monthly active users

  • 860

    Posts

  • 7.4K

    Comments