I would say that this depends on whether you are using the "Good" or "Bad" definition of DRY, much like the same way this applies to tech debt, SOLID, etc etc.
And most people do interpret DRY as "Reduction of code duplication"
More precise might be to contrast abstraction and indirection.
And most people do interpret DRY as "Reduction of code duplication"
More precise might be to contrast abstraction and indirection.
Comments
For the purpose of this post, I'm using the de facto "de-duplication" definition that so many code bases fall prey to.
@avdi.codes has already pointed out that The Prag Prog has the canonical definition of "good" DRY. That's not what we're talking about.
I guess we can infinitely recurse if we do that though.
Unit tests. Agile. Etc. :)
This reply is itself far too abstract, but I'm glad you are talking about this topic. It's important, and I agree w. your conclusion.