Comment by soulofmischief
1 year ago
Yes, that's what can means. It's still the developer's responsibility to correctly write and test code such that things do what they say on the tin.
What's worse is trying to navigate an imperatively written 2000-line single-function, untestable module with undocumented, unabstracted routines found in ten other places in the codebase.
This is something I've encountered plenty in my career, always written by people who eschew best practices and misunderstand the benefits of abstraction, or think they're writing good abstractions when it's really just needless indirection without actually reducing coupling.
Understanding the nuance is one of the qualities of a good developer.
And on the other side you see a lot of single implementation interfaces; or 2 lines methods which call perfectly named methods 7 levels deep which could have been a 50 lines method easy to grok on a screen with zero scrolling.
So things are on a spectrum depending on the situation and what you want to accomplish => measuring code quality is not a simple thing.