metric_fu
Ruby@Liberdade - 27 Junho 2009

         Ilídio Varandas
        twitter.com/varandas
        ilidio.varandas@gmail.com
Quem utiliza?
 metric_fu

 Saikuro

 Flog

 Flay

 Rcov

 Reek

 Roodi
Instalação


sudo gem install jscruggs-metric_fu

Adicionar require 'metric_fu' ao
Rakefile




      http://metric-fu.rubyforge.org
metrics_fu



Gera relatórios com métricas

Através de um conjunto de rake tasks
Saikuro


“Simplified Complexity Calculation”:
Adiciona o número de branch points
num método.

Procurar pontuações elevadas (> 7)
Flog
Mede a complexidade do código

Algoritmo do tipo “ABC”

  “Assignments”

  “Branches”

  “Conditionals”
Flog
Procurar pontuações elevadas (> 40)
Flay
Indica estruturas similares no código

Diferenças:

  Nos valores e nomes dos literais

  Espaços em branco

  Estilos de programação

São ignoradas.

Procurar pontuações elevadas (> 30)
Reek

Detecta “code smells”:

  Duplicação

  Métodos longos

  “Nested Iterators”

  ...
Roodi

Valida problemas de “design”:

  AssignmentInConditionalCheck
  CaseMissingElseCheck
  CyclomaticComplexityBlockCheck
  CyclomaticComplexityMethodCheck
  EmptyRescueBodyCheck
  MethodLineCountCheck
  ...
Questões?

Metric Fu