Какую проблему решает ProtoBuf

«Какую проблему решает ProtoBuf» — вопрос из категории Архитектура, который задают на 23% собеседований Golang Разработчик. Ниже — развёрнутый ответ с разбором ключевых моментов.

Ответ

ProtoBuf (Protocol Buffers) решает проблему эффективной сериализации структурированных данных. Он предлагает:

  1. Компактный бинарный формат - меньше накладных расходов по сравнению с JSON/XML
  2. Скорость - быстрее парсинг и сериализация
  3. Схема и типизация - строгая типизация через .proto файлы
  4. Кросс-языковая поддержка - генерация кода для многих языков
  5. Версионность - обратная и прямая совместимость

Пример .proto:

message Person {
  string name = 1;
  int32 id = 2;
  repeated string emails = 3;
}

Особенно полезен для высоконагруженных систем и межсервисного взаимодействия.