He trabajado en la misma compañía de software durante más de diez años. Como resultado, he implementado una gran base de código usando varios lenguajes de programación orientados a objetos. Era un programador principiante cuando comencé mi carrera y no sabía mucho sobre una buena interfaz y principios de diseño de clase. Me gustaría pensar que mis habilidades de diseño han mejorado con el tiempo, pero ahora me enfrento a más y más dificultades para mejorar mi código anterior debido a problemas de compatibilidad con versiones anteriores. Mi código es utilizado por una gran cantidad de clientes como parte de los productos que vende mi empresa.
Mi pregunta es: ¿cuándo debería uno dejar de tratar de mantener la compatibilidad con versiones anteriores de las interfaces antiguas y morder la viñeta a favor de implementar un diseño completamente nuevo?
Creo que llega un punto en el que mantener la compatibilidad con versiones anteriores se convierte en una carga tan grande que los cambios útiles en las interfaces se vuelven imposibles. ¿Alguien ha experimentado inquietudes similares, quién puede proporcionar algún comentario?
I think there comes a point where keeping backward compatibility becomes such a big burden that useful changes to interfaces become impossible.- Y creo que respondiste tu propia pregunta allí ...