3

最近、非常に大規模なミッションクリティカルなプロジェクトに遭遇しました。このプロジェクトでは、すべての構成ファイルがテキストのprotobuf定義を使用して定義されていました。構成ファイルは、人間が読める形式で編集できるようになっています。

例えば

message ServerSettings {
  required int32 port = 3022;
  optional string name = "mywebserver";
}

個人的にはこれはユーモラスだと思いました。しかし、それは実際には合理的なシンプルなテクニックですか、それとも明らかにモロニックですか?!

言い換えれば、これには本当の、実際の問題がありますか?

4

2 に答える 2

2

それがテキストのプロトif形式であるなら、それなら...何であれ、私は推測します。それが機能する場合は、他のシリアル化形式と同じくらい合理的です。

それがプロトスキーマであることが意図されている場合、それは不正です(=の後の値はフィールド番号であることを意味します)。

JsonまたはXMLの方が一般的かもしれませんが、それが機能する限り、「モロニック」ではありません。したがって、最終的な質問は、それが機能するかどうかです。

于 2012-10-13T14:52:35.623 に答える
2

かなり賢いと思います。私は彼らがそれをprotoc--encodeに渡して、実際に解析されるものであるバイナリを生成すると推測しています。

長所:1。構成を解析するためのコードが生成されます2.型の検証3.構造体、共用体、マップ、配列をサポートするため、キー/値と比較してより堅牢な構成ファイル4.構成データがシリアル化可能になり、簡単に公開できるようになりましたRPCまたはIPCイン​​ターフェイスに接続します。

短所:1。マップ/配列の構文は少し冗長になる可能性があります。2.メモリ制限が厳しいシステムを使用している場合は、ターゲットとlibprotobuf.soにprotocをインストールする必要があります。

于 2015-08-31T04:18:17.867 に答える