Todo projeto possui dependências. Isso é completamente normal e existe em qualquer linguagem de programação que você possa usar para criar seu projeto, seja PHP, Javascript, Ruby ou Go. O ponto é que eu vejo muitos projetos por aí que não usam sequer um gerenciador para ajudar a manejar toda a bagunça que o uso de muitas dependências podem causar, especialmente porque é comum uma dependência ter como dependência outra dependência (plugins do jQuery são um exemplo, assim como Underscore e Backbone), e, no server-side, isso só se torna ainda mais importante: Já imaginou o quão grave seria um problema com alguma dependência importante no seu projeto e o quão louco seria atualizá-la quando vários outras dependências do seu projeto a usam também? Pois então, isso é bem comum quando se usa frameworks..E por isso que hoje vou falar um pouco sobre o Composer, um gerenciador de dependências esperto para PHP que sabe como administrar tudo da melhor forma possível.
(mais…)Bower - Gerencie Javascript e CSS com facilidade
Quando a aplicação é pequena e você é o único desenvolvedor do projeto, pode até ser fácil e rápido pegar todos os JS e CSS que você precisa (como do jQuery, por exemplo), colocar em alguma pasta do projeto e simplesmente usá-los referenciando em seu HTML. Entretanto, conforme o projeto vai crescendo, seja em complexidade seja em número de colaboradores, as coisas vão ficando mais complicadas e vale ter noção de versionamento, dependências e tudo mais. E fazer tudo isso manualmente é bem... chato.
E não basta ser chato! Conforme o tempo vai passando, vai ficando cada vez mais difícil manter o projeto com as dependências não sendo automaticamente gerenciadas. Afinal, quem aí já tentou atualizar as dependências de um projeto que não possui esse tipo de gerenciamento? Dica: não queira tentar.
É por isso que gerenciadores de pacotes se tornaram cada vez mais comum na web. E hoje vou falar um pouco sobre o Bower, um popular gerenciador de dependências projetado para gerenciar especialmente dependências do frontend, como projetos CSS, Javascript, etc.