When DRY becomes an anti-pattern: Abstraction Layers
medium.com