Frage

Aus meiner Erfahrung Verpflichtungen rückwärts / vorwärts Kompatibilität sind die goldenen Käfig der Software-Engineering-Industrie. Ich habe vor allem dies beobachtet der Fall für die Dokumentendateiformate und Programmiersprachen / APIs zu sein. Kunden und Partner hassen es, wenn ihre vorhandenen Daten oder Code Pausen; Wenn Sie jedoch nie Kompatibilität brechen, können Sie ernsthaft beschränken Ihre Fähigkeit, auf lange Sicht innovativ zu sein.

Gibt es Lösungen für dieses Problem, anders als allmähliche deprecation von alten Funktionen? Es scheint, wie Virtualisierung, wie in Windows 7 XP-Modus ist eine aufregende Möglichkeit. Gibt es andere?

Auch für diejenigen von uns, die neuen Systeme entwerfen wollen, die als zukunftssicher wie möglich sind, welche Lehren können wir aus den Fehlern der Vergangenheit lernen in der Industrie gemacht?

War es hilfreich?

Lösung

Innovate durch die Erweiterung nicht durch die öffentlichen APIs neu zu schreiben. Haben konsistente generische öffentliche Schnittstellen Funktionalität Back-End. Sie können so lange jederzeit private Module neu schreiben, wie Sie die öffentliche API-Module mit den Ergebnissen liefern, die sie erwarten.

Haben Ihre Verbesserungen in dem Back-End und die API konsistent so viel wie möglich verlassen. Erstellen Sie neue Module und dokumentieren sie deutlich, wenn die öffentlichen Teile des API erstreckt, deprecation der alten Wege kommt natürlich, wenn Sie neue und bessere Wege liefern, Dinge zu tun, die als Ergänzungen zu den alten Wegen kommen.

Für Dokumentformate, immer Versionsnummern enthalten und stellen Sie sicher, dass Sie Möglichkeiten haben alle vorhandenen Versionen zu unterstützen. Wie bei den APIs, fügen Sie die neue Funktionalität durch die Erweiterung, nicht durch Umschreiben.

Wenn Sie grundlegende Änderungen an der Gesamtarchitektur der Software bringen wollen, haben Sie die neue Version umfassen die alte als Modul -. Es zu einer größeren Größe führen wird, aber eine bessere Unterstützung für ältere Daten und Programme

Andere Tipps

Mit XML als Basis für Ihre Datei-Format, und fügen Sie nur auf die Spezifikation DTD, nicht löschen. Auf diese Weise Ihre Dateien sollten in früheren Versionen abwärtskompatibel sein, das ist ein Plus.

Hier ist ein gutes Beispiel: Mit SLF4J Bridges einfacher Migration von einem Logging-Modul zu ermöglichen, zum anderen in Java.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top