Qual é a estrutura de pastas recomendada do Go Project?
Projectos pequenos normalmente não precisam de qualquer estrutura. Tudo o que você precisa para começar é apenas main.go
. Eu recomendo sempre iniciar um projeto com apenas um único main.go
arquivo.
Então, uma vez que seu projeto cresce (imagine, você percebe que agora você tem que ter dois binários), a abordagem comum é adicionar a pasta cmd/
. Pode ser qualquer dir, claro, mas cmd
é algo que cada gopher reconhece imediatamente no projeto.
Então, uma vez que sua base de código cresce, você começa a adicionar mais arquivos “.go” e mais pacotes – cada um deles estará em um subdiretório separado (por definição). E aqui muitos recém-chegados ficam confusos e trazem padrões de estruturação de outras linguagens ou frameworks.
Em muitas outras linguagens, o diretório é usado para “namespacing” um monte de arquivos, como handlers
ou models
, mas em Go, o diretório é um pacote separado (ou seja, biblioteca). Então “estruturar pastas” em Go significa na verdade “como você abstrai código em subpacotes e quando”.
mas geralmente, você não pensa em estruturar seu repo a menos que sua base de código o peça (ou seja, muitos arquivos, abstrações óbvias que podem ser reutilizadas e isoladas em seu próprio pacote, etc).