14

一部のバックエンドRPCサービスの新しいトランスポートとしてプロトコルバッファを導入しています。異なる形式の類似したオブジェクト間でデータを手動でシャトルすることには抵抗があるため、RPCサーバーインターフェイスよりも少し高い位置でプロトコルバッファインスタンスがスタックに渡されることがわかります。

これは私が避けなければならないことですか?プロトコルバッファオブジェクトをプレーンなデータホルダーのように扱うのは安全ですか?それはバイナリにすばやく効率的に変換でき、バイナリから変換できるという便利な機能がありますか?

データオブジェクトを生成するための優れた方法であると私が考えるもう1つの理由は、必須/オプションのフィールドと自動的に生成されたビルダーインターフェイスの概念です。

4

2 に答える 2

9

まあ、それらは不変であるため、そのように使用するのはそれほど便利ではありません-ビルダーを渡すことができますが、それはかなり長い型名になりますまた、プロトコルバッファ(および独自のメッセージ)でサポートされているデータ型に制限されていることも意味します。

これを行うのは安全ですが、常に最高のデザインが作成されるとは限りません。一方、時にはそれは医者が注文したものです:)

実験することをお勧めします。ここには「1つのサイズですべてに対応」するものはありません。

于 2009-11-25T19:55:16.190 に答える
0

一般に、私はシステムのレイヤーを設計して、1つのレイヤーからの実装の詳細が互いに漏れないようにします。GoogleのProtocolBuffersを直接経験したことはありませんが、トランスポートとシステムの上位層で同じ表現を使用したいようです。

トランスポート表現としてのProtocolBuffersの使用をやめたいと思った場合、他のものを使用するのはどれほど簡単でしょうか?

于 2009-11-25T20:01:09.017 に答える