Aprenda Golang

gonew: Como criar projetos a partir de templates

Ouvindo aos pedidos da comunidade, mesmo que não incorporado oficialmente ao CLI do Go ainda, o time de desenvolvimento da linguagem Go criou um novo programa capaz de ajudar a iniciar novos projetos. Seu nome, pelo menos por enquanto, gonew.

Como dito no parágrafo anterior, a finalidade desse novo programa é auxiliar na criação de novos projetos Go. Com ele, podemos utilizar um repositório template como base para novas aplicações.

Sem mais delongas, vamos meter a mão na massa, ou melhor, no teclado.

Instalação

Para conseguir utilizar esse novo programa, precisamos tê-lo instalado. A forma mais fácil, já que você muito provavelmente tem o Go instalado na sua máquina, é utilizar o comando go install.

go install golang.org/x/tools/cmd/gonew@latest

Para ter certeza que a instalação foi efetuada com sucesso, execute um which gonew. O resultado da execução, deve ser o local onde o binário do gonew está.

Caso não mostre o caminho, provavelmente a pasta /bin da instalação Go não está presente no seu $PATH.

Repositório template

Assumindo que tudo deu certo na sua instalação, vamos dar uma olhada no repositório de exemplos do Go.

Note que existem vários projetos dentro desse repositório e nenhum deles tem algo especial, ou seja, não precisamos fazer nada de mais para que um módulo possa ser utilizado como um template.

Em nosso exemplo, proponho focarmos apenas na pasta hello.

Execução do gonew

Para isso, vamos executar o programa gonew, seguido de dois parâmetros, sendo o primeiro o módulo de origem e o segundo o nome do módulo que será criado localmente:

gonew golang.org/x/example/hello github.com/aprendagolang/hello

Repare que, mesmo o link do repositório sendo cs.opensource.google/go/x/example, passamos o valor golang.org/x/example/hello como primeiro parâmetro. Isso por que, o primeiro parâmetro deve receber o nome do módulo de origem e não o link do repositório.

Para comprovar isso, basta olhar o arquivo go.mod dentro da pasta hello no repositório.

Se tudo deu certo, a execução do gonew deve ter retornado algo como gonew: initialized github.com/aprendagolang/hello in ./hello.

Isso quer dizer que o comando foi executado com sucesso, e que o projeto foi adicionado à pasta hello.

O que o gonew fez?

Essa pasta destino, no caso do nosso exemplo chamada de hello, é criada automaticamente pelo comando gonew. O nome dado a essa pasta é com base no segundo parâmetro que passamos para o comando.

Por exemplo. Se ao invés de chamar nosso módulo local de github.com/aprendagolang/hello tivéssemos chamado ele de github.com/aprendagolang/teste, o gonew criaria uma pasta chamada teste ao invés de hello.

Ao olhar o conteúdo da pasta hello, confirmamos que a inicialização foi realizada com sucesso.

Antes que você diga que isso é um simples copiar e colar, note que o nome do módulo no arquivo go.mod, assim como o import do package interno reverse, estão com o nome do módulo que passamos como parâmetro para o gonew ao invés do nome original que está no repositório.

Conclusão

Particularmente, fiquei muito feliz com esse novo programa disponibilizado pelo time do Go. Não vejo a hora dele fazer parte do CLI oficial.

Qualquer dúvida ou problema, abre um tópico lá no nosso Fórum Oficial.

Espero que tenha ajudado.

Até a próxima!


Faça parte da comunidade!

Receba os melhores conteúdos sobre Go, Kubernetes, arquitetura de software, Cloud e esteja sempre atualizado com as tendências e práticas do mercado.

Livros Recomendados

Abaixo listei alguns dos melhores livros que já li sobre GO.

Sair da versão mobile