Sobes.tech
Senior

Que arquitetura utiliza em aplicações Go?

sobes.tech IA

Resposta da IA

Nos aplicações Go, frequentemente aplico uma arquitetura baseada na arquitetura limpa (Clean Architecture) ou na arquitetura hexagonal, para separar a lógica de negócio da infraestrutura e das dependências externas. Isto permite testar e manter facilmente o código.

Camadas principais:

  • Entidades — lógica de negócio e modelos.
  • Casos de uso — cenários de uso que implementam regras de negócio.
  • Adaptadores de interface — adaptadores para interagir com o mundo exterior (HTTP, bases de dados).
  • Frameworks e controladores — implementações concretas, por exemplo, servidor web, controladores de bases de dados.

Em Go, isto muitas vezes é expresso na forma de pacotes com interfaces claras, que são injetadas através de injeção de dependências. Também uso ativamente contextos (context.Context) para gerir o tempo de vida das requisições e cancelar operações.

Exemplo de estrutura:

cmd/         # ponto de entrada
internal/    # lógica de negócio
  ├── entities/
  ├── usecases/
  ├── repository/
  └── delivery/  # manipuladores HTTP
pkg/         # bibliotecas comuns