- Programmer A sees duplication.
- Programmer A extracts duplication and gives it a name.
This creates a new abstraction. It could be a new method, or perhaps even a new class. - Programmer A replaces the duplication with the new abstraction.Ah, the code is perfect. Programmer A trots happily away.
- Time passes.
- A new requirement appears for which the current abstraction is almost perfect.
- Programmer B gets tasked to implement this requirement.
Programmer B feels honor-bound to retain the existing abstraction, but since isn't exactly the same for every case, they alter the code to take a parameter, and then add logic to conditionally do the right thing based on the value of that parameter.What was once a universal abstraction now behaves differently for different cases. - Another new requirement arrives.
Programmer X.
Another additional parameter.
Another new conditional.
Loop until code becomes incomprehensible. - You appear in the story about here, and your life takes a dramatic turn for the worse
jueves, 29 de noviembre de 2018
prefer duplication over the wrong abstraction
From: https://www.sandimetz.com/blog/2016/1/20/the-wrong-abstraction
Suscribirse a:
Enviar comentarios (Atom)
No hay comentarios:
Publicar un comentario