Integração Contínua: Criação de um Processo de Build

Você precisa estar logado para dar um feedback. Clique aqui para efetuar o login
Para efetuar o download você precisa estar logado. Clique aqui para efetuar o login
Confirmar voto
0
 (0)  (0)

Artigo da Revista Clube Delphi Edição 71.

Esse artigo faz parte da revista Clube Delphi Edição 71. Clique aqui para ler todos os artigos desta edição

Integração Contínua

Criação de um Processo de Build

O desenvolvimento de software, normalmente é formado por conjuntos de procedimentos, sejam no âmbito gerencial do projeto ou no ponto de vista técnico. Seja como for, os procedimentos que não dão bons resultados, são comumente abandonados e trocados por outras abordagens. No entanto, quando um procedimento dá resultados, ele é reutilizado e aprimorado, tornando-se assim uma prática; ou melhor, uma best practice.

Quando alguns visionários divulgam e advogam em favor dessas best practices, acabam criando um processo, que é a reunião de boas práticas em favor do desenvolvimento de software com maior qualidade, consistência e organização.

Sob esse ponto de vista, podemos destacar a Integração Contínua (Continuous Integration), que é um dos pilares fundamentais do Extreme Programming (XP). Como logo veremos, a Integração Contínua tem um papel fundamental no XP, em virtude de que viabiliza e potencializa a utilização de outras práticas propostas pelo XP.

Sem discutir em detalhes, o XP é um processo simples e ágil baseado no contato direto com o usuário final. Os requerimentos são capturados em estórias (user stories) e o software é desenvolvido em pequenas iterações onde essas estórias são escalonadas. O código é escrito seguindo padrões previamente definidos e pode ser escrito por pares de programadores. Adicionalmente, utiliza-se o desenvolvimento dirigido a testes, criando assim um ambiente perfeito para otimização e eliminação de duplicações por meio de Refactoring.

A partir dessa perspectiva, percebe-se que o XP propõe uma infra-estrutura onde o software é desenvolvido em “pedacinhos”, mas no entanto, cada pedacinho é submetido a todas as fases do ciclo de vida do software, da concepção ao teste. Nessa estratégia, cada pedacinho construído em cada iteração é testado pelo usuário, viabilizando assim, a identificação e correção de erros de concepção e programação nas fases iniciais da construção do software (e poupando muito tempo e dinheiro, afinal, quanto mais tarde um erro for detectado, maior será o custo e o tempo para corrigi-lo).

Nesse contexto, a proposta da Integração Contínua é a criação de um ambiente separado e independente do ambiente de desenvolvimento, onde as modificações individuais são unificadas ao projeto principal. O projeto é compilado, os testes são rodados, a documentação é gerada e assim por diante, como pode ser visto na Figura 1.


Figura 1. Integração Contínua em ação


Características

Entre as principais características da Integração Contínua, podemos destacar as seguintes:

- Independência: As tarefas de integração são realizadas otimizadamente sem terem que concorrer com outros aplicativos que normalmente estão rodando num computador de desenvolvimento. Além disso, a utilização de um ambiente independente fomenta o descobrimento de vários problemas, como por exemplo, problemas de dependência (arquivos, DLLs, chaves de registro) que fazem o software funcionar no computador de desenvolvimento, mas provavelmente não funcionaria no computador do cliente;

- Freqüência: Quanto mais cedo uma modificação puder ser integrada ao projeto principal e testada, mais cedo os erros serão detectados e corrigidos. A freqüência em que as tarefas de integração serão realizadas, sem dúvida, vão depender do software que estiver sendo desenvolvido. Em certos casos, onde os projetos são pequenos, o processo poderá ser iniciado assim que o desenvolvedor enviar as modificações para o repositório do controle de versões. Porém, quando o software é grande e demora horas só para compilar, as tarefas de integração deverão ser rodadas à noite ou duas vezes por dia;

- Sincronização: A sincronização das modificações freqüente e contínua, serve como um termômetro para identificar a qualidade dos esforços da equipe de desenvolvimento. Além disso, integrações bem sucedidas aumentam a moral de todos os membros da equipe;

- Automação: Entre outros benefícios, a Integração Contínua fornece um meio de automatizar processos manuais e repetitivos, evitando que os processos sejam esquecidos ou que algum passo importante não seja executado. Assim, você poderá realmente ter confiança de que essas tarefas serão realizadas com precisão e consistência todas as vezes que for preciso;

- Simplicidade: Uma vez que todo o processo seja automatizado, qualquer operação poderá ser realizada por meio de um clique do mouse. Ninguém mais precisará encontrar o “CheckList” para realizar a compilação das bibliotecas compradas no ano passado, lembrar como se faz para gerar o manual nos formatos desejados ou até mesmo lembrar como se faz para gerar a instalação do software."

A exibição deste artigo foi interrompida :(
Este post está disponível para assinantes MVP

 
Você precisa estar logado para dar um feedback. Clique aqui para efetuar o login
Receba nossas novidades
Ficou com alguma dúvida?