Dependências e ambientes reproduzíveis
Objetivo
Compreender manifestos, lock files, ambientes isolados e diretórios de dependências.
Conceitos essenciais
Manifestos
composer.json, package.json, pyproject.toml e Cargo.toml descrevem projeto/dependências segundo seus ecossistemas.
Lock files
composer.lock e package-lock.json registram resoluções concretas, reduzindo variação entre máquinas.
Ambientes virtuais
Python venv isola instalações de pacotes por projeto.
Diretórios instalados
vendor e node_modules normalmente são resultados de instalação; editar diretamente ali pode ser perdido em reinstalações.
Reprodutibilidade
Código, manifesto, lock file, documentação e configuração de exemplo formam parte da receita para reconstruir o ambiente.
Modelo mental
PROJETO + MANIFESTO + LOCK + CONFIGURAÇÃO → INSTALAÇÃO REPRODUZÍVELExemplo e demonstração
Criação conceitual de venv; não é requisito do projeto final.
python -m venv .venvExperimento / prática
- Explique por que Projeto A e Projeto B podem precisar de versões diferentes da mesma biblioteca.
- Diga por que vendor/node_modules não deve ser “corrigido manualmente” como primeira estratégia.
Erros comuns
- Lock file torna sistema operacional irrelevante.
- Dependência global é sempre melhor que isolamento.
Resumo
Ao concluir esta aula, revise o modelo mental e tente explicá-lo com suas próprias palavras antes de avançar.