いくつかのバックエンドRPCサービスの新しいトランスポートとしてプロトコルバッファを導入しています。同様のオブジェクトの異なるフォーム間でデータを手動でシャットダウンすることに抵抗があるため、RPCサーバーインターフェイスだけではなく、少し上にスタックに渡されるプロトコルバッファインスタンスを確認できます。一般的なデータオブジェクトとしてプロトコルバッファを使用していますか?
これは私が避けようとしているものですか?プレーンデータホルダーのようなプロトコルバッファーオブジェクトを扱うことは安全ですか?それは、バイナリーの内部と外部に素早く効率的に変換できるという便利な点ですか?
私がデータオブジェクトを生成する良い方法であると考えているもう一つの理由は、必須/オプションフィールドと自動的に生成されたビルダーインタフェースの概念です。
私は、このようなプロトコルバッファを使用すると、実際には不変であるという事実が役立ちますが、痛いことではないと思います。それらはStringのような不変の値オブジェクトです。 –
機能的なスタイルでコードを書くことができる場合は、確かに役に立ちます。部分的には問題に依存し、部分的には開発者に依存します:) –
不変なことは、最終的なフィールドにすべて割り当てられた12以上のパブリックな構造が存在するという未知の理由のために実際に役立ちます。ビルダーは素晴らしいが、退屈であり、毎回書くためには定型文である。必須フィールドと省略可能なロジックのロジックを取得するのは難しいので、必要なフィールドが省略されているとbuild()メソッドが爆発します。 –