Lavoro nella stessa società di software da più di dieci anni. Di conseguenza, ho implementato una base di codice estesa utilizzando vari linguaggi di programmazione orientati agli oggetti. Ero un programmatore principiante quando ho iniziato la mia carriera e non sapevo molto dei buoni principi di interfaccia e design di classe. Vorrei pensare che le mie capacità di progettazione sono migliorate nel tempo, ma ora incontro sempre più difficoltà nel migliorare il mio codice precedente a causa di problemi di compatibilità con le versioni precedenti. Il mio codice viene utilizzato da un gran numero di clienti come parte dei prodotti venduti dalla mia azienda.
La mia domanda è: quando dovremmo smettere di cercare di mantenere la retrocompatibilità delle vecchie interfacce e mordere il proiettile a favore dell'implementazione di un nuovo design?
Penso che arrivi un punto in cui il mantenimento della compatibilità con le versioni precedenti diventa un peso così grande che diventano impossibili modifiche utili alle interfacce. Qualcuno ha riscontrato preoccupazioni simili, chi può fornire un feedback?
I think there comes a point where keeping backward compatibility becomes such a big burden that useful changes to interfaces become impossible.- E penso che tu abbia risposto alla tua domanda lì ...