Log In       View a printable version of the current page.        
  Dashboard > CEJUG > Browse Space > News from
  2008/08/11
Last changed: Ago 11, 2008 12:56 by Lucimara Benigno de Lima

Há um tempo atrás eu e uma amiga recebemos a seguinte missão onde trabalhamos: pesquisar algo sobre INTEGRAÇÃO CONTÍNUA. Fazemos parte de uma equipe de desenvolvimento de sistemas web em Java, composta por 7 membros. Visitamos vários sites, estudamos bastante e depois de um tempo a gente fez uma apresentação para todos.

Houve uma palestra no CCT onde o assunto era sobre INTEGRAÇÃO CONTÍNUA. Mas quero expor aqui sobre esse assunto para ajudar aqueles que estão querendo aprender e / ou implantar a INTEGRAÇÃO CONTÍNUA onde trabalham.

O que é INTEGRAÇÃO CONTÍNUA? Quais as vantagens? Quais as ferramentas? Como usar?

A INTEGRAÇAO CONTÍNUA é uma prática que consiste em integrar o código várias vezes ao dia, assegurando sua consistência ao final de cada integração.

Imagine só: a equipe onde trabalho é composta de sete membros. Cada um elabora casos de usos e envia o que foi produzido para o repositório. Antes disso, testamos o que foi gerado, mas é freqüente nos depararmos com erros na máquina do nosso colega.

A Integração Contínua é uma das práticas introduzida com o eXtreme Programming.

Se cada programador integrar o seu código pelo menos uma vez por dia, no final do dia teremos várias integrações.

Algumas vantagens da Integração contínua:

  • eliminação de longas sessões de integração;
  • os problemas de integração são detectados tão breve quanto o possível;
  • as pessoas criam um sentimento de interdependência.

Para uma melhor prática da implementação da IC, Martin Fowler cita 10 práticas que são fundamentais:

  1. Manter um repositório de código-fonte unificado;
  2. Automatizar a construção do executável;
  3. Usar testes automatizados;
  4. Todos os membros da equipe devem atualizar o repositório diariamente.
  5. Cada atualização do repositório deve iniciar a construção do executável;
  6. Manter a construção do executável rápida;
  7. Testar em um clone do ambiente de produção;
  8. Tornar fácil que qualquer um obtenha o mais recente executável;
  9. Transparência (qualquer um pode saber o que está acontecendo);
  10. Implantação automatizada.

Para que a integração ocorra sem muitas dores, faz-se necessário o uso de algumas ferramentas. São elas:

* Ferramentas de build: essas ferramentas são utilizadas para agilizar o processo de build de um sistema, automatizando tarefas como: compilação do código do sistema, compilação e execução dos teste unitários e de aceitação; geração de relatórios dos testes, de cobertura e de análise estática do código; quaisquer outras atividades que sejam definidas como necessárias para o build.

* Ferramentas de controle de versão: ferramentas que armazenam e mantém a versão de todo código-fonte. É também conhecida como repositório. Essas ferramentas automatizam as seguintes tarefas: identificação de mudanças locais, exibição das diferenças entre o código de um arquivo local e uma de suas versões; identificação de quem realizou determinada alteração; incorporação de uma mudança em um arquivo armazenado no repositório; sincronização do código local com uma das versões do sistema ou de um arquivo armazenado no repositório. Temos alguns exemplos de ferramentas de controle de versão: Subversion, CVS, entre outros. Apesar de haver essas ferramentas, vale ressaltar que a integração só valerá a pena se não houver erros. Para tanto, faz-se necessário a automatização dos testes e que as ferramentas simplifiquem e automatizem o processo de integração contínua.

Há duas formas de se realizar a integração contínua:

  • forma síncrona:não há a utilização de ferramentas que automatizem a integração. Cada programador integra seu trabalho de cada vez. Após o término da integração do código, o próximo programador poderá integrar o seu.
  • forma assíncrona: Há a utilização de ferramentas que automatizam a integração. Alguns exemplos: CruiseControl, AnthillPro, Continnum, Team City, Luntbuild, Hudson, Scons, Bitten, Gump, TinderBox, Final Builder, Build Forge, Beetle Juice, entre outros. Essa prática só se torna viável quando a equipe mantém sempre o código fonte que existir no repositório funcionando.

A seguir, estão alguns links falando mais sobre IC:  Improveit, Programação, Analise de Sistemas e Gerencia de Projetos.

Clique aqui para saber como configurar o CruiseControl com o Subversion

Posted at 11 Ago @ 12:54 PM by Lucimara Benigno de Lima | 0 comments

Agosto 2008
Sun Mon Tue Wed Thu Fri Sat
          1 2
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30
31            

Ago 14, 2008
Ago 09, 2008

Design: Felipe Martins, Israel Freitas - Webmaster: Israel Freitas