Como implementar uma API com arquitetura hexagonal

Hoje iniciamos mais uma pequena série aqui no blog, onde vamos implementar uma pequena API utilizando arquitetura hexagonal. Essa série será dividida em pelo menos quatro posts, sendo esse primeiro a definição da estrutura de pastas.

Se você ainda não conhece muito bem essa arquitetura, convido você a ler o post onde explico a parte teórica da arquitetura hexagonal.

Agora que estamos todos no mesmo ponto, vamos começar a definir a estrutura de pastas desse pequeno projeto.

pkg

No root do projeto, como já é de costume, precisamos de uma pasta onde ficarão as implementações que podem ser compartilhadas com outros projetos, ou seja, implementações de packages que não tem nenhuma regra de negócio.

Leia mais »

Diretórios e packages especiais

No post de hoje vamos falar um pouco sobre nomes reservados para packages e pastas.

Main

Package main é o principal package de um programa Go. É nesse package que vamos colocar nossa função main, que é a primeira função a ser executada.

package main

import "fmt"

func main() {
    fmt.Println("Olá Mundo!")
}

O package main só deve existir em programas executáveis, ou seja, caso você esteja fazendo uma lib, esse package não deve existir.

Leia mais »