Erklärung zum Problem der Abwärtskompatibilität

Geben Sie wie üblich eine semantische Definition der "Abwärtskompatibilität", bevor Sie mit der Präsentation beginnen.







Abwärtskompatibilität ist die Eigenschaft des gesamten API-Systems, über die Zeit stabil zu sein. Dies bedeutet Folgendes: Code, der von Entwicklern geschrieben wurde, die Ihre API verwenden, funktioniert noch lange ordnungsgemäß . Diese Definition enthält zwei große Fragen und zwei Klarstellungen.







  1. Was bedeutet "funktional korrekt"?







    Dies bedeutet, dass der Code weiterhin seine Funktion ausführt - um eine Benutzeraufgabe zu lösen. Dies bedeutet nicht, dass es weiterhin auf die gleiche Weise funktioniert: Wenn Sie beispielsweise eine UI-Bibliothek bereitstellen, wird durch das Ändern funktional irrelevanter Designdetails wie Schattentiefe oder Randstrichform die Abwärtskompatibilität nicht beeinträchtigt. Zum Beispiel führt das Ändern der Größe der visuellen Komponenten wahrscheinlich dazu, dass einige benutzerdefinierte Layouts auseinanderfallen.







  2. Was bedeutet "lange Zeit"?







    Aus unserer Sicht sollte die Dauer der Aufrechterhaltung der Abwärtskompatibilität mit der Dauer der Lebenszyklen von Anwendungen im entsprechenden Themenbereich verknüpft werden. Eine gute Richtlinie sind in den meisten Fällen die LTS-Zeiträume der Plattformen. Da die Anwendung aufgrund des Endes der Plattformunterstützung weiterhin neu geschrieben wird, wird normalerweise empfohlen, auch auf eine neue Version der API zu wechseln. In den Hauptfachbereichen (Desktop- und mobile Betriebssysteme) wird dieser Zeitraum in mehreren Jahren berechnet.









Warum die Abwärtskompatibilität aufrechterhalten werden muss (einschließlich der erforderlichen Maßnahmen in der API-Entwurfsphase), geht aus der Definition hervor. Die Beendigung der Anwendung (vollständig oder teilweise) aufgrund eines Verschuldens des API-Anbieters ist für jeden Entwickler ein äußerst unangenehmes Ereignis, wenn nicht sogar eine Katastrophe, insbesondere wenn er Geld für diese API bezahlt.







: ? ? , , , .







, API. : , , . , , , , API, :







  • , , , ;







  • : , ;







  • , API , .









« API », . : API , , API — — .







NB: : « » API.







, API — , . , : - — , , . : , , .







API, : , .









, API, — . , . :







  1. on-demand , - , ( SDK, , JS API), API . , - .







    , — SDK . , on-demand — , , . , ( ) SDK. , - , API .







  2. on-demand , , . , — «» , API, , . , Web-; , — :







    • , ;
    • ( , , , «» );
    • , .







      . , API — , API.







      SDK, API , , HTTP . , , API - SDK, . : SDK — SDK ( - ), . « — », , : API — , API . , , API .











, API stateless SDK ( SDK ), , — API. - API SDK.









— , API. , , - :







  • ;
  • ;
  • .


, API . API - , API, , — . , — , , .







, API , , , () . , API , , , .









, — «», API. , , , , . , , , SDK. , , .







, , ( API) , , .







, API , . , — , , , . «» , API.









, :







  • , API, ; , , ;
  • API ;
  • , API .


.







  1. API.







    . API , , . , , . , . , , ( ), , .







  2. .







    , : . 5-10 , — , . , .







  3. ( ) .







    :







    • API SDK, API, : API , ;
    • code-on-demand SDK, SDK , , - . , , .




Wir werden diese Probleme in den folgenden Kapiteln genauer untersuchen. Darüber hinaus werden wir in Abschnitt III erläutern, wie Verbraucher auf neuere Versionen und das Ende der Unterstützung für ältere Versionen aufmerksam gemacht und sie dazu ermutigt werden können, auf neuere API-Versionen zu migrieren.










Dies ist ein Entwurf fĂĽr ein zukĂĽnftiges Kapitel des Buches zur API-Entwicklung. Die Arbeit wird an Github erledigt .

Die englische Version desselben Kapitels wird auf Medium veröffentlicht . Ich würde es begrüßen, wenn Sie es auf reddit teilen können - ich selbst kann es nicht gemäß den Plattformrichtlinien.








All Articles