Abstract vs. DRY

DRY is the worst programming advice ever. It may seem easy. But, it makes changing or extending software harder. Abstraction, on the other hand, may seem difficult, but makes changing and extending software simpler. Prefer simple over easy.