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?

  1. Primeiro precisamos instalar o Go em nossa máquina.

  2. Vamos criar uma pasta para o nosso módulo.

     mkdir myfirstmodule
     
    
  3. Agora, precisamos navegar até a pasta em que vamos criar o módulo.

     cd myfirstmodule
       
    
  4. Para criar o novo módulo, basta executar o comando go mod init <nome_do_modulo>.

     go mod init myfirstmodule
     
     
    
  5. 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
     
    
  6. 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.

Excelente!!! Muito obrigado por sua contribuição!