Aprendendo · Go

Arquitetura hexagonal em Go

Aprenda como domínio, portas e adaptadores se conectam enquanto montamos uma API pequena de transferência em Go.

Iniciante em Go e arquitetura · 9 etapas

Comece pela primeira etapa

GitHub

Código-fonte do tutorial

GitHub ↗
git clone https://github.com/bendevjunior/hexagonal-architecture-go

Etapa 1 de 9 · Arquitetura

O que é arquitetura hexagonal?

O que vamos fazer

Entender o problema que a arquitetura resolve e dar nome às partes do hexágono.

Por que fazemos assim

Regras de negócio costumam viver mais tempo que um banco, um framework ou uma interface. A arquitetura hexagonal organiza o código para que esses detalhes possam mudar sem obrigar a reescrever as regras.

Onde isso se encaixa na arquitetura

No centro ficam o domínio e os casos de uso. As portas descrevem as operações que o núcleo oferece e as dependências que precisa. Os adaptadores traduzem protocolos externos, como HTTP ou SQL, para essas portas. O hexágono representa várias entradas e saídas possíveis; ele não determina uma quantidade de lados nem uma estrutura física.

  1. Requisição HTTP
  2. adaptador de entrada
  3. porta de entrada
  4. caso de uso
  5. domínio
  6. porta de saída
  7. adaptador de memória
Entenda os detalhes de Go usados aqui

A seta de dependência do código aponta para dentro: regras centrais conhecem seus contratos, enquanto os adaptadores conhecem os contratos que implementam. Em tempo de execução, a chamada pode atravessar uma porta para chegar a um adaptador. Go permite essa separação com interfaces pequenas e implementação implícita.

Consulte também a referência técnica independente.