Como organizar projetos em um mono-repo

No primeiro post sobre mono-repo, tentei trazer de forma menos técnica, quais os benefícios e vantagens, assim como qual o fator determinante para o sucesso desse tipo de abordagem.

Nesse post, vamos falar um pouco sobre a organização dos projetos e packages dentro de um mono-repo.

Workspace

Embora uma das principais vantagens de um mono-repo seja facilidade no compartilhamento de código, é preciso determinar os limites desse compartilhamento, ou seja, precisamos definir um espaço onde somente algumas pessoas tem “autorização” para realizar mudanças.

Esse espaço, também conhecido como workspace, é o primeiro nível de separação dentro de um mono-repo, ou seja, uma pasta criada na raiz do repositório.

Leia mais »

Como utilizar go workspaces

Dando continuidade aos posts onde exploramos as novas funcionalidades do Go 1.18, nesse post vamos ver como utilizar o novo Go Workspaces.

Para começar, vamos criar uma pasta e chama-lá de workspace.

Pequena observação antes de continuar, o nome dessa pasta NÃO tem que ser obrigatoriamente workspace, só coloquei esse nome por achar conveniente.

Agora, dentro da pasta workspace, vamos adicionar uma pasta chamada hello. Nessa pasta vamos colocar o nosso programa.

Dentro da pasta hello, vamos iniciar um novo módulo com o comando go mod init github.com/aprendagolang/hello e adicionar um arquivo main.go com o seguinte conteúdo.

Leia mais »