Ich arbeite seit mehr als zehn Jahren bei derselben Softwarefirma. Als Ergebnis habe ich eine große Codebasis mit verschiedenen objektorientierten Programmiersprachen implementiert. Ich war ein Anfängerprogrammierer, als ich meine Karriere begann, und ich wusste nicht viel über gute Schnittstellen- und Klassendesignprinzipien. Ich würde gerne glauben, dass sich meine Designfähigkeiten im Laufe der Zeit verbessert haben, aber ich habe jetzt aufgrund von Bedenken hinsichtlich der Abwärtskompatibilität immer mehr Schwierigkeiten, meinen früheren Code zu verbessern. Mein Code wird von einer großen Anzahl von Kunden als Teil der Produkte verwendet, die mein Unternehmen verkauft.
Meine Frage ist: Wann sollte man aufhören zu versuchen, die Abwärtskompatibilität alter Schnittstellen aufrechtzuerhalten und die Kugel für die Implementierung eines brandneuen Designs zu beißen?
Ich denke, irgendwann kommt die Beibehaltung der Abwärtskompatibilität zu einer so großen Belastung, dass nützliche Änderungen an den Schnittstellen unmöglich werden. Hat jemand ähnliche Bedenken gehabt, wer kann ein Feedback geben?
I think there comes a point where keeping backward compatibility becomes such a big burden that useful changes to interfaces become impossible.
- Und ich denke, Sie haben dort Ihre eigene Frage beantwortet ...