Sobes.tech
Junior — Middle

Pode explicar o que são Protocol Buffers no contexto da linguagem Go?

sobes.tech IA

Resposta da IA

Protocol Buffers (protobuf) é um mecanismo de serialização de dados estruturados independente da linguagem e da plataforma, desenvolvido pelo Google.

No contexto do Go, o protobuf é utilizado para codificar e decodificar dados de forma eficiente, o que é útil na troca de mensagens entre serviços, armazenamento de dados, etc.

Pontos principais:

  • O esquema de dados é definido num arquivo .proto.
  • São geradas estruturas e métodos em Go para serializar/deserializar usando o gerador de código (protoc).
  • O código resultante permite trabalhar facilmente com os dados em Go, fornecendo um formato compacto e rápido.

Exemplo de uso:

  1. Definir no message.proto:
syntax = "proto3";

message Person {
  string name = 1;
  int32 id = 2;
}
  1. Gerar código em Go:
protoc --go_out=. message.proto
  1. Usar em Go:
p := &Person{Name: "Alice", Id: 123}
data, err := proto.Marshal(p) // serialização
// ...
var p2 Person
err = proto.Unmarshal(data, &p2) // deserialização

Assim, Protocol Buffers em Go permitem trocar dados estruturados de forma eficiente entre componentes do sistema.