Quando você cria softwares, você precisa lidar com versões em algum momento do desenvolvimento. Seja para gerenciar dependências, seja para dar um número de versão adequado para aquela mudança ou conjunto de mudanças que você fez. Mas, como representar corretamente uma mudança? Afinal, mudanças nem sempre são drásticas: Pode ser uma simples solução de bug, ou algum recurso tão simples que não afeta em nada os outros recursos do seu aplicativo. Bom, por essa razão hoje vou falar um pouco sobre o Versionamento Semântico, um padrão que, quando seguido corretamente, ajuda a garantir que cada nova versão lançada represente corretamente as mudanças feitas em relação à versão anterior.
(mais…)Onde (e como) hospedar repositórios Git?
Se você leu o meu último post sobre o Git, já deve ter percebido que o Git é um sistema muito poderoso e que facilita o trabalho em equipe ao fornecer recursos para facilitar isso, como branches e registro do autor de cada commit. No mesmo post, eu ainda apresentei o fato que torna o Git distribuído: A possibilidade de usar qualquer repositório git em um computador remoto para sincronizar o conteúdo do seu repositório local, e como isso poderia permitir o uso do git como um sistema P2P.
Pois bem, é verdade que é possível usar o Git como um sistema P2P, mas isso não é muito prático, pois o não implementa uma forma de "consenso" nesse estilo de requisição, ou seja, você pode sincronizar repositórios Git entre duas máquinas (como entre o seu computador e um servidor, por exemplo), tranquilamente, mas se o número de máquinas é maior que dois, a situação começa a complicar.
Devido a isso, é comum o uso do Git com sistemas de hospedagem de repositórios, que funcionam como uma "central" no qual os repositórios são armazenados (servindo também como backup, portanto) e que serve como meio de sincronização entre 2 ou mais máquinas possuindo um determinado repositório Git. E hoje, vou falar um pouco sobre as variadas opções que temos disponíveis, e ensinar como integrá-las com o seu repositório git feito no post anterior.
(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.