Некоторые лучшие практики для версиирования Protocol Buffers:
- Присваивать уникальные числовые идентификаторы каждому полю в сообщении. 1 Это позволит плавно обрабатывать разные версии и обеспечивать обратную и прямую совместимость обновлений. 1
- Не изменять значение поля. 2 Если нужно изменить смысл поля, следует создать новое поле с другим именем и объявить устаревшее старое поле. 2
- Не использовать повторно теги полей. 25 После того как тег поля использован, его нельзя использовать для другого поля. 2
- При удалении полей резервировать их номера. 3 Это предотвратит случайное повторное использование. 3
- При добавлении новых полей к существующим сообщениям: 3
- назначать новые номера полей, которые не использовались раньше; 3
- предоставлять значения по умолчанию для обратной совместимости; 3
- рассматривать возможность использования необязательных полей для новых дополнений. 3
Также рекомендуется регулярно просматривать и рефакторить файлы .proto, удалять устаревшие поля, объединять похожие типы сообщений и по возможности упрощать структуры. 4