🧩 Exercícios: Módulos em Go: go.mod, go.sum e Workspaces
Spec Sistemas Com Go • Trilha Progressiva em 4 Níveis
🧭 Navegação Pedagógica
-
📖 Teoria do Capítulo 💻 Exemplos 📊 Slides 🧠 Quiz
🎯 Nível 1: Fundamentos
Problema 16.1 — Inicialização de Módulo com go mod init e go get
Contexto: Inicialização de Módulo com go mod init e go get no contexto de Módulos em Go: go.mod, go.sum e Workspaces.
Requisitos de Execução:
- Configurar manifesto
go.moddefinindo caminho de importação e versão do Go.
Resultado Esperado
Módulo Go inicializado com integridade garantida.
📤 Instruções de Entrega (Microsoft Teams)
- Salve o arquivo como:
Atividade_16_1_SeuNome - Envie na tarefa:
Atividade Cap 16 - Módulos em Go: go.mod, go.sum e Workspaces
🔑 Gabarito de Código & Solução Comentada
// go.mod
module github.com/empresa/engine-sistemas
go 1.22.0
require (
github.com/google/uuid v1.6.0
)
🔍 Nível 2: Prática
Problema 16.2 — Limpeza de Dependências com go mod tidy
Contexto: Limpeza de Dependências com go mod tidy no contexto de Módulos em Go: go.mod, go.sum e Workspaces.
Requisitos de Execução:
- Sincronizar dependências no manifesto e arquivo
go.sumgarantindo checksums SHA-256.
Resultado Esperado
Dependências auditadas e sincronizadas no go.sum.
📤 Instruções de Entrega (Microsoft Teams)
- Salve o arquivo como:
Atividade_16_2_SeuNome - Envie na tarefa:
Atividade Cap 16 - Módulos em Go: go.mod, go.sum e Workspaces
🔑 Gabarito de Código & Solução Comentada
package main
import (
"fmt"
"os/exec"
)
func auditarDependencias() {
cmd := exec.Command("go", "mod", "tidy")
if err := cmd.Run(); err != nil {
fmt.Println("Erro ao sincronizar go.mod:", err)
return
}
fmt.Println("Dependencias auditadas e registradas no go.sum.")
}
⚡ Nível 3: Integração
Problema 16.3 — Substituição Local de Módulos com go mod edit -replace
Contexto: Substituição Local de Módulos com go mod edit -replace no contexto de Módulos em Go: go.mod, go.sum e Workspaces.
Requisitos de Execução:
- Apontar dependência para diretório local em desenvolvimento utilizando cláusula
replace.
Resultado Esperado
Módulo local referenciado para desenvolvimento simultâneo.
📤 Instruções de Entrega (Microsoft Teams)
- Salve o arquivo como:
Atividade_16_3_SeuNome - Envie na tarefa:
Atividade Cap 16 - Módulos em Go: go.mod, go.sum e Workspaces
🔑 Gabarito de Código & Solução Comentada
package main
import "fmt"
func ConfigurarReplaceLocal() {
origem := "github.com/empresa/lib"
destino := "../lib_local"
fmt.Printf("Mapeamento replace ativo: %s => %s\n", origem, destino)
fmt.Println("Compilacao redirecionada para o diretorio local.")
}
🏆 Nível 4: Desafio Corporativo
Problema 16.4 — Go Workspaces com go.work para Projetos Multi-módulo
Contexto: Go Workspaces com go.work para Projetos Multi-módulo no contexto de Módulos em Go: go.mod, go.sum e Workspaces.
Requisitos de Execução:
- Configurar
go.workunificando múltiplos submódulos no mesmo ambiente de desenvolvimento.
Resultado Esperado
Workspace Go corporativo configurado para monorepo.
📤 Instruções de Entrega (Microsoft Teams)
- Salve o arquivo como:
Atividade_16_4_SeuNome - Envie na tarefa:
Atividade Cap 16 - Módulos em Go: go.mod, go.sum e Workspaces
🔑 Gabarito de Código & Solução Comentada
package main
import "fmt"
func ExibirWorkspaceCorporativo() {
submodulos := []string{"./servico_auth", "./servico_pedidos", "./pkg_compartilhado"}
fmt.Printf("Go 1.22 Workspace com %d submodulos gerenciados.\n", len(submodulos))
for _, sm := range submodulos {
fmt.Println(" - Submodulo Ativo:", sm)
}
}
| ⬅️ Voltar ao Índice de Exercícios | 📚 Sumário de Tópicos |