Template em Go para iniciar novos projetos

Quando iniciei meus estudos em Go, aproximadamente 3 anos atrás, sempre tive um pouco de dificuldade em encontrar bons templates para iniciar novos projetos, a grande maioria que eu encontrava eram projetos que tinham fortes raízes de outras linguagens, e não algo que tivesse a cara de Go, sempre encontrei projetos com packages como utils, services, repositories e etc...

Para mim não faz sentido ter um package util em Go, pois um package precisa prover algo, prover uma funcionalidade e não ter um amontoado de funções desconexas... A mesma situação para um package services, eu não posso ter 3 ou 4 tipo de serviços de contextos diferentes dentro do meu package service, não posso ter implementações de UserService, ProductService e AuthService dentro de um único package, para mim o que mais faz sentido é cada domínio ser um service, pois ao eu chamar meu package product, a minha IDE precisa me trazer métodos/funções e o que precisar, apenas relacionado ao domínio de product...

Com isso montei um boilerplate que contém o que eu acredito ser um bom starter para novos projetos Go.

Eu gostaria muito da opinião dos senhores.

https://github.com/bernardinorafael/go-boilerplate

Cara, isso era exatamente o que eu precisava!

Concordo 100% com a sua visão — também sempre tive dificuldade em encontrar um boilerplate que respeitasse a essência do Go, evitando aqueles pacotes genéricos como utils ou services cheios de funções desconexas.

Já perdi a conta de quantas vezes busquei algo nessa linha, onde cada package funciona quase como um microserviço dentro de uma aplicação monolítica, com responsabilidades bem definidas e focadas no domínio.

Seu boilerplate resolve esse problema na medida certa, trazendo uma estrutura limpa, organizada e muito coerente com a filosofia do Go.

Valeu demais por compartilhar! Já vou começar a usar aqui hehe.