Bibliotecas, dependências e gerenciadores de pacotes

Compreender reutilização de código, dependências, pacotes, lock files e riscos de supply chain.

Bibliotecas, dependências e gerenciadores de pacotes

Objetivo

Compreender reutilização de código, dependências, pacotes, lock files e riscos de supply chain.

Conceitos essenciais

Biblioteca

Conjunto reutilizável de funcionalidades. Pode fazer parte da biblioteca padrão ou vir de terceiros.

Dependência

Componente necessário ao projeto. Dependências podem ter suas próprias dependências, formando um grafo transitivo.

Pacote e repositório

Ecossistemas distribuem bibliotecas como pacotes através de repositórios e metadados.

Gerenciadores

Composer (PHP), pip (Python), npm (Node.js), NuGet (.NET) e Cargo (Rust) automatizam tarefas de instalação e resolução segundo seus modelos.

Lock file

Registra versões concretamente resolvidas e ajuda a reproduzir ambientes.

Segurança

Pacotes podem executar código, hooks ou scripts. Origem, versão, licenças, vulnerabilidades e manutenção fazem parte da decisão técnica.

Modelo mental

PROJETO → DEPENDÊNCIAS DIRETAS → DEPENDÊNCIAS TRANSITIVAS → PACOTES/VERSÕES

Exemplo e demonstração

Um projeto Node.js pode declarar dependências em package.json e registrar uma resolução em package-lock.json; PHP usa composer.json/composer.lock em fluxo semelhante, embora os ecossistemas tenham regras próprias.

package.json / package-lock.json
composer.json / composer.lock
pyproject.toml

Experimento / prática

  • Explique diferença entre biblioteca e framework.
  • Desenhe um grafo Projeto → A → B e identifique dependência transitiva.
  • Liste dois riscos de instalar pacote de fonte desconhecida.

Erros comuns

  • Gerenciador de pacotes é runtime.
  • Lock file elimina toda incompatibilidade possível.
  • Dependência de terceiros não afeta segurança.

Resumo

Ao concluir esta aula, revise o modelo mental e tente explicá-lo com suas próprias palavras antes de avançar.