Pergunta

Uma coisa que sinto muita falta em Java é o suporte da ferramenta.FindBugs, Checkstyle e PMD criaram uma trindade sagrada de métricas de qualidade de código e verificação automática de bugs.

Existe algo que irá verificar bugs simples e/ou violações de estilo do código Ruby?Pontos de bônus se eu puder adaptá-lo para frameworks como Rails, para que os idiomas do Rails sejam respeitados.

Foi útil?

Solução

Recentemente comecei a procurar algo assim para Ruby.O que encontrei até agora:

Estes podem ser lugares para começar.Infelizmente ainda não usei nenhum dos três o suficiente para oferecer uma boa opinião.

Outras dicas

Saikuro e Flog podem ser bons para se ter uma ideia básica da complexidade do código.Você também pode usar uma ferramenta como o rcov para analisar a cobertura do seu teste.
Existe um plugin para projetos Rails que combina todas essas métricas em uma única tarefa rake.É chamado métrica_fu.

Projetos que encontrei e testei recentemente:

Você pode querer experimentar Rubo Cop.É um verificador de estilo de código Ruby baseado no Guia de estilo Ruby.Ele é mantido de forma bastante ativa e é baseado em ferramentas Ruby padrão (como o ripper biblioteca).Funciona bem com Ruby 1.9 e 2.0 e possui ótima integração com Emacs.Espero que você ache útil!

parece que pode ajudá-lo a encontrar código não utilizado e inútil, o que parece se adequar ao que você procura.

Não conheço nenhuma outra ferramenta desse tipo.
Esse problema é muito mais difícil de resolver em Ruby do que em Java - você notará que todas essas ferramentas Java se autodenominam usando 'análise estática' do código.
A análise estática do código Ruby geralmente não é possível, porque não há nada estático que você possa analisar (os métodos geralmente são criados em tempo de execução e assim por diante).

De qualquer forma, algumas dessas coisas são desnecessárias em Ruby porque a linguagem as incorpora.Por exemplo, você não precisa de um padrão de codificação para garantir que todas as suas classes sejam NamedLikeThis porque o código não funcionará se não estiverem.

P.S.EU ter para adicionar a isenção de responsabilidade padrão de que esse tipo de ferramenta muitas vezes pode ser uma pista falsa.Você pode passar o dia todo fazendo com que seu código siga o que a ferramenta acha que deveria ser e acabar com mais bugs do que no início.
IMHO, a melhor solução é escrever seu código com fluência para que você possa lê-lo com mais facilidade.Nenhuma análise estática será tão boa quanto um código de leitura humana que afirma claramente o que deve fazer.Ser capaz de fazer isso é onde Ruby está anos-luz à frente de muitas outras linguagens.Pessoalmente, recomendo que você concentre seus esforços em aprender a escrever com mais fluência e educar sua equipe sobre essas coisas, em vez de gastar tempo em análises estáticas.

Outra ferramenta interessante, embora em estágios iniciais, segundo o autor, é o fedor:

http://reek.rubyforge.org/

reek atualmente inclui verificações muito ingênuas para os seguintes cheiros de código:

  • Método Longo
  • Classe Grande
  • Inveja de recursos
  • Nome não comunicativo
  • Lista longa de parâmetros
  • Função útil
  • Iteradores aninhados
  • Casal de controle
  • Duplicação
  • Item da lista

Pessoalmente, acho que ainda há muitos falsos positivos, mas apenas observar a saída de alguns dos meus códigos me ajudou a repensar algumas decisões sobre estilo e arquitetura de código.

Código Clima é uma ferramenta SaaS que se integra por meio do git e "avalia" automaticamente seu código.Ele notifica você por meio de vários canais se houver uma queda repentina na qualidade.Bela interface de usuário também.

Não vi essas perguntas quando perguntadas, mas uma postagem no blog que fiz também pode ajudar.Nele eu abordo um monte de ferramentas Ruby e abordo especificamente 4 ferramentas de qualidade de código...

  1. Roodi
  2. Açoitar
  3. Saikuro

Também pode valer a pena conferir Towelie e Flay

http://devver.wordpress.com/2008/10/03/ruby-tools-roundup/

Agora combinamos muitas ferramentas em uma ferramenta única de monitoramento de métricas e qualidade de código Ruby chamada Caliper.Isso pode atender bem às suas necessidades.Ele rastreia várias métricas de qualidade ao longo da vida de um projeto.

Caliper - melhore seu código Ruby

Há também excelente.Ainda não experimentei, mas também parece promissor.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top