Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Mantendo seu software sob controle

Mantendo seu software sob controle

A apresentação tem o objetivo de mostrar algumas ferramentas voltadas à qualidade de software aplicadas ao PHP.

Para mostrar o funcionamento das ferramentas, existe um repositório no Github contendo exemplos de uso das mesmas.

https://github.com/ionixjunior/php-qa

790726f5b5613d61926dea2e2efd4da1?s=128

Ione Souza Junior

October 15, 2014
Tweet

More Decks by Ione Souza Junior

Other Decks in Programming

Transcript

  1. Mantendo seu software sob controle por Ione Souza Junior

  2. Quem sou eu? • Desenvolvedor Web; • PHP; • Java;

    • PhoneGap; • Twitter: @ionixjunior
  3. Agenda • Conhecer algumas ferramentas para controle e qualidade de

    software ( aplicadas ao PHP ); • Mess Detector; • Code Sniffer; • Copy/Paste Detector; • PHPUnit; • PHP Documentor;
  4. Principais problemas em um software • Controlar a padronização;

  5. Principais problemas em um software • Garantir o correto funcionamento;

  6. Principais problemas em um software • Identificar pontos que precisam

    ser melhorados;
  7. E agora..

  8. • O que fazer? E agora..

  9. • O que fazer? • Por onde começar? E agora..

  10. PHP Quality Assurance

  11. PHP Quality Assurance

  12. PHP Quality Assurance • Um conjunto de ferramentas que os

    desenvolvedores deveriam usar ou pelo menos conhecer;
  13. PHP Quality Assurance • Um conjunto de ferramentas que os

    desenvolvedores deveriam usar ou pelo menos conhecer; • http://phpqatools.org
  14. Algumas ferramentas…

  15. None
  16. PHP Mess Detector

  17. PHP Mess Detector • Identifica bagunças no código;

  18. PHP Mess Detector • Identifica bagunças no código; • Parâmetros,

    métodos e propriedades não utilizadas;
  19. PHP Mess Detector • Identifica bagunças no código; • Parâmetros,

    métodos e propriedades não utilizadas; • Alta complexidade de código;
  20. PHP Mess Detector • Identifica bagunças no código; • Parâmetros,

    métodos e propriedades não utilizadas; • Alta complexidade de código; • http://phpmd.org
  21. None
  22. None
  23. PHP Code Sniffer

  24. PHP Code Sniffer • Verifica se o código está escrito

    de forma padronizada;
  25. PHP Code Sniffer • Verifica se o código está escrito

    de forma padronizada; • A verificação é baseada em padrões configurados;
  26. PHP Code Sniffer • Verifica se o código está escrito

    de forma padronizada; • A verificação é baseada em padrões configurados; • https://github.com/squizlabs/PHP_CodeSniffer
  27. None
  28. None
  29. PHP Copy/Paste Detector

  30. PHP Copy/Paste Detector • Identifica blocos de códigos duplicados;

  31. PHP Copy/Paste Detector • Identifica blocos de códigos duplicados; •

    https://github.com/sebastianbergmann/phpcpd
  32. None
  33. None
  34. PHPUnit

  35. PHPUnit • Framework utilizado para desenvolvimento de testes unitários;

  36. PHPUnit • Framework utilizado para desenvolvimento de testes unitários; •

    Ajuda a garantir o correto funcionamento do algoritmo;
  37. PHPUnit • Framework utilizado para desenvolvimento de testes unitários; •

    Ajuda a garantir o correto funcionamento do algoritmo; • https://phpunit.de
  38. Mãos a obra!! Come go!!

  39. None
  40. PHP Documentor

  41. PHP Documentor • Cria documentação do código fonte baseado nos

    comentários inseridos;
  42. PHP Documentor • Cria documentação do código fonte baseado nos

    comentários inseridos; • http://phpdoc.org
  43. None
  44. Ok, mas..

  45. Ok, mas.. • Acha que irá perder muito tempo usando

    as ferramentas?
  46. Ok, mas.. • Acha que irá perder muito tempo usando

    as ferramentas? • Acha que deveria existir uma maneira mais fácil de utilizá-las?
  47. None
  48. Integração com IDEs

  49. Integração com IDEs • Netbeans • phpCS-MD Plugin • PhpDocumentor

  50. Integração com IDEs • Netbeans • phpCS-MD Plugin • PhpDocumentor

    • Eclipse PDT • Plugin PTI
  51. Integração com IDEs • Netbeans • phpCS-MD Plugin • PhpDocumentor

    • Eclipse PDT • Plugin PTI • Sublime • Plugin PHPUnit e PHPCS via Package Control
  52. E como programar melhor?

  53. E como programar melhor? • Não esqueça: as ferramentas não

    fazem nada sozinhas…
  54. E como programar melhor? • Não esqueça: as ferramentas não

    fazem nada sozinhas… • Cabe a você adotar um conjunto de regras para utilizar
  55. E como programar melhor? • Não esqueça: as ferramentas não

    fazem nada sozinhas… • Cabe a você adotar um conjunto de regras para utilizar • Sugestão de leitura: Object Calisthenics
  56. Dúvidas?

  57. Obrigado!