tutorial – Aprenda Golang
Como utilizar live reload para melhorar sua produtividade
30 junho 2022 Tiago TemporinDeixe um comentário
Se você se sente incomodado em ter que parar sua aplicação e fazer go run novamente toda vez que faz uma alteração, esse post vai melhorar sua vida… e MUITO.
Nesse post vou te mostrar como fazer live reload de aplicações Go utilizando uma ferramenta open source chamada Air (https://github.com/cosmtrek/air).
Para testar as funcionalidades da ferramenta, vamos escrever um pequeno programa que retorna um "Olá mundo".
Vamos inicializar um novo módulo com o comando go mod init github.com/aprendagolang/live-reload e criar um arquivo main.go com o seguinte conteúdo.
r.Get("/", func(rw http.ResponseWriter, r *http.Request) {
rw.Write([]byte("Olá Mundo"))
Como estamos utilizando uma dependência externa, vamos executar o go mod tidy para atualizar nosso go.mod, que deve ficar parecido com isso:
module github.com/aprendagolang/live-reload
require github.com/go-chi/chi/v5 v5.0.7
Com nosso pequeno programa escrito, vamos instalar o Air.
Por ser escrito em Go, podemos fazer sua instalação utilizando o próprio install do Go.
Para testar se deu tudo certo com a instalação, execute um air -v no seu terminal. Se a instação ocorreu sem problemas, você deverá ver o seguinte output:
Agora vamos criar um arquivo de configuração para o Air com o comando air init. Esse comando irá criar um arquivo chamado .air.toml com o seguinte conteúdo.
args_bin = []
Uma pequena mudança que eu gosto de fazer é mudar o time para true. Porém se você não quiser, não precisa alterar nada nesse arquivo.
Agora tudo que precisamos fazer é executar o comando air no terminal e nosso live reload já estará funcionando.
Para testar o live reload, vamos modificar o nosso r.Get("/", ... para o seguinte:
r.Get("/{name}", func(rw http.ResponseWriter, r *http.Request) {
rw.Header().Add("Content-Type", "application/json")
json.NewEncoder(rw).Encode(map[string]string{
Como podemos ver no terminal, a aplicação foi recompilada automaticamente.
É isso, espero que essa dica ajude a melhorar sua produtividade.
24 junho 2022 30 junho 2022 Tiago TemporinDeixe um comentário
Se você não é muito fã de ORMs como eu, um dos problemas que você mais enfrenta é o de como realizar alterações em seu banco de dados de forma segura e automática.
Nesse post, vou mostrar como fazer isso utilizando o Migrate (https://github.com/golang-migrate/migrate), um projeto open source escrito em Go para realizar migrations em bancos de dados.
Antes de começar, embora os exemplos contidos nesse tutorial serem utilizando postgres, o Migrate suporta os seguintes bancos de dados:
mongodb+srv, firebirdsql, clickhouse, cockroachdb, mongodb, mysql, sqlserver, cassandra, crdb-postgres, postgres, postgresql, spanner, stub, cockroach, neo4j, pgx, redshift, firebird.
Tendo esclarecido esse ponto, vamos iniciar um projeto com nome github.com/aprendagolang/migrate (go mod init github.com/aprendagolang/migrate) e depois escrever uma pequena API.