Laboratório

- Configuração
- Exercício
- Tarefa
Configuração
- Instale o Go e verifique com
go version
- Crie um diretório
lab3
mkdir lab3
- Acesse o diretório e inicialize um módulo:
cd lab3
go mod init github.com/seu-usuario/lab3
Refatorar o CRUD Usando Interfaces para Repositórios
Objetivo
Refatorar o CRUD do Módulo 2 para usar uma interface de repositório, abstraindo o armazenamento de dados e facilitando testes e manutenção.
Passo a passo
- Crie um arquivo
crud.go
com o seguinte código:
Carregando editor interativo...
Execução
go run crud.go
Tarefa
- Crie um segundo repositório (ex:
RepositorioMock
) que implementeRepositorioProdutos
para testes, retornando dados fixos. - Adicione uma função anônima no main para filtrar produtos com preço acima de um valor
- Use um método em Produto para calcular o preço com imposto (ex: 21%)
Saída esperada
Lista de produtos:
ID: 1, Nome: Laptop, Preço: 999.99
ID: 2, Nome: Mouse, Preço: 29.99
Produto encontrado: {ID:1 Nome:Laptop Preco:999.99}
Produto atualizado: {ID:1 Nome:Laptop Pro Preco:1299.99}
Produto deletado com sucesso
Lista de produtos:
ID: 1, Nome: Laptop Pro, Preço: 1299.99
Caso de uso prático
A interface RepositorioProdutos abstrai o armazenamento, permitindo trocar a implementação (ex: de memória para banco de dados) sem alterar o código principal, similar ao padrão Repository em Java.