Versionamento de software, sabe como fazer? Aprenda Aqui!
O desenvolvimento de software atualmente segue procedimentos comprovadamente eficazes para que o processo seja mais produtivo. Nos seus primórdios, porém, não era assim: os desenvolvedores trabalhavam de forma bastante rústica e compartilhavam o trabalho via disquete.
Usando esse método, juntar as diferentes partes de um código dava um pouco de trabalho. Para melhorar isso, conceitos e ferramentas foram aprimorados e os desenvolvedores aprenderam como fazer versionamento de software. Venha entender como essa técnica funciona. Boa leitura!
O que é versionamento?
Em grandes projetos de desenvolvimento, os arquivos referentes a cada entrega devem ser fechados e, posteriormente, publicados. Esse processo se chama versionamento. Ou seja, a cada etapa de build and deploy (construir e implementar) finalizada, o aplicativo ganha uma nova versão.
Algumas razões levam à necessidade de criação de uma nova versão de um software. As principais são:
- correções de bugs;
- inclusão ou extensão de funcionalidades;
- mudança de arquitetura ou refatoração de código;
- correções pequenas e ajustes estéticos.
O processo de versionamento ajuda a documentar inclusões, alterações e exclusões de funcionalidades. Trata-se de um método muito útil que informa exatamente quando cada função foi ao ar e, até, resgata versões anteriores em caso de erros no processo de publicação.
Quando se tem um software versionado, a segurança para quem usa é maior. Pode acontecer, por exemplo, de uma versão recém-lançada apresentar erros logo após a publicação. É possível, então, colocar a versão anterior no ar novamente. Por esse motivo, o versionamento é essencial em qualquer tipo de projeto.
O que é ferramenta de versionamento?
Para facilitar o trabalho, o ideal é usar uma ferramenta de versionamento. Ela gerencia todo o ciclo de vida do trabalho, ou seja, guarda o histórico (ou versão) de cada documento (imagem, código, PDF, entre outros) do projeto.
A composição e o significado dos números das versões é uma escolha particular, mas essa escolha está relacionada com o processo de desenvolvimento. Os números refletem fatos ocorridos durante o trabalho e demonstram sua utilidade quando é necessário verificar compatibilidades, controlar alterações e, claro, manter o cliente feliz.
Em geral, essas ferramentas têm, pelo menos, os seguintes recursos:
- rastreamento de alterações desde a versão inicial;
- possibilidade de percorrer o histórico de mudanças e voltar a uma versão anterior;
- controle de acesso que permite o trabalho de várias pessoas ao mesmo tempo;
- ramificação de versões, que possibilita uma linha paralela de desenvolvimento.
Como fazer versionamento de software com o Git?
O Git é provavelmente a ferramenta de versionamento mais usada em projetos com muitos colaboradores. Trata-se da plataforma que abriga o GitHub, serviço online que oferece um servidor Git gratuito para projetos de código aberto.
Estrutura básica
O Git usa um servidor principal, que pode ser o GitHub, e vários subservidores (os repositórios), um para cada integrante da equipe de desenvolvimento. A ideia é que o repositório fique na máquina do programador enquanto este desenvolve seu trabalho.
Quando o programador termina, ele envia as alterações para o servidor principal. Assim, os repositórios permitem manter um histórico das versões dos documentos.
Instalação
Para instalar o Git no Windows devem-se seguir alguns procedimentos. Depois de fazer o download do arquivo do instalador, é preciso executá-lo e escolher o modo de visualização. Em seguida, é necessário definir o nome de usuário e o endereço de e-mail (todos os commits no Git usam essas informações).
Se usar a opção –global, o Git usará esses dados sempre que algo for feito nesse sistema. Para usar nome e/ou e-mail diferentes para projetos específicos, basta executar o comando sem o –global.
Comandos
É importante conhecer os principais comandos da ferramenta para tirar melhor proveito dela. Veja:
- init: cria um novo repositório;
- clone: permite clonar um repositório;
- add: usado para adicionar alterações. É o primeiro passo no fluxo de trabalho do Git;
- status: mostra em qual branch o usuário está e se existem itens modificados;
- diff: exibe linhas que foram adicionadas ou removidas;
- commit: usado para confirmar as modificações e enviar uma mensagem descrevendo-as;
- reset: permite desfazer modificações;
- rm: remove o arquivo da lista de monitorados e faz o commit;
- mv: move, renomeia e faz o commit de arquivos;
- branch: usado para desenvolver funcionalidades isoladas umas das outras;
- checkout: permite mudar de branch;
- merge: usado para mesclar branches;
- mergetool: permite visualizar os conflitos;
- log: mostra o histórico de commits;
- stash: armazena alterações em uma pilha para serem confirmadas (commit) depois;
- tag: serve para fazer marcações em pontos específicos;
- fetch: dá acesso a dados de projetos remotos;
- pull: incorpora alterações de um repositório remoto no branch atual;
- push: transfere commits do repositório local a um remoto.
Fluxo de trabalho centralizado
O fluxo de trabalho centralizado apresenta um único servidor enquanto várias pessoas trabalham em seus repositórios locais. No final, todos enviam seus documentos para o repositório principal. Passo a passo, seria assim:
- um repositório novo é criado para o projeto;
- cada integrante da equipe o clona em sua máquina local;
- a cada tarefa concluída, o programador cria uma nova branch em seu repositório local e faz o checkout para ela;
- sempre que desejar, o profissional faz commit das alterações, para que o histórico seja guardado no repositório local;
- depois que a tarefa for concluída e o commit for feito, é preciso fazer checkout para a branch principal e usar o pull para atualizar o repositório local com os documentos mais recentes;
- após o pull, é necessário fazer o merge da branch criada com a branch master para juntar os documentos no repositório local;
- já no fim, com o comando push é possível enviar as alterações ao repositório central;
- em seguida, pode-se apagar a branch criada (se desejar) e passar para a próxima tarefa da lista;
- e assim sucessivamente até que o projeto seja finalizado.
Quando mais de uma pessoa altera um mesmo arquivo ao mesmo tempo, ocorrem conflitos. Se o fluxo for seguido dessa forma, eles dificilmente aparecerão, pois depois que uma das versões for enviada ao servidor, a ferramenta não a aceita novamente obrigando o segundo desenvolvedor a realizar um merge.
Versionamento é importante?
Só quem já precisou lidar com um código em que não era o único desenvolvedor sabe como isso é difícil: as pessoas pensam de formas diferentes e o que é lógico para um pode ser confuso para outro. Esse é um dos problemas que podem ser solucionados a partir do versionamento de projetos.
Um bom controle de versão evita, ainda, que arquivos ou documentos sejam alterados por duas pessoas ao mesmo tempo, que uma alteração seja sobrescrita, que se percam arquivos funcionais que apresentaram problema após serem alterados e outros.
Além disso, permite que várias pessoas trabalhem no mesmo projeto ao mesmo tempo, possibilita que a equipe trabalhe paralelamente em duas versões distintas e ajuda a manter a qualidade do produto final.
Em resumo, o versionamento de software é parte integrante do desenvolvimento. Deve, portanto, ser tratado com o mesmo cuidado e atenção dados a padrões de projeto e metodologias adotados.
E então, já sabe como fazer versionamento de software? Siga a gente nas redes sociais para ficar por dentro das nossas novidades. Estamos no Facebook, no Twitter e no LinkedIn.