Sonar
O SonarLint é uma ferramenta de inspeção estática que auxilia um programador na identificação e correções de problemas de codificação. O SonarLint está disponível para diversas IDEs (Integrated Development Environment) como por exemplo: VSCode, Eclipse, Intellij, entre outros e, possui um conjunto grande de regras para análise de código JavaScript, TypeScript, Python, Java, HTML, PHP, entre muitas outras. 😀
Utilizando uma variedade de regras e padrões de boas práticas de programação, o SonarLint verifica o código à medida que é digitado, destacando possíveis bugs, vulnerabilidades de segurança, violações de convenções de codificação e outras questões de qualidade de código. Isso permite que os desenvolvedores corrijam esses problemas imediatamente, enquanto estão escrevendo o código, o que ajuda a reduzir o tempo e os custos associados à identificação e correção de problemas mais tarde no ciclo de desenvolvimento.
SonarLint no VSCode 🖥️
Para instalar o SonarLint no VSCode, basta procurar o pacote no Marketplace e clicar no botão Install
. Alternativamente, você pode utilizar o próprio Visual Studio Code para instalar o SonarLint por meio das extensões, nesse caso, pesquise por SonarLint que você encontrará a extensão para VSCode, a imagem abaixo ilustra esse processo:
Figura 1 - Instalação do SonarLint no VSCode
Faça um teste para verificar se o SonarLint está configurado no seu VSCode. Primeiro, abra um terminal e digite o seguinte comando do Maven:
mvn archetype:generate -DarchetypeGroupId=org.apache.maven.archetypes -DarchetypeArtifactId=maven-archetype-quickstart -DarchetypeVersion=1.4
O comando acima é utilizado para criarmos um projeto Java simples a partir do Maven. Durante a criação do projeto, o Maven irá perguntar sobre o grupoId (uma identificação do seu projeto dentro de todos projetos Maven) e o artifactId (o nome do seu .jar sem a versão). Depois de escolher o grupoId e o artifactId, o Maven irá criar um diretório, utilize o comando code [nome do artifactId]
para abrir o projeto no VSCode.
⚠️ Importante: para fazer esse teste, se certifique que o VSCode esteja instalado com as extensões do Java, caso não esteja, assista o início desse vídeo.
Uma vez que você tenha aberto o seu projeto no VSCode, procure a classe App.java
dentro do diretório src
e adicione o seguinte método:
public int foo(int a) {
int b = 12;
if (a == 1) {
return b;
}
return b; // Noncompliant
}
Se o SonarLint estiver rodando com sucesso, você verá um alerta conforme a figura abaixo: 👊
Figura 2 - SonarLint no VSCode
O alerta ocorreu pois o método foo
possui dois retornos, e a regra Methods returns should not be invariant foi acionada.
O SonarLint possui um conjunto grande de regras para análise de código, que podem ser utilizadas para identificar problemas de codificação. No caso de Java, por exemplo, atualmente o SonarLint possui mais de 600 regras divididas entre as categorias vulnerabilidades, defeitos, segurança e boas práticas. ⬆️
Exemplos de regras do SonarLint para Java 🚀
A seguir, listamos algumas das regras do SonarLint para Java:
- Methods returns should not be invariant: Este método sempre retorna o mesmo valor. Isso pode ser um erro.
- Classes should not be coupled to too many other classes: Classes não devem estar acopladas a muitas outras classes.
- Public types, methods and fields (API) should be documented with Javadoc: Tipos, métodos e campos públicos (API) devem ser documentados com Javadoc.
- Recursion should not be infinite: A recursão não deve ser infinita.
- Regular expressions should be syntactically valid: As expressões regulares devem ser sintaticamente válidas.
- Database queries should not be vulnerable to injection attacks: As consultas de banco de dados não devem ser vulneráveis a ataques de injeção.
Sonar Cloud 🌐
O Sonar Cloud é uma plataforma de análise de código hospedada na nuvem que permite que você verifique a qualidade do seu código com facilidade. O Sonar Cloud é uma ferramenta gratuita para projetos de código aberto e possui integração com o GitHub, Bitbucket e Azure DevOps. A plataforma oferece suporte a várias linguagens de programação, incluindo Java, JavaScript, TypeScript, Python, C#, C/C++, PHP, entre outras.
Configuração do Sonar Cloud no GitHub 🚀
Para configurar o Sonar Cloud no GitHub, siga os passos abaixo:
- Acesse o Sonar Cloud e faça login com a sua conta
- Clique em
Create Project
e escolha o repositório que você deseja analisar - Clique em
Set Up
e siga as instruções para configurar o seu repositório
SonarQube 🌐
O SonarQube é uma plataforma de análise de código hospedada localmente que permite que você verifique a qualidade do seu código com facilidade. O SonarQube é uma ferramenta gratuita para projetos de código aberto e possui integração com o GitHub, Bitbucket e Azure DevOps. A plataforma oferece suporte a várias linguagens de programação, incluindo Java, JavaScript, TypeScript, Python, C#, C/C++, PHP, entre outras.
Questões 📚
Exercício Prático 🚀
Configure o SonarCloud em um dos seus repositórios no GitHub e faça um pull request para verificar a qualidade do seu código. 🤓
Lembre-se que o SonarCloud é uma ferramenta gratuita que suporta um número ilimitado de projetos de código aberto e linguagens de programação. 🌐
Referências 📚
- SonarLint. Acesso em 05 de março 2024.
- Sonar Cloud. Acesso em 05 de março 2024.
- SonarQube. Acesso em 05 de março 2024.
CC BY 4.0 DEED