Write Everything Twice
dev.to
dev.to
But now that you mention it, I haven't actually read Refactoring :| The knowledge actually required for programming is tiny compared to what's available; people's exposure is all over the map.
Dogma in general is anethema to innovation, but that doesn't mean particular practices are wrong just because some people are dogmatic about them.
I like the WET acronym counterbalancing DRY. Nice touch.
1. the author says "premature optmization", and it has the right context, however I prefer to use "premature abstraction" or even "speculative generalization".
2. YAGNI and DRY can be counter-principles because at times "you aint gonna need that level of abstraction/genericity".
3. Inadequately abstract and generic code hurts simplicity and readability.
Can't agree to overturn a tried and true best practice, in favour of the opposite, as the article suggests. While easy to play around and adhere to the dogma of DRY at all costs; namely making code difficult to reason and taking ages to do it; we just call this premature optimisation - DRY done with no critical thought about priorities.
Tldr; don't optimise for DRY too early or at the cost of what's most important or expedient. Use common sense and adopt DRY only as far as necessary for your team and to help others extend and be efficient working with your code. Not a bad article but maybe just complicating what we already have a name for.