0

そこで、約 10 個のサービスで構成される非常にハードコアなアプリを構築しています。アプリのバージョン間の依存関係をどのように管理するのが最善でしょうか?

私たちは物事をサービスに分割し、それぞれが小さな論理的なタスクを担当することを決定しました(単語アナライザーは単語を分析するだけで、単語サービスは他のサービスが単語や特殊な単語に関する情報を取得できるようにし、分類器はからのデータを使用します)分類を実行するためのワールド アナライザー)

独立したアプリはすべて、かなり明確に定義されたインターフェースを備えていますが、これらが変更されることがあります (たとえば、新しいフィールドが必要です)。

それらが変更された場合、依存関係が存在するという事実を追跡する必要があります。アナライザーのバージョン 0.2 には、ワード サービスのバージョン o.6 が必要になりました。

他の人はこれをどのように行いますか?何が機能し、お尻の痛みは何ですか? 迅速かつ頻繁にリリースできるようにしたいと考えています。ジェンキンスはすでに、すべての仕様を実行するのに苦労しています。

4

1 に答える 1

1

プロトコルにバージョンを付け、下位互換性を保ちます。v 0.2 のアナライザーは、Word サービスの新しいバージョン 0.6 と、既存のデプロイされた v 0.5 の Word サービスで動作する必要があります。Deoployment は、常にいくつかの重複するバージョンのダンスになります。ところで、インターフェースは決して変わりません。インターフェイスの新しいバージョンは公開されており、クライアントと実装者の両方が、使用されているバージョンを識別できる必要があります。サービスは、対話するプロトコルのデプロイされたすべてのバージョンに正常に低下する必要があります。デプロイされなくなったと判断できる場合は、デプロイされなくなったバージョンを廃止できます。サービス/プロトコルが公開されている場合、下位互換性を維持する必要がありますより長いです。

このテーマについては、REST Design Handbookをよく読んでください。

于 2012-07-17T12:19:53.637 に答える