Есть ли опыт работы с protobuf

«Есть ли опыт работы с protobuf» — вопрос из категории Golang, который задают на 24% собеседований Golang Разработчик. Ниже — развёрнутый ответ с разбором ключевых моментов.

Ответ

Да, есть опыт работы с protobuf (Protocol Buffers). Это эффективный бинарный формат сериализации данных от Google. В Go для работы с protobuf используется библиотека google.golang.org/protobuf.

Пример использования:

syntax = "proto3";
message Person {
  string name = 1;
  int32 age = 2;
}

// Генерация кода:
// protoc --go_out=. person.proto

// Использование в коде:
p := &Person{
    Name: "John",
    Age:  30,
}

data, err := proto.Marshal(p)
// ... unmarshal, обработка ошибок

Основные преимущества:

  • Компактный размер данных
  • Быстрая сериализация/десериализация
  • Строгая типизация
  • Поддержка генерации кода для разных языков

Работал с gRPC (который использует protobuf), знаю нюансы версионирования схем и миграции.