|
|
|
|
|
by ss3000
2181 days ago
|
|
> How far should we go in making things generic? My rule of thumb for this is to repeat yourself at least 3 times before trying to build an abstraction to DRY them up. 3 use cases is obviously not always sufficient inform the design of a good abstraction, but IME: - abstracting at 2 use cases is very often premature and results in leaky/brittle abstractions where the harm from added coupling between fundamentally incompatible usages far outweighs whatever little harm can be introduced by keeping the 2 usages as repeated code, and - with any more than 3 use cases, the maintenance cost of keeping the usages in sync starts to scale non-linearly, so at the very least thinking about a design for a potential abstraction at that point becomes a worthwhile exercise, even if we end up deciding it's not yet appropriate (hence the "_at least_ 3 times"). |
|
Also known as WET (Write Everything Twice).