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.

PáginaO que respondeReceita
O app administrávelo que o trilha new --template app escreve, e a tarde que vai do comando à produçãooito delas
Banco de dadospool, consultas, transação, migrações, sqlcstore
Sessõeslogin, cookie assinado, usuário atual, flashlogin
Uploadsreceber um arquivo, validar, guardar, devolverblob
Planilhas (CSV)exportar a planilha que o Excel abre, importar com o erro por célula—
Formulário em passosonde mora o passo 1 enquanto a pessoa está no passo 2—
Link públicoum formulário preenchido sem login, e um código que confere um documento—
Arquivosonde um upload mora, como ele volta, e a varredura de órfãosblob
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 templatemail
Tarefasfila, dedupe, retentativa com nome, a tela de andamentotasks
Webhooksentrega assinada, retentativa com espera crescente, o registro de cada tentativawebhooks
Cobrançaplanos, assinaturas numa máquina de estados fechada, o webhook assinado do provedor, dunningbilling
Notificaçõeso canal da pessoa, horário silencioso, digesto diário, limite por canal, a filanotify
Backofficeapp/admin/ negado por padrão: usuários, auditoria, aprovações, buscaadmin
Tarefas agendadasum ticker que sobe com o app e para com ele—
App instalável (PWA)manifesto, ícones e um convite de instalação que se adapta ao navegadorpwa
Dockeruma imagem pequena, as variáveis, a sonda de saúde—
Checklist de produçãoo que conferir antes de publicar, em ordem—
Chat de IAa chave, o contexto da página, o histórico, o teste sem chave—
Um agente de IAferramentas sobre os seus dados, escrita que espera alguém, os passos, o rastro—
Migraçãode net/http puro para Trilha, e entre versões menores—
Do Next.jso padrão de React que você conhece, e o que ocupa o lugar dele—

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.