Back to questions
Selectel
Senior
5
Что такое protobuf? Что будет при добавлении/удалении поля?
Companies where asked
Answer from AI
sobes.tech AI
Protocol Buffers (protobuf) — это компактный, эффективный и кроссплатформенный формат сериализации данных, разработанный Google. Он позволяет описывать структуру данных в .proto файлах и автоматически генерировать код для разных языков программирования.
При добавлении нового поля в protobuf-сообщение:
- Новое поле должно иметь уникальный номер (tag).
- Старые клиенты, которые не знают о новом поле, просто игнорируют его, что обеспечивает обратную совместимость.
При удалении поля:
- Нельзя просто удалить номер поля, так как это может привести к конфликтам при десериализации.
- Обычно поле помечают как "deprecated" и больше не используют, но номер поля не переиспользуют.
Таким образом, protobuf поддерживает эволюцию схемы без нарушения совместимости между разными версиями сервисов.