A medida que programamos, todos desarrollamos prácticas y patrones que usamos y en los que confiamos. Sin embargo, con el tiempo, a medida que cambia nuestra comprensión, madurez e incluso el uso de la tecnología, nos damos cuenta de que algunas prácticas que alguna vez pensamos que eran excelentes no lo son (o ya no se aplican).
Un ejemplo de una práctica que usé una vez con bastante frecuencia, pero que he cambiado en los últimos años, es el uso del patrón de objetos Singleton .
A través de mi propia experiencia y largos debates con colegas, me he dado cuenta de que los singleton no siempre son deseables ; pueden hacer que las pruebas sean más difíciles (inhibiendo técnicas como burlarse) y pueden crear acoplamientos no deseados entre partes de un sistema. En su lugar, ahora uso fábricas de objetos (generalmente con un contenedor de IoC) que ocultan la naturaleza y la existencia de singletons de partes del sistema que no les importa, o necesitan saber. En cambio, dependen de una fábrica (o localizador de servicios) para obtener acceso a dichos objetos.
Mis preguntas a la comunidad, en un espíritu de superación personal, son:
- ¿Qué patrones o prácticas de programación ha reconsiderado recientemente y ahora trata de evitar?
- ¿Con qué decidiste reemplazarlos?