Dependências e ambientes reproduzíveis

Compreender manifestos, lock files, ambientes isolados e diretórios de dependências.

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ÍVEL

Exemplo e demonstração

Criação conceitual de venv; não é requisito do projeto final.

python -m venv .venv

Experimento / 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.