Qualidade de Código e Debito Técnico com SonarQube

Tempo de leitura: menos de 1 minuto

E ai pessoal, beleza?

Todos temos em mente a importância que nosso código fonte tem para o bom funcionamento de nossa aplicação, pois um código bem desenvolvido, que segue uma arquitetura corretamente, que segue boas práticas, tende a deixar nosso software otimizado, e também facilita manutenções futuras.
Tendo isto em vista, sempre buscamos meios de acompanhar nossa aplicação, então, vamos conhecer hoje, um pouco desta ótima ferramenta chamada “SonarQube”.
O SonarQube, é uma ferramenta open-source, que é utilizada para gerenciar a qualidade de nossas aplicações, abordando alguns pontos como:

    • • Debito Técnico
      • Duplicidade de Código
      • Complexidade Ciclomática
      • Code Coverage
      • Padrões de Código
      • Arquitetura e Design
      • UnitTests
      • Comentários
Dashboard
Dashboard

Podemos utilizar o SonarQube, para trabalhar com diversas linguagens, como por exemplo:

  • C#
    • Cobol
    • Java
    • ABAP
    • C++
    • CSS
    • Swift
    • JavaScript
    • Phyton
    • XML
    • PHP

O SonarQube, nos proporciona informações bem completas sobre nossas aplicações, que nos ajuda muito a acompanhar a evolução do nosso código, e possui também, alguns gráficos bem interessantes para nos auxiliar em nossos acompanhamentos, como por exemplo, o gráfico abaixo:

Graficos
Graficos

Por padrão, o SonarQube já possui algumas regras para avaliar seu código fonte, cada linguagem possui diversas regras padrão, mas nada nos impede de criar nossas próprias regras, ou importar regras criadas por terceiros, no caso de C# por exemplo, existe um plugin do ReSharper, que nos trás diversas outras regras, nós podemos visualizar uma lista com todas as que já possuímos.

Listagem de Regras
Listagem de Regras

 

Legal, estamos vendo aqui, alguns pontos bem legais sobre a ferramenta, mais porque exatamente devemos dar atenção a essa ferramenta?
Bom, embora muitas vezes não damos a devida atenção, todos sabemos que bugs geram prejuízos muito grandes para nosso projeto, seja ele devido a reclamações de clientes, ou por custo de manutenção, porque vamos ter que gastar um tempo a mais para corrigir um erro, e caso nossa aplicação não esteja bem desenvolvida, seguindo todos os padrões e regras definidos, perderemos cada vez mais tempo e dinheiro para corrigir.
O SonarQube, nos permite gerir nossa aplicação para que possamos evitar esse tipo de problemas, pois ele nos permite visualizar, como vimos mais acima, o Debito Técnico de nossa aplicação, e para termos uma aplicação cada vez melhor, devemos na medida do possível, diminuir nosso debito técnico.

Débito Técnico: Segundo Martin Fowler, débito técnico, é semelhante a uma dívida financeira, onde optamos por pagar juros. Por exemplo:
Precisamos implementar uma nova funcionalidade em nosso sistema, você tem duas maneiras de realizar isso:
1 – A maneira rápida, mas que não segue os padrões de arquitetura e/ou boas práticas, onde no futuro teremos que refatorar nossa aplicação, gerando retrabalho, e perda de dinheiro;
2 – A maneira um pouco mais demorada, mas que seguirá todos os padrões, e não nos trarão problemas e retrabalho.
Caso opte pela primeira maneira, estará adquirindo débito técnico para sua aplicação.

Uma coisa que acho bem interessante nessa ferramenta, é que, abrange diversas linguagens, e ferramentas de integração continua, como por exemplo, Maven e Jenkins. 
Ah, tenho uma novidade pra você…..
Se sua empresa trabalha com o Team Foundation Server 2013, podemos implementar o SonarQube para gerenciar nossos projetos. 
Legal não? Temos uma ferramenta bem legal, com recursos bem uteis, que ainda por cima é open-source.
Quer saber mais sobre a ferramenta? Existe um projeto de demonstração que você pode visualizar aqui, onde podemos ver a ferramenta em funcionamento.
Gostou dessa ferramenta? Em breve, estarei disponibilizando um material de como podemos instalar em nossos servidores.

 

 

Saiba mais:

http://nemo.sonarqube.org/

http://docs.sonarqube.org/