Trabalho na mesma empresa de software há mais de dez anos. Como resultado, implementei uma grande base de código usando várias linguagens de programação orientadas a objetos. Eu era um programador iniciante quando comecei minha carreira e não sabia muito sobre os bons princípios de interface e design de classe. Gostaria de pensar que minhas habilidades de design melhoraram com o tempo, mas agora tenho mais e mais dificuldades em melhorar meu código anterior devido a preocupações de compatibilidade com versões anteriores. Meu código é usado por um grande número de clientes como parte dos produtos que minha empresa vende.
Minha pergunta é: quando parar de tentar manter a compatibilidade com versões anteriores de interfaces antigas e morder a bala em favor da implementação de um novo design?
Acho que chega um momento em que manter a compatibilidade com versões anteriores se torna um fardo tão grande que alterações úteis nas interfaces se tornam impossíveis. Alguém já experimentou preocupações semelhantes, quem pode fornecer algum feedback?
I think there comes a point where keeping backward compatibility becomes such a big burden that useful changes to interfaces become impossible.
- E acho que você respondeu sua própria pergunta lá ...