protobuf メッセージで定義されたインターフェイスを持つモジュール/アプリケーションで構成される分散システムを構築しています。
これらの protobuf メッセージをクライアントに直接公開することは良い考えですか? ...または、各モジュールに基づいたprotobufへのメソッドベースのインターフェイスの変換を担当し、クライアントがprotobufについてまったく認識しない共有ライブラリを準備する方がよいでしょうか?
protobuf メッセージで定義されたインターフェイスを持つモジュール/アプリケーションで構成される分散システムを構築しています。
これらの protobuf メッセージをクライアントに直接公開することは良い考えですか? ...または、各モジュールに基づいたprotobufへのメソッドベースのインターフェイスの変換を担当し、クライアントがprotobufについてまったく認識しない共有ライブラリを準備する方がよいでしょうか?
それは「良いアイデア」でも悪いアイデアでもありません。コンシューマーにプロトコル バッファーを課すかどうかによって異なります。その決定の大部分は次のとおりです。
私の 0.02 ドルは、これが Protocol Buffers の完璧な使用例であるということです。なぜなら、それらはシステム間、言語間の交換を念頭に置いて特別に設計されているからです。この.proto
ファイルは、簡潔で言語に依存しない、データ形式の詳細な説明になります。もちろん、この道を進むことにした場合は、考慮すべき他の類似/競合するフォーマットとライブラリがあります ( Thrift 、 Cap'n Protoなどを参照)。