Aula 03
Formatação de Código em Golang: Uso de goimports para Torná-lo Estilo Padrão do Go
Summary
# Aula sobre Go Imports
Olá pessoal, estamos de volta com mais uma aula!
## Introdução ao Go Imports
Nesta aula, falaremos sobre o comando **Go Imports**, que é utilizado para formatar o código de acordo com o estilo do **Go FMT**. Primeiro, faremos uma demonstração do **Go FMT** e, em seguida, utilizaremos o **Go Imports** para comparar as diferenças.
### Demonstração do Go FMT
- Foi criado um arquivo chamado **bagunça.go** que contém funções exportadas (iniciadas com letra maiúscula) e importações.
- As importações não estão ordenadas alfabeticamente e existem problemas intencionais de indentação.
- Algumas importações estão faltando, como `md5` que foi chamado, mas não importado, e `strings`, que está presente mas não é utilizado.
Para formatar o arquivo, utilizamos o comando:
go fmt bagunça.go
Isso formatou os espaços, trocou espaços por tabulações (padrão do Go) e ordenou as importações, mas não corrigiu as importações que estavam faltando ou as que não estavam sendo utilizadas.
### Utilização do Go Imports
Para usar o **Go Imports**, precisamos instalá-lo:
```bash
go install golang.org/x/tools/cmd/goimports@latest
Como o diretório não define um módulo (sem go.mod
), fazemos dessa forma. Depois, podemos usar o comando:
goimports -l -w .
-l
lista arquivos com formatação errada.-w
modifica o arquivo permanentemente.
Resultados após uso do Go Imports
- O Go Imports corrigiu a indentação e consolidou as importações em uma única lista, ordenando-as alfabeticamente.
- Ele também removeu importações não utilizadas (como
strings
) e adicionou as importações necessárias que estavam faltando (comohtml
).
Conclusão
O Go Imports é uma ferramenta mais poderosa do que o Go FMT, pois além de formatar, também organiza e corrige as importações.
Se você gostou do vídeo, deixe seu like, comentem e se inscrevam no canal para mais conteúdo! Até mais!
Video Transcript
Olá pessoal, estamos de volta com mais uma aula.
Nessa aula eu vou falar do comando Go Imports, que é utilizado para poder também formatar
o código na maneira do Go FMT.
Primeiro eu vou demonstrar do Go FMT e depois eu vou usar o Go Imports para a gente comparar
com a diferença entre eles.
Então aqui na janela do lado direito eu tenho um código fonte, eu creio o arquivo bagunça.go
e tem duas funções aqui que são exportadas porque é a primeira letra, é a letra maiúscula.
Tem os importos aqui também, a note que os importos não estão ordenados de maneira
alfabética e eu tenho vários, vamos dizer, problemas de indentação que eu fiz de propósito
só para o formatador, o comando fazer trabalho dele para ver se funciona corretamente.
Note que eu tenho as coisas como por exemplo, eu tenho a chamada do md5.new mas eu não importo
ele, então esqueci de importar, vamos ver o que ele faz nesse sentido.
E outro caso também é o strings, eu acho que eu não uso aqui, se eu procurar não
é usado.
Então vamos lá, se eu falar Go, espaço FMT, espaço, o nome do arquivo bagunça.go,
note que ele já formatou os espaços, converteu o espaço para tab porque no Go ele usa sempre
tab para indentação, esse é o padrão do Go e as indentações estão certinho, os
notos vamos ver, comparar aqui, importe ele bem que ordenou alfabeticamente nesse bloco
da linha 5 e 6 mas ele não notou que strings só formatou, não fez nenhuma modificação
se você esqueceu de importar uma coisa, por exemplo md5 ou se eu importei algo que não
uso.
Então basicamente espaço, indentação e algum ordem ali.
Agora nós vamos fazer com Go Imports, para poder usar o Go Imports a gente vai ter que
baixar esse programa, eu vou reverter o arquivo no lado direito, vou voltar o meu terminal
aqui, vou falar Go, espaço install, espaço golang.org, barra x, barra tools, barra cmd,
barra Go Imports e a rouba a versão que eu vou usar a última versão, mais nova, playtest,
como eu não estou dentro de um módulo de Go, o meu diretório não define o módulo com
arquivo Go.mod, eu tenho que fazer dessa maneira aqui, estou usando a versão do Go 1.16, certo?
Com isso ele vai baixar, eu já tinha baixado antes por isso que não apareceu aqui as linhas
do repositório e tal e tal, ele vai lá nesse repositório e vai baixar a última versão,
eu vou dar um ls no meu GoBin, eu já tenho um comando aqui Go Imports, eu posso chamar
Go Imports, espaço traço l, espaço traço w, espaço ponto, então opção, vamos escanear
no diretório presente que é o ponto, opção traço w para poder dizer para o Go Imports
modificar o arquivo, permanentemente, opção traço l para poder listar os arquivos com
formatação errada.
Noite do lado direito da tela, meu editor de texto que já mudou várias coisas, vamos ver aqui.
Então os espaços foram concertados na indivisão também com tab, note que esse
carácter invisível significa tabulação no meu editor de texto.
Uma coisa que eu tinha disto do MD5, desculpa, eu quis dizer o HTML, não é um MD5, HTML
que eu tinha esquecido de importar, tá certo?
O MD5 já estava aqui no crypto, barro, MD5, eu quis dizer o HTML que eu esqueci de importar.
Então vamos ver, ele consolidou os dois imports em uma lista só e ordenou alfabeticamente,
deu strings porque eu não uso em nenhum lugar, adicionou HTML porque eu uso na linha
16 aqui e basicamente isso, ele faz algo a mais que o Go FMT, no caso do Go FMT ele não
tinha consolidado a lista de imports e não tinha importado aquilo que a gente esqueceu.
Também acho que não tinha removido aquilo que a gente não usa, o Go FMT novamente,
bagunça, aquilo que a gente não usa que é o strings ainda ficou, aquilo que a gente
usa que HTML mas esqueceu de importar não foi incluído, e a lista não foi consolidada
em um só, em um só import.
Tá, então esse é o uso do comando Go Import que você pode baixar com Go install, golang.org,
com x, barra tools, barra cmd, barra go imports, é a rouba latest.
Podemos usar Go Import com as opções traço l, traço w e você pode especificar o arquivo
ou se escanear o diretório presente e todos os subdireitórios com o ponto final.
Então é isso, espero que tenham gostado do vídeo, por favor deixe o seu like, e qualquer
comentário e se inscreva no canal para a gente poder continuar aí, ajuda muito.
Até mais então.
Nenhum comentário ainda (loading...)
Nenhum comentário ainda (loading...)
Gostou da aula? 😆👍
Apoie nosso trabalho com uma doação: