Go Lang - O que são Módulos?
Em Go, um módulo é uma coleção de pacotes que são compilados juntos. Um módulo é definido por um arquivo go.mod que especifica o caminho do módulo e as suas dependências.
Módulos em Go funcionam como as bibliotecas do Java ou os packages do Node JS, agregando funcionalidades e rotinas que podem ser usadas para realizar tarefas específicas.
Como criar um módulo em Go?
-
Primeiro precisamos instalar o Go em nossa máquina.
-
Vamos criar uma pasta para o nosso módulo.
mkdir myfirstmodule
-
Agora, precisamos navegar até a pasta em que vamos criar o módulo.
cd myfirstmodule
-
Para criar o novo módulo, basta executar o comando
go mod init <nome_do_modulo>
.go mod init myfirstmodule
-
O arquivo go.mod será criado automaticamente, este arquivo é quem especifica o caminho do módulo e suas dependências.
module myfirstmodule go 1.20
-
Agora podemos criar nossos packages contendo as funcionalidades que queremos.
Também vale dizer que é muito comum o nome do módulo ser a url do repositório remoto onde o código fica. Logicamente não é uma obrigação, o módulo pode ter qualquer nome.
Mas caso queira tornar possível que outros (ou você mesmo) use aquele código em outro módulo, usando a url como nome do módulo, você indica onde aquele código está hospedado, e é lá que o comando go get
vai olhar.
Por exemplo:
go mod init github.com/my-user/awesome-project
Então depois, caso alguém queira usar a sua biblioteca, vai poder rodar:
go get github.com/my-user/awesome-project
Sendo assim, nesse caso de querer distribuir o pacote, precisa da url, como diz na documentação:
If you publish a module, this must be a path from which your module can be downloaded by Go tools. That would be your code's repository.