JavaScript Python Releases

O Qodana 2022.2 já está disponível – CircleCI Orb e mais de 50 novas inspeções

Read this post in other languages:
English, Français, 한국어, Español, 简体中文

O Qodana 2022.2 já está disponível! Adicionamos o CircleCI Orb ao toolset de integração do Qodana e trouxemos inspeções de código inéditas e aprimoradas para Java, Kotlin, Android, PHP, JavaScript e Python.

INTRODUÇÃO AO QODANA

Mais CIs com os quais executar o Qodana

O Qodana já tem plug-ins para Pipelines do Azure, Ações do GitHub e TeamCity. Começando na versão 2022.2, preparamos um CircleCI Qodana Orb que permite configurar inspeções de código de maneira rápida e fácil com seus projetos CircleCI.  

Além disso, é fácil configurar o Qodana no GitLab, Jenkins ou qualquer outro CI que ofereça suporte à execução de imagens do Docker.

Para incluir ou excluir determinadas inspeções da sua análise, você pode personalizar seu perfil de inspeção padrão ou criar um novo. Você também pode querer impor inspeções importantes para suas diretrizes de programação ou práticas recomendadas. Confira nossa Documentação do Qodana para obter mais informações. 

Novas inspeções

Expressões regulares

Expressões regulares são amplamente conhecidas por sua complexidade, sintaxe intrincada e, às vezes, verbosidade. Para facilitar a vida, adicionamos novas inspeções nessa área. Anteriormente, essas inspeções estavam disponíveis apenas para Java, mas agora as disponibilizamos para todas as linguagens. 

Expressões regulares simplificadas

Uma expressão regular como [\wa-z\d] pode ser simplificada para apenas \w, pois \w já inclui a-z e os dígitos.  Isto ajuda a melhorar a legibilidade geral do código.

Referências retrospectivas suspeitas 

Uma expressão regular como \1(abc) não pode corresponder a nada. Isto porque \1 faz referência a abc, que ainda não está definido quando o \1 é avaliado. Essa inspeção evita erros de digitação simples em expressões regulares e acelera a experiência de edição. 

Elementos de classe \d, [:digit:] ou \D redundantes

A expressão regular [\w+\d] pode ser escrita como [\w+], pois \w já inclui \d. Isto ajuda a melhorar a legibilidade geral do código.

Suporte para Markdown

Itens de lista numerados incorretamente

Itens de listas ordenadas como 1.2.4. são marcados como tendo sido numerados de forma inconsistente. No Markdown renderizado, a lista ainda é exibida como 1.2.3., mas a inconsistência dificulta a edição do código-fonte.

Inspeções Java, Kotlin e Android

Adicionamos e reorganizamos inspeções nas categorias: Javadoc, DevKit, Markdown, linguagem Kotlin, estilo, padrões de arquitetura, desempenho e suporte para JUnit. Aqui estão alguns exemplos do conjunto JUnit.

JUnit: declaração malformada

Relata as declarações de membros de teste JUnit que estão malformadas e provavelmente não serão reconhecidas pelo framework de testes JUnit. Declarações como essas podem resultar em testes ou métodos de ciclo de vida não executados.

JUnit: TestCase não construível

Relata casos de teste JUnit que não podem ser construídos porque possuem um construtor inválido. Casos de teste como esses não serão identificados pelo executor de testes JUnit e, portanto, não serão executados.

Esses exemplos você pode ver ao vivo na nossa instância pública do TeamCity. Use o login de convidado para entrar. Outras inspeções estão descritas na nossa documentação.

Inspeções PHP

Adicionamos inspeções nas categorias Bugs prováveis, Documentação, Estilo, Testes e Laravel, por exemplo:

Bug provável: incompatibilidade de intervalos de números

Em uma função declarada com returns int<0,10>, marca instruções return que retornam um número fora desse intervalo. Opera de maneira semelhante para campos, construtores de campo e chamadas de função. 

Documentação: Tag de tipo sem nome de variável

O snippet PHPDoc @param string é redundante, pois não diz o que é uma string. Ele deve ser removido ou substituído por @param string $argument, indicando que argument é uma string. 

Blade: Erro de análise devido a parênteses não pareados em literais de string

Detecção precoce de parênteses não pareados em literais de string que são posteriormente analisados pelo Blade, um processador de modelos.

Se você tiver alguma sugestão para futuros temas de blog ou se quiser saber mais sobre como o Qodana pode ajudar você e a sua empresa, poste um comentário aqui, marque-nos no Twitter ou entre em contato conosco em qodana-support@jetbrains.com.

A equipe do Qodana

Artigo original em inglês por:

Luiz Di Bella

Viktor Tiulpin