News for hackers. Stuff that matters.
Re:Why general inheritance is flawed and how to finally fix it by BurningFrog on Sunday December 12, 2021 @07:06PM (#29535066)
This question determines if you need to be DRY or not:

"If [some fact] in the code base needs to change, how many places would we have to change it in?"

If the answer is > 1, you have a very good DRY case. Otherwise, when [some fact] changes, it will probably not be changed in one of the places, and the system will be broken.

This often coincides with having an "elegant codebase", but that's not the most important part.

Re:Why general inheritance is flawed and how to finally fix it by 3np on Monday December 13, 2021 @05:49AM (#29538456)
A younger self used to be very strict about DRY.

For a living codebase, nowadays my general rule of thumb is to consciusly duplicate code until it covers 3 different cases, and only then refactor (unless the DRY way is as fast and obvious).

It takes more than that to yield spaghetti and a lot of time is saved on premature generalization. Plus the generalization is often way more straightforward once the explicit cases are already implemented.

Re:Why general inheritance is flawed and how to finally fix it by BurningFrog on Monday December 13, 2021 @08:15AM (#29539264)
https://en.wikipedia.org/wiki/Rule_of_three_(computer_progra...

I follow this too for "style" refactorings.

Re:Why general inheritance is flawed and how to finally fix it by dllthomas on Sunday December 12, 2021 @08:09PM (#29535457)
The original formulation of DRY was "Every piece of knowledge must have a single, unambiguous, authoritative representation within a system," which in import winds up pretty close to what you have here.