Одной из привлекательных особенностей буферов протокола является то, что она позволяет расширять определения сообщений без нарушения кода, использующего более раннее определение. В случае перечисления в соответствии с документацией:
поле с типом перечисления может иметь только один из заданного набора констант в качестве его значения (если вы попытаетесь предоставить другое значение, синтаксический анализатор будет рассматривать его как неизвестное поле)
поэтому, если вы расширяете перечисление и используете новое значение, тогда поле с этим типом в старом коде будет undefined или имеет значение по умолчанию, если оно есть.
Какова хорошая стратегия для решения этой проблемы, зная, что в будущем в enum могут добавляться дополнительные значения?
Один из способов, который приходит на ум, - определить член "undefined" перечисления и сделать это по умолчанию, тогда старый код будет знать, что ему было отправлено то, что он не может интерпретировать. Разве это разумно, есть ли лучшие способы справиться с этой ситуацией?