Integração contínua e PHPP
Alberto Guimarães Viana
Arquiteto e Consultor PHP

E-mail: albertogviana@gmail.com
Twitter: @albertogviana
Site: www.albertoviana.com
Como você desenvolve software?
O que é Integração Contínua?
O que é Integração Contínua?

  “Continuous Integration is a software development
   practice where members of a team integrate their
  work frequently, usually each person integrates at
 least daily - leading to multiple integrations per day.
   Each integration is verified by an automated build
(including test) to detect integration errors as quickly
as possible. Many teams find that this approach leads
   to significantly reduced integration problems and
   allows a team to develop cohesive software more
                         rapidly.”

                                              Martin Fowler
Quais os benefícios da IC?

• Detecção de erros cedo e frequente
• Relatório a cada build
• Código limpo e consistente
• Documentação
• Aumento da confiança
Qual o valor da IC?
Qual o valor da IC?

• Redução dos riscos
• Redução dos processos manuais
• Geração de deploy
• Melhor visibilidade do projeto
• Estabelece relação de confiança entre a equipe de
 desenvolvimento e produto
Estrutura
Estrutura
Ferramentas
PHP Documentor

Cria a documentação da API com base nos code
blocks definidos
PHP_CodeSniffer

• Verifica a existência de divergência entre o código e
  padrão de codificação estabelecido
• Garante que seu código seja clean e consistente
• Previne alguns erros comuns de semântica
PHP_CodeSniffer
PHPCPD


Verifica a existência de códigos duplicados
PHPCPD
PHPMD

PHP Mess Detector analisa o código em busca de
ponteciais problemas, sendo eles:

   Bugs
   Expressões complicadas
   Parâmetros, métodos e propriedades não utilizadas
PHPMD
PHPUnit

Prove um framework onde é possível escrever testes
de forma fácil, além de possuir funcionalidade de
execução dos testes onde é gerado um relatório para
analise.
PHPUnit
PHPLoc

PHPLoc é uma ferramenta que mede o tamanho do
projeto PHP
PHP_Depend

PHP_Depend é uma ferramenta de métrica de software
que permite:
• Geração de relatórios objetivos e mensura a
    qualidade do código encontrado
   Identifica partes suspeitas do código onde deve ser
    relizada revisões
PHP_Depend
PHP_Depend
Phing

 PHP project build system
 Baseado no Apache Ant

 Baseado em XML

 Multiplos jobs

 Integra com outras ferramentas PHP

 Github: https://github.com/albertogviana/phing-

jenkins
Dúvidas?
Obrigado!

   Slideshare: http://www.slideshare.net/albertogviana/
   E-mail: albertogviana@gmail.com
   Twitter: @albertogviana
   Site: http://www.albertoviana.com
   Joind.in: http://joind.in/3976

Integracao continua-e-php

  • 1.
  • 2.
    Alberto Guimarães Viana Arquitetoe Consultor PHP E-mail: albertogviana@gmail.com Twitter: @albertogviana Site: www.albertoviana.com
  • 3.
  • 4.
    O que éIntegração Contínua?
  • 5.
    O que éIntegração Contínua? “Continuous Integration is a software development practice where members of a team integrate their work frequently, usually each person integrates at least daily - leading to multiple integrations per day. Each integration is verified by an automated build (including test) to detect integration errors as quickly as possible. Many teams find that this approach leads to significantly reduced integration problems and allows a team to develop cohesive software more rapidly.” Martin Fowler
  • 6.
    Quais os benefíciosda IC? • Detecção de erros cedo e frequente • Relatório a cada build • Código limpo e consistente • Documentação • Aumento da confiança
  • 7.
  • 8.
    Qual o valorda IC? • Redução dos riscos • Redução dos processos manuais • Geração de deploy • Melhor visibilidade do projeto • Estabelece relação de confiança entre a equipe de desenvolvimento e produto
  • 9.
  • 10.
  • 11.
  • 12.
    PHP Documentor Cria adocumentação da API com base nos code blocks definidos
  • 13.
    PHP_CodeSniffer • Verifica aexistência de divergência entre o código e padrão de codificação estabelecido • Garante que seu código seja clean e consistente • Previne alguns erros comuns de semântica
  • 14.
  • 15.
    PHPCPD Verifica a existênciade códigos duplicados
  • 16.
  • 17.
    PHPMD PHP Mess Detectoranalisa o código em busca de ponteciais problemas, sendo eles:  Bugs  Expressões complicadas  Parâmetros, métodos e propriedades não utilizadas
  • 18.
  • 19.
    PHPUnit Prove um frameworkonde é possível escrever testes de forma fácil, além de possuir funcionalidade de execução dos testes onde é gerado um relatório para analise.
  • 20.
  • 21.
    PHPLoc PHPLoc é umaferramenta que mede o tamanho do projeto PHP
  • 23.
    PHP_Depend PHP_Depend é umaferramenta de métrica de software que permite: • Geração de relatórios objetivos e mensura a qualidade do código encontrado  Identifica partes suspeitas do código onde deve ser relizada revisões
  • 24.
  • 25.
  • 26.
    Phing  PHP projectbuild system  Baseado no Apache Ant  Baseado em XML  Multiplos jobs  Integra com outras ferramentas PHP  Github: https://github.com/albertogviana/phing- jenkins
  • 27.
  • 28.
    Obrigado!  Slideshare: http://www.slideshare.net/albertogviana/  E-mail: albertogviana@gmail.com  Twitter: @albertogviana  Site: http://www.albertoviana.com  Joind.in: http://joind.in/3976