11 Ferramentas de Gerenciamento de Dependência para Desenvolvedores da Web
Dependências são uma pedra angular do desenvolvimento web moderno. Estas são as ferramentas, plugins, bibliotecas e frameworks necessários necessário para criar aplicativos da web de alto nível.
O grande número de dependências disparou nos últimos anos. Com o tempo, os desenvolvedores adotaram ferramentas de gerenciamento de dependências que aliviar o estresse de manter as dependências organizadas e atualizadas. Essas ferramentas levam a um fluxo de trabalho otimizado para desenvolvedores e gerentes de projeto.
Eu cataloguei as melhores ferramentas de dependência aqui, incluindo plataformas bem estabelecidas e recém-emergentes. Desenvolvimento web profissional requer aprendizado contínuo e eu diria que o gerenciamento de dependências é uma habilidade que vale a pena aprender.
1. NPM
Não consegui escrever este guia sem dar crédito ao Gerenciador de Pacotes do Node. Construído em Node.js, este sistema alimenta um tremendo repositório de Mais de 100.000 pacotes e módulos.
Cada projeto pode usar uma configuração de arquivo package.json através do NPM e até mesmo gerenciado com o Gulp (no Node). Dependências podem ser atualizadas e otimizadas desde o terminal. E você pode construir novos projetos com arquivos de dependência e números de versão automaticamente extraídos do arquivo package.json.
O NPM é valioso para mais do que apenas gerenciamento de dependências, e é praticamente uma ferramenta obrigatória para o desenvolvimento moderno da web. Se você está confuso, por favor, confira este tópico do Reddit para uma explicação para iniciantes.
2. Bower
O sistema de gerenciamento de pacotes Bower roda no NPM, o que parece um pouco redundante, mas há uma diferença entre os dois, notadamente que o NPM oferece mais recursos, enquanto o Bower busca um redução no tamanho do arquivo e tempos de carregamento para dependências frontend.
Confira esta pergunta sobre o Stack para saber mais sobre as sutis diferenças.
Alguns desenvolvedores argumentam que o Bower é basicamente obsoleto, uma vez que é executado no NPM, um serviço que pode fazer quase tudo que o Bower pode fazer. De um modo geral isso não está errado.
Mas devs devem perceber que Bower pode otimize o fluxo de trabalho especificamente com dependências frontend. Eu recomendo o artigo de Ben McCormick, Is Bower, Útil para aprender mais sobre o valor oferecido pelas duas ferramentas de gerenciamento de pacotes..
3. RubyGems
RubyGems é um gerenciador de pacotes para Ruby com uma alta popularidade entre os desenvolvedores da web. O projeto é open source e inclui todas as gemas gratuitas do Ruby.
Para dar uma breve visão geral para iniciantes, um “gema” é apenas algum código que é executado em um ambiente Ruby. Isso pode levar a programas como o Bundler, que gerencia versões gem e mantém tudo atualizado.
Os desenvolvedores do Rails vão adorar esse recurso, mas e os pacotes frontend? Como o Ruby é open source, os desenvolvedores podem criar projetos como o Bower for Rails. Isso traz o gerenciamento de pacotes frontend para a plataforma Ruby com uma pequena curva de aprendizado.
4. ExigirJS
Há algo de especial no RequireJS, pois é basicamente um conjunto de ferramentas JS. Pode ser usado para carregando módulos JS rapidamente, incluindo módulos de nó.
RequireJS pode detectar automaticamente as dependências necessárias Com base no que você está usando, isso pode ser semelhante à programação clássica de software em C / C ++, onde as bibliotecas são incluídas com outras bibliotecas.
Você encontrará uma discussão interessante sobre o GitHub sobre esse tópico e o valor que ele oferece aos desenvolvedores da Web modernos. Concedido outras ferramentas de gerenciamento JS como webpack surgiram, RequireJS ainda funciona em ambientes de produção. E se isso funciona para você, isso é tudo que importa.
5. Jam
O gerenciamento de pacotes baseado em navegador vem em uma nova forma com o JamJS. Este é um gerenciador de pacotes JavaScript com gerenciamento automático semelhante ao RequireJS.
Todas as suas dependências são puxado em um único arquivo JS que permite adicionar e remover itens rapidamente. Além disso, elas podem ser atualizadas no navegador, independentemente de outras ferramentas que você esteja usando (como o RequireJS).
As bibliotecas são atualizadas com base nas versões mais recentes através do terminal. Cada projeto pode ser criado automaticamente com componentes otimizados baseado em suas necessidades. Jam é gratuito no GitHub e vale a pena dar uma olhada se você tiver tempo.
6. Browserify
A maioria dos desenvolvedores conhece o Browserify, mesmo que não faça parte do fluxo de trabalho típico. Esta é outra ferramenta de gerenciamento de dependências que otimiza os módulos e bibliotecas necessários reunindo-os.
Esses pacotes são suportado no navegador o que significa que você pode incluir e mesclar módulos com JavaScript simples. Tudo que você precisa é de NPM para começar e depois Browserify para se mover.
Confira este tutorial de introdução para ver como o Node pode ser gerenciado diretamente no navegador. Há também um longo manual do Browserify hospedado no GitHub gratuitamente. A idéia é trazer todas essas ferramentas do Node para o navegador e economizar tempo automatizando o processo com o Browserify.
7. Mantri
Ainda em seus estágios iniciais de crescimento, o MantriJS é um sistema de dependência para aplicações web de nível médio a alto. Dependências são gerenciadas através de namespaces e organizada funcionalmente para evitar colisões e reduzir a desordem.
Mantri está atualmente na v0.2.2 no momento da escrita. É completamente Código aberto e construído para aplicativos da Web mais complexos que exigem grandes pacotes de dependências. O Mantri pretende seguir as práticas de programação modular e espera incentivar os desenvolvedores para o mesmo caminho.
8. Volo
A ferramenta de gerenciamento de projetos volo é um repositório de código aberto do NPM que pode criar projetos, adicionar bibliotecas e automatizar fluxos de trabalho.
Volo roda dentro do Node e depende do JavaScript para gerenciamento de projetos. Um breve guia de introdução pode ser encontrado no GitHub, explicando o processo de instalação e o uso comum. Por exemplo, se você executar o comando volo criar
você pode anexar qualquer biblioteca como HTML5 Boilerplate.
Mas além de criar novos projetos, você também pode adicionar / atualizar bibliotecas para projetos mais antigos. Volo liga tudo o que você precisa para o desenvolvimento frontend. Confira as metas de design da volo para ver como ela funciona em um projeto do mundo real.
9. Ender
Ender é o “biblioteca sem biblioteca” e é um dos gerentes de pacotes mais leves que você encontrará online. Ele permite que os desenvolvedores pesquisar por pacotes JS e instalá-los / compilá-los diretamente da linha de comando. Ender é pensado como “Irmãzinha do NPM” pela equipe dev.
Naturalmente, todo o framework Ender está disponível gratuitamente no GitHub. É simplesmente uma ferramenta que você instala para ajudar gerenciar o consumo de estruturas JavaScript frontend para projetos locais. Tudo deve funcionar com facilidade ao máximo potencial de fluxo de trabalho de um desenvolvedor frontend.
O site principal da Ender tem documentação de qualidade, então vale a pena se você estiver interessado.
10. pip
O método recomendado para instalar dependências do Python é através do pip. Essa ferramenta foi criada pela Python Packaging Authority e é completamente aberta, assim como o próprio Python.
A maioria dos desenvolvedores de Python recomenda pip para dependências, incluindo a equipe do Django. Se você está apenas começando com o Python ou já o utiliza consistentemente com o desenvolvimento de backend, este é um gerenciador de pacotes que você ficará feliz em ter em sua caixa de ferramentas..
11. Compositor
O Composer é um gerenciador de pacotes muito semelhante ao NPM, mas está focado somente em bibliotecas PHP. Você pode encontrar uma lista de dependências no Packagist que inclui grandes frameworks PHP como o Laravel..
E se você é um desenvolvedor PHP de qualquer tipo eu recomendo seriamente olhar para o Composer. Está fácil de começar mas difícil de encaixar em seu fluxo de trabalho. No entanto, com a prática, ele se tornará um grampo para projetos PHP dev.
Esta é uma ferramenta versátil, com potencial para crescer ainda mais no tempo. Além disso, o NPM pode se misturar ao Composer para criar um sistema de gerenciamento de dependências frontend + backend para todos os seus projetos PHP / JS.
Empacotando
É claro que muitos desses gerentes de dependência têm traços semelhantes com qualidades semelhantes. Alguns são construídos para resolver problemas alternativos e pode até mesmo correr em conjunto um com o outro (ie. Composer e NPM).
O assunto do gerenciamento de dependências pode ser difícil para novos desenvolvedores. Eu recomendo escolher uma dessas ferramentas e pesquisar em profundidade para aprender o máximo possível. Tente construir pequenas aplicações web e aprenda por que o gerenciamento de dependências é útil.
Depois de aprender como aplicar essas ferramentas ao seu fluxo de trabalho, você nunca considerará voltar.