Um momento
Aula 03
Cursos / Golang: Ambiente e Ferramentas de Desenvolvimento da Linguagem Go
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 (como html).

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: