Spec Sistemas Com Go • Trilha Progressiva em 4 Níveis


🧭 Navegação Pedagógica


🎯 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:

  1. Configurar manifesto go.mod definindo caminho de importação e versão do Go.

Resultado Esperado

Módulo Go inicializado com integridade garantida.

📤 Instruções de Entrega (Microsoft Teams)

  1. Salve o arquivo como: Atividade_16_1_SeuNome
  2. 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:

  1. Sincronizar dependências no manifesto e arquivo go.sum garantindo checksums SHA-256.

Resultado Esperado

Dependências auditadas e sincronizadas no go.sum.

📤 Instruções de Entrega (Microsoft Teams)

  1. Salve o arquivo como: Atividade_16_2_SeuNome
  2. 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:

  1. 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)

  1. Salve o arquivo como: Atividade_16_3_SeuNome
  2. 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:

  1. Configurar go.work unificando múltiplos submódulos no mesmo ambiente de desenvolvimento.

Resultado Esperado

Workspace Go corporativo configurado para monorepo.

📤 Instruções de Entrega (Microsoft Teams)

  1. Salve o arquivo como: Atividade_16_4_SeuNome
  2. 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