プロトコルバッファの魅力的な機能の1つは、古い定義を使用するコードを壊すことなくメッセージ定義を拡張できることです。ドキュメントによると列挙型の場合:
列挙型のフィールドは、その値として指定された定数のセットの1つのみを持つことができます(別の値を提供しようとすると、パーサーはそれを未知のフィールドのように扱います)
したがって、列挙型を拡張して新しい値を使用すると、古いコードでそのタイプのフィールドが未定義になるか、デフォルト値がある場合はその値になります。
将来、列挙型に追加の値が追加される可能性があることを知って、これに対処するための良い戦略は何ですか?
頭に浮かぶ1つの方法は、列挙型の「未定義」メンバーを定義し、それをデフォルトにすることです。そうすれば、古いコードは、解釈できないものが送信されたことを認識します。それは賢明ですか、この状況に対処するためのより良い方法はありますか?