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