Olá amigos!
Quais ferramentas estão usando atualmente para qualidade de código? pmd, checkstyle, findbugs?
Qual são os itens mais prioritarios que usam na hora de analisar os resultados desse tipo de verificação?
Se alguém tiver algum texto bacana sobre esse tema, tbm é super bem vindo!
[]'s
PMD é o cara…
Criei uma task Ant que antes do build ele verifica uma série de regras que eu adicionei, assim todos devem segui-las, se não, no way… hehehehe
Pra mim, naming conventions, ident, uso correto de try-catch, instancias em loops, ah, uma série de coisas são importantes…
Queria saber como integrar com um controle de versões, tipo, só entra no CVS/SVN/etc se tiver dentro do padrão…
No SVN num sei como fazer, mas vc pode fazer isso numa ferramenta de integração continua, se não passar não faz o build, algo assim.
[quote=RaulCarlin]
Queria saber como integrar com um controle de versões, tipo, só entra no CVS/SVN/etc se tiver dentro do padrão…[/quote]
Tu não ta sendo meio radical não?
Luiz, essas 3 que você citou são importantíssimas. A única coisa que você vai ter que fazer é customiza-las.
O PMD por exemplo tinha uma regra que obrigava você a declarar um construtor default, mas todos nós estamos carecas de saber que o compilador gera isso, portanto não faz sentido. Tem uma série de outras também.
O legal é que dá pra criar outras regras, facilitando abeça.
Slides da excelente palestra do Erik Dörnenburg sobre o tema no JAOO 2008 - Sydney:
Muito bom o material… valeu Shoes!
Muito interessante. Tinha algumas coisas que eu não conhecia como Toxicity chart, Codecrawler, Class metrics chart e Test to code ratio. Também não sabia que se usava tanto Excel pra gerar esses gráficos.
Vou dar uma pesquisada nessas ferramentas.
Só esse Toxicity chart que vai ser meio difícil porque parece que foi feito internamente na ThoughtWorks e o gráfico do slide não da pra entender muita coisa.
Luiz, eu uso e até já pensei em fazer isso no CruiseControl, mas como diserram, eu quero ser mesmo radical… hehehehe
Luiz:
No contexto de projetos legados ou que já têm muito código escrito,
essas ferramentas costumam dar toneladas de warnings.
Querer consertar tudo para eliminá-los pode não ser a estratégia mais
inteligente. Num projeto “em evolução” apliquei uma bateria de 5 ou 6 dessas
ferramentas, para ter uma idéia de onde o código fedia mais: a surpresa
foi que, cruzando os resultados, dava quase 1(hum) warning para cada
linha de código.
É uma questão de lidar com o risco, e de fazer uma análise crítica
considerando o perfil de cada ferramenta. As que
são focadas em dependências (JDepend, Classcycle) acho bem
úteis porque atacam o maior pesadelo de quem faz manutenção.
Checkstyle e similares se prendem a padrões de codificação, o
que na minha opinião não é tão importante numa base de código
previamente zoada.
Em particular, gosto do FindBugs, porque é a que fornece uma proporção
maior de problemas que são muito provavelmente bugs mesmo.
[]s
Jorge
[quote=Luiz Aguiar]Olá amigos!
Quais ferramentas estão usando atualmente para qualidade de código? pmd, checkstyle, findbugs?
Qual são os itens mais prioritarios que usam na hora de analisar os resultados desse tipo de verificação?
Se alguém tiver algum texto bacana sobre esse tema, tbm é super bem vindo!
[]'s[/quote]
[quote=rodrigoy]Luiz, dá uma olhada neste post do Papo:
http://josepaulopapo.blogspot.com/2008/04/qualidade-cdigo-manutenibilidade.html
[/quote]
Manifesto ágil: “Customer collaboration over contract negotiation”
Deming, em “Out of the crisis”: “elimine gestão por números”
Sem querer fazer patrulha ideológica, mas já fazendo, a idéia de
acordos de nível de serviço para contratos com terceiros para esse
tipo de métricas me parece muito perigosa: lembra métricas de
call center.
Outra questão é a suposta efetividade de inspeções de software
fora do fluxo de codificação (dentro do fluxo, chamamos de
pair programming), pois elas estão sujeitas a muitos vícios.
Participei de muitas e muitas inspeções estilo Fagan e
meu sentimento é que criam uma falsa sensação de segurança.
Quem participa da inspeção, em geral, não consegue ter
compreensão suficiente para apontar problemas significativos:
o resultado é que são encontradas apenas coisas sem tanta
importância, isso supondo que a dinâmica não degenere para
"quem fala mal do meu código, fala mal de mim".
Elas tem alguns efeitos colaterais bons, mas
o slogan “menos testes, mais inspeções”, embutido em
certos modelos de qualidade é basicamente furado.
Espero ter contribuido,
Jorge
Falando especificamente de Java tem um plugin com a maior parte dessas métricas do pdf do Erik pro Eclipse, o CAP (Code Analysis Plugin - http://cap.xore.de/)
Woody