Workspace Mode
Workspace Mode para desenvolvimento com múltiplos módulos simultaneamente
O que é Workspace Mode?
Problema que resolve
Antes do Workspace Mode (Go ≤ 1.17)
# Para testar mudanças locais em library, você precisava:
# 1. Editar app/go.mod adicionando:
replace github.com/user/library => ../library
# 2. Desenvolver e testar
# 3. LEMBRAR de remover a diretiva replace antes de fazer commit
# 4. Publicar library
# 5. Atualizar app para usar a versão publicadaCom Workspace Mode (Go ≥ 1.18)
Estrutura do arquivo go.work
Diretivas do go.work
Diretiva
Descrição
Exemplo
Como funciona?
Criando um Workspace
Método 1: Inicialização com módulos
Método 2: Adicionar módulos recursivamente
Exemplo Prático Completo
Cenário: Desenvolvendo uma aplicação e uma biblioteca juntas
Modificando a biblioteca
Comandos de Workspace
go work init
go work use
go work sync
go work edit
go work vendor (Go 1.22+)
Variáveis de Ambiente
GOWORK
Casos de Uso
1. Desenvolvimento Local de Dependências
2. Monorepos
3. Contribuindo para Projetos Open Source
Workflow de Release
1. Publicar a biblioteca
2. Atualizar a aplicação
3. O workspace continua funcionando
Melhores Práticas
✅ Faça
❌ Não faça
Troubleshooting
Problema: "package X is not in GOROOT or in any module"
Problema: Versões de dependências conflitantes
Problema: Build funciona localmente mas falha no CI/CD
go.work.sum
Comparação: replace vs workspace
Característica
replace (go.mod)
workspace (go.work)
Recursos Adicionais
Conclusão
Last updated