Skip to content

Instantly share code, notes, and snippets.

@avelino
Last active February 22, 2018 13:11
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save avelino/c2431df98ed990c546c0e68ad0873f98 to your computer and use it in GitHub Desktop.
Save avelino/c2431df98ed990c546c0e68ad0873f98 to your computer and use it in GitHub Desktop.
λ ~/test/ tree
.
├── adapters
│   ├── adapters.go
│   ├── mongodb
│   │   └── mongodb.go
│   └── postgres
│   └── postgres.go
├── helpers
│   └── herlpers.go
├── main.go
├── templates
│   ├── base.html
│   └── index.html
└── users
├── handlers.go
├── models.go
└── templates
├── detail.html
└── list.html
# main.go: onde tudo começa
# adapters: conexão com mudulos externos, exemplo banco de dados, api de terceiro e etc
# helpers: muitas pessoas chama isso de utils mas eu não gosto do nome "utils" se o que esta dentro do "utils" é realmente "utils" as outras parte do software é util kkkkk
# users: pacote onde contem tudo relacionado a usuarios
## users/handlers.go: handlers http
## users/models.go: tudo relacionado a modelo de dados, structs, chamada para o adapters e etc, os handlers ira falar com o models que por sua vez é responsavel em falar com os adaptadores corretos
## users/templates/...: templates html ou qualquer outro tipo (exemplo arquivo de configuração) referente a aplicação users
# templates: templates generico para toda aplicação (não por modulo), geralmente esses templates são extendido por outros
#
# Dessa forma organizo o software por aplicações, delegando responsabilidade isoladas a elas
# Uma coisa comum que pode acontecer é eu criar sub-packages dentro das aplicações exemplo:
## users/models/***.go
## isso pode ocorrendo com o crescimento do software, aquele momento que você tem muitas linhas de codigo dentro do mesmo arquivo
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment