いつものように、プレゼンテーションを開始する前に、「後方互換性」のセマンティック定義を示します。
後方互換性は、APIシステム全体の特性であり、長期にわたって安定しています。これは、次のことを意味します。APIを使用して開発者が作成したコードは、長期間にわたって正しく機能し続けます。この定義には2つの大きな疑問があり、それらには2つの説明があります。
「機能的に正しい」とはどういう意味ですか?
これは、コードがその機能を実行し続けることを意味します-いくつかのユーザータスクを解決するために。これは、同じように機能し続けることを意味するわけではありません。たとえば、UIライブラリを提供する場合、シャドウの深さや境界線のストロークの形状など、機能的に無関係なデザインの詳細を変更しても、後方互換性が損なわれることはありません。ただし、たとえば、ビジュアルコンポーネントのサイズを変更すると、一部のカスタムレイアウトがバラバラになる可能性があります。
「長い時間」とはどういう意味ですか?
私たちの観点からは、後方互換性を維持する期間は、対応するサブジェクト領域のアプリケーションのライフサイクルの期間にリンクする必要があります。ほとんどの場合、適切なガイドラインはプラットフォームのLTS期間です。プラットフォームのサポートが終了したため、アプリケーションは引き続き書き直されるため、APIの新しいバージョンへの切り替えも提案するのが普通です。主な対象分野(デスクトップおよびモバイルオペレーティングシステム)では、この期間は数年で計算されます。
後方互換性を維持する必要がある理由(API設計段階で必要な対策を講じることを含む)は、定義から明らかです。APIプロバイダーの障害によるアプリケーションの(完全または部分的な)終了は、開発者にとって、特にこのAPIにお金を払っている場合、災害ではないにしても、非常に不快なイベントです。
: ? ? , , , .
, API. : , , . , , , , API, :
, , , ;
: , ;
, API , .
« API », . : API , , API — — .
NB: : « » API.
, API — , . , : - — , , . : , , .
API, : , .
, API, — . , . :
on-demand , - , ( SDK, , JS API), API . , - .
, — SDK . , on-demand — , , . , ( ) SDK. , - , API .
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 .
.
API.
. API , , . , , . , . , , ( ), , .
.
, : . 5-10 , — , . , .
( ) .
:
- API SDK, API, : API , ;
- code-on-demand SDK, SDK , , - . , , .
これらの問題については、次の章で詳しく説明します。さらに、セクションIIIでは、消費者に新しいバージョンとサポートの終了を警告する方法、および新しいAPIバージョンへの移行を促す方法についても説明します。
これは、API開発に関する本の将来の章のドラフトです。作業はGithubで行われます。
同じ章の英語版がメディアで公開されています。redditで共有していただければ幸いです。プラットフォームのポリシーに従って私自身はできません。