Abordamos aqui as principais ferramentas que nos dão uma visão realista do nosso projeto e nos ajudam a encontrar os pontos que podem ser melhorados/corrigidos
13. Qualidade
“Qualidade é um conceito subjetivo que está
relacionado diretamente às percepções de cada
indivíduo.
Diversos fatores como cultura, modelos
mentais, tipo de produto ou serviço prestado,
necessidades e expectativas influenciam
diretamente nesta definição.”
http://pt.wikipedia.org/wiki/Qualidade
Luís Otávio Cobucci Oblonczyk – 21/08/2011
15. A vida de um software sem
qualidade
●
Devido a um fato sobrenatural seu código para de
funcionar
●
A correção dos bugs é simples, o problema é encontrá-
los
●
Ao corrigir uma coisa, outras três param de funcionar
●
“O sistema estava funcionando até você usá-lo”
Luís Otávio Cobucci Oblonczyk – 21/08/2011
20. PHPUnit
●
Possibilita a criação de testes de unidade de forma
simples e precisa
●
Mostra o local exato dos problemas
●
Facilita as manutenções (diminui a possibilidade de
uma correção danificar outras funcionalidades)
●
Métricas: número de testes (com falha ou não),
número de métodos testados, cobertura de testes
http://www.phpunit.de/manual/current/en/index.html
Luís Otávio Cobucci Oblonczyk – 21/08/2011
23. Mutagenesis
●
Verifica se seus testes estão “falando a verdade”
●
Basicamente ele “muda” seu código em tempo de
execução e roda seus testes de unidade, se os testes
permanecerem funcionando muito provavelmente
existem testes mal feitos.
https://github.com/zenovich/runkit
https://github.com/padraic/mutagenesis
Luís Otávio Cobucci Oblonczyk – 21/08/2011
24. PHPLoc
●
Provê uma visão geral do projeto
●
Métricas: quanto código existe no projeto (lines of
code) e como está organizado (número de
namespaces, classes, métodos, funções, constantes)
https://github.com/sebastianbergmann/phploc
Luís Otávio Cobucci Oblonczyk – 21/08/2011
25.
26. PHP CodeSniffer
●
Varre seu projeto buscando violações de coding
standards
●
Métricas: número de violações encontradas, quais
partes devem ser corrigidas
http://pear.php.net/package/PHP_CodeSniffer
Luís Otávio Cobucci Oblonczyk – 21/08/2011
27.
28. PHPCPD
●
Busca duplicações de códigos em seu projeto
●
Métricas: número e locais das duplicações
https://github.com/sebastianbergmann/phpcpd
Luís Otávio Cobucci Oblonczyk – 21/08/2011
29.
30. PHPMD
●
Varre seu código buscando possíveis falhas
●
Mostra os locais que deveriam ser refatorados devido
à: variáveis que não são utilizadas, classes/métodos
muito complexos ou muito grandes, nomenclaturas
confusas em variáveis e métodos
http://phpmd.org
Luís Otávio Cobucci Oblonczyk – 21/08/2011
31. ●
Avoid short names
●
Class has too many methods
●
Avoid unused local variables
●
Overall complexity
●
Number of dependencies
32. DocBlox
●
Gera documentação de API a partir dos comentários
no código
●
Compatível com PHP 5.3
●
Gera diagrama com as classes (precisa do graphviz)
●
Mais rápido e mais leve que o PHP Documentor
http://www.docblox-project.org/
Luís Otávio Cobucci Oblonczyk – 21/08/2011
36. Phing
●
“PHing Is Not GNU make; it's a PHP project build
system or build tool based on Apache Ant. “
●
Ferramenta de automatização de tarefas
●
Com o Phing é possível definir o processo de
build dos projetos
http://www.phing.info
Luís Otávio Cobucci Oblonczyk – 21/08/2011
38. Software build
●
“In the field of computer software, the term
software build refers either to the process of
converting source code files into standalone
software artifact(s) that can be run on a
computer, or the result of doing so.”
●
Processo de converter o código-fonte em um ou
mais artefatos, ou o resultado deste processo
http://en.wikipedia.org/wiki/Software_build
Luís Otávio Cobucci Oblonczyk – 21/08/2011
39. Porque usar o Phing?
●
Simples de configurar
●
Possui tarefas para as principais ferramentas
●
É extensível
●
É feito em PHP
Luís Otávio Cobucci Oblonczyk – 21/08/2011
41. Phing
●
Em cada projeto você define as etapas do build
em um arquivo XML
●
As etapas podem depender ou executar outras
etapas
●
Podem ser definidas propriedades no arquivo
XML ou em um arquivo externo
Luís Otávio Cobucci Oblonczyk – 21/08/2011