Ir para o conteúdo
Trilha
Capítulos

Receitas

Receitas

As partes que todo app precisa e nenhum framework decide por você — banco, sessão, upload, paginação, e-mail, tarefa agendada, Docker — com código que compila.

"Aprender" ensina o framework e "Referência" descreve cada símbolo. Esta seção responde a um terceiro tipo de pergunta, a que aparece no segundo dia: como eu faço a coisa que todo app faz? Abrir um banco, manter alguém logado, receber um arquivo, paginar uma lista, mandar um e-mail, rodar uma tarefa de hora em hora, colocar tudo isso num contêiner.

Nada disso é decisão do framework. Trilha não tem ORM, não tem store de sessão e não tem mailer — o que ele tem é um lugar para os seus, e é aqui que esse lugar está escrito.

ReceitaO que responde
Banco de dadospool, consultas, transação, migrações, sqlc
Sessõeslogin, cookie assinado, usuário atual, flash
Uploadsreceber um arquivo, validar, guardar, devolver
Paginaçãopágina e cursor, e o rodapé que vem com eles
E-mailSMTP em produção, o log em dev, um corpo vindo de template
Tarefas agendadasum ticker que sobe com o app e para com ele
Dockeruma imagem pequena, as variáveis, a sonda de saúde
Checklist de produçãoo que conferir antes de publicar, em ordem
Migraçãode net/http puro para Trilha, e entre versões menores

De onde vem o código#

Todo bloco Go destas páginas é copiado de um arquivo em examples/cookbook, que faz parte do módulo do repositório: go vet ./... compila esse código a cada rodada, e um teste do site confere que cada bloco continua aparecendo, caractere por caractere, no arquivo de onde saiu. Uma receita que para de compilar quebra o build antes de enganar alguém.

Isso tem um preço que vale conhecer: o pacote usa só a biblioteca padrão, como o resto do repositório. Então não há driver de banco, nem hash de senha, nem cliente de métricas dentro dele. Onde um deles é necessário, a página diz qual linha acrescentar e por que ela não está aqui.