29/01/2020 | Autor: Claudio Romão | Categoria: Técnico | Comentários

Sonarqube, o guardião da qualidade do seu código

As aplicações atualmente estão mudando com muita frequência para atender a necessidade do negócio e os requisitos do cliente. E isso acaba gerando uma pressão no time que está desenvolvendo o sistema para fazer mais e mais rápido e com isso, as vezes o time começa a aceitar alguns débitos técnicos que vão deixar para pagar depois.

O Débito técnico é igual juros de cartão de crédito: quanto mais demoramos a pagar, mais cara a conta final fica. E com isso derrubamos a qualidade do nosso código. E baixa qualidade trás: baixa velocidade no desenvolvimento da aplicação, problemas em produção, dificuldade em manter a base de código atual, confiabilidade no sistema entre outros.

O Sonarqube é a ferramenta que vai nos ajudar em tempo de desenvolvimento a analisar, identificar e corrigir esses erros antes que seja tarde demais.

Mas como o Sonarqube faz isso ?

Uma das funcionalidades que conseguimos com ele é realizar a análise estática de código e com isso já ter uma visão dos problemas que estamos adicionando no nosso software mesmo antes de uma compilação.

Essa análise é feita seguindo padrões definidos por você e seu time. O Sonarqube já vem com alguns dos melhores padrões do mercado já embarcados o que facilita a sua adoção e com base nisso conseguimos já ter a visão de possíveis problemas, como por exemplo:

  • Manutenabilidade do Código: Como falei anteriormente, precisamos alterar com muita frequência o nosso código. Você possuir um código que é difícil de alterar acaba trazendo problemas na velocidade de entrega de novas versões da aplicação para o seu cliente, deixando também o software mais caro, pois precisamos de mais tempo para fazer modificações nele.

  • Confiabilidade: O time precisa confiar no código-fonte e saber que ele vai fazer o que precisa sem provocar erros operacionais, como por exemplo erroe inesperado durante sua execução. Esses erros podem ser gerados por falta de utilização de boas práticas de programação, deixando potenciais problemas irem para produção

  • Segurança: Como a maioria das nossas aplicações são acessadas via rede, nós temos que nos preocupar com possíveis problemas de segurança que podem ser explorados por invasores.

Com essas informações em mãos, a equipe de desenvolvimento consegue atuar de forma mais eficiente durante a fase de construção do sistema, tendo confiança que o código que estão escrevendo hoje é sólido e de qualidade. E é o que todos desejam, desde o desenvolver que é diretamente responsável por escrever o código, até o seu cliente pois sabe que pode confiar mais na aplicação.

Como fazemos isso ?

O próprio desenvolvedor já pode instalar na sua IDE o “Sonarlint” que já vai analisando o código enquanto ele programa, indicando possíveis problemas de segurança, problemas que podem ser inseridos e código que está sendo desenvolvido fora dos padrões das melhores práticas.

Além disso, nós podemos com o “Sonarqube” ou “SonarCloud” adicionar as validações de forma automática no seu processo de CI, ou seja, sempre que colocarem uma alteração no código, um sistema de build automatizado vai ser disparado e uma das tarefas é fazer a validação. Nesse modelo conseguimos fazer validações de regras, como por exemplo, meu código não pode ter nível de segurança menor que B. Se o código que o você alterou, está trazendo potenciais riscos de seguranda, sua nota vai cair e podemo quebrar a build, já dando um feedback que a aplicação está com problemas.

Como vimos, hoje conseguimos melhorar a forma como desenvolvemos software com ajuda de poderosas ferramentas de análise e com isso tendo mais tranquilidade para fazer alterações, pois sabemos que teremos uma ferramenta que nos ajudará a identificar possíveis problemas.

E você já está usando alguma ferramenta de análise estática de código? Se sim, deixe no comentário qual é e o que tem achado dele. Se não, nos diga o porque para podermos ajudar você a quebrar mais essa barreira.

Espero que tenha gostado e se tiver alguma dúvida específica me manda um e-mail ou deixe nos comentários.

Até a próxima, Claudio Romão