Saltar para o conteúdo principal
Desenvolvimento em Go (Golang)

Serviços de desenvolvimento em Go (Golang)

Construímos backends em Go, rápidos a correr, simples de ler e feitos para a concorrência. O backend do nosso próprio produto está escrito em Go, por isso trazemos experiência real de produção e não um conhecimento de tutorial.

O que está incluído

Onde o Go é a ferramenta certa

O Go foi feito para serviços de backend: compila para um único binário estático, lida com milhares de ligações concorrentes sem cerimónia e mantém-se legível à medida que uma equipa cresce. Usamo-lo onde o débito, a simplicidade e a iteração rápida importam todos.

No âmbito
  • APIs REST e gRPC
  • Microsserviços e service meshes
  • Planos de controlo e serviços de orquestração
  • Serviços de rede e workers de alta concorrência
  • CLIs e ferramentas internas que são distribuídas como um único binário
  • Integrações e pipelines de dados
Como trabalhamos

Como construímos em Go

Uma arquitetura limpa e em camadas, com tratamento explícito de erros e concorrência usada deliberadamente. Go idiomático que o próximo engenheiro consegue ler.

  1. 1

    Design

    Modelamos o domínio e as fronteiras dos serviços, e acordamos o contrato da API antes de construir.

  2. 2

    Construção idiomática

    Arquitetura em camadas com fronteiras claras, tratamento explícito de erros e logging estruturado.

  3. 3

    Concorrência onde conta

    Goroutines e canais usados com critério, com o race detector ligado e a contenção medida, não presumida.

  4. 4

    Testar e fazer benchmarks

    Testes table-driven, cobertura de integração contra uma base de dados real e benchmarks para os percursos críticos.

  5. 5

    Lançar e operar

    Um único binário estático, em contentor, com health checks e métricas para que seja fácil de operar.

Entregáveis

O que recebe

Um serviço em Go rápido e idiomático que a sua equipa consegue operar e estender.

O que recebe
  • Uma base de código em Go idiomática com uma arquitetura limpa e em camadas
  • Um contrato de API documentado (REST ou gRPC)
  • Testes table-driven e cobertura de integração
  • Benchmarks para os percursos críticos em desempenho
  • Uma build em contentor com health checks e métricas
  • Documentação e uma transição para os seus engenheiros
Stack e abordagem

A toolchain de Go

GoEncaminhamento HTTP, middlewareBases de dados relacionaisLogging estruturadogRPC, RESTDocker, Kubernetes

Primeiro a biblioteca padrão, e um pequeno conjunto de dependências bem mantidas que a sua equipa consegue assumir após a passagem.

Perguntas

Perguntas sobre desenvolvimento em Go

Quando devo escolher Go em vez de Node.js ou Python?

O Go é uma forte opção para serviços de backend que precisam de lidar com muito trabalho concorrente, compilar para um único binário implementável e manter-se rápidos e simples à medida que a equipa cresce. O Node.js vence quando quer uma única linguagem no front-end e no back-end; o Python vence para trabalho de dados e ML. Recomendamos o que se adequa à sua equipa e à sua carga de trabalho, e não apenas o que mais gostamos.

O Go é bom para microsserviços?

Muito. Binários estáticos pequenos, arranque rápido, concorrência de primeira classe e um bom suporte de gRPC e HTTP fazem do Go uma escolha natural para microsserviços. Dito isto, os microsserviços acrescentam complexidade operacional, e ajudamo-lo a decidir se precisa mesmo deles ou se um único serviço bem estruturado é mais simples.

Conseguem trabalhar na nossa base de código em Go existente?

Sim. Analisamos a estrutura atual, os testes e os pontos problemáticos, e depois estendemo-la ou refatoramo-la de forma idiomática. Seguimos as convenções que a sua equipa já usa em vez de impor as nossas.

Como lidam com a concorrência em segurança?

Deliberadamente. Usamos goroutines e canais onde ajudam, corremos o race detector no CI e medimos a contenção em vez de adivinhar. Os bugs de concorrência são notoriamente subtis, por isso apoiamo-nos nas ferramentas e na revisão para os manter de fora.

Construa um backend que é rápido e se mantém simples.

Diga-nos o que o seu backend precisa de fazer. Construímo-lo em Go: concorrente, idiomático e fácil de operar.