Davantage d’outils de CI à utiliser avec Qodana
Qodana dispose déjà de plugins pour Azure Pipelines, GitHub Actions et TeamCity. Pour cette version 2022.2, JetBrains a préparé un orbe Qodana CircleCI qui vous permet de mettre facilement et rapidement en place des inspections de code avec vos projets CircleCI.
Il est également facile de configurer Qodana dans GitLab, Jenkins ou dans tout autre outil de CI prenant en charge l’exécution d’images Docker.
Pour inclure ou exclure certaines inspections de votre analyse, vous pouvez personnaliser votre profil d’inspection par défaut ou en créer un nouveau. Il est aussi possible de mettre en œuvre les inspections requises par vos directives de codage ou recommandées par les bonnes pratiques.
On note également plus de 50 nouvelles inspections parmi lesquelles ont peut citer celles-ci qui suivent par domaine :
Expressions régulières
Les expressions régulières sont connues pour leur complexité, leur syntaxe élaborée, et parfois leur verbosité. JetBrains a ajouté plusieurs nouvelles inspections pour vous simplifier la tâche. Auparavant seulement disponibles pour Java, elles le sont maintenant pour tous les langages.
Expressions régulières simplifiées
Une expression régulière comme [\wa-z\d] peut être simplifiée pour devenir simplement \w puisque \w inclut déjà a-z ainsi que les chiffres. Cela permet d’améliorer la lisibilité globale du code.
Références arrière suspectes
Une expression régulière comme \1(abc) ne peut pas avoir de correspondance car \1 fait référence à l’ensemble de caractères abc qui n’est pas encore défini lors de l’évaluation de \1. Cette inspection permet d’éviter les fautes de frappe simples dans les expressions régulières et d’accélérer le processus de modification.
Éléments de classe redondants \d, [:digit:] ou \D
L’expression régulière [\w+\d] peut être écrite comme [\w+], car \w inclut déjà \d. Cela permet d’améliorer la lisibilité globale du code.
Prise en charge du format Markdown
Éléments de liste numérotés de façon incorrecte
Les éléments d’une liste classés avec une numérotation de type 1. 2. 4. sont indiqués comme étant numérotés de façon incohérente. Avec Markdown, la liste est toujours affichée avec une numérotation 1. 2. 3., mais l’incohérence rend la modification du code source plus compliquée.
Inspections Java, Kotlin et Android
JetBrains a ajouté et réorganisé les inspections dans les catégories suivantes : Javadoc, DevKit, Markdown, langage Kotlin, style, modèles architecturaux, performance et prise en charge de JUnit. Voici quelques exemples de l’ensemble JUnit.
JUnit : Déclaration malformée
Une inspection signale les déclarations de membres de tests JUnit qui ne sont pas correctement formées et pourraient ne pas être reconnues par le framework de tests JUnit. De telles déclarations pourraient avoir pour conséquence la non-exécution des tests ou des méthodes de cycle de vie d’un composant.
JUnit : TestCase non constructible
Cette inspection signale les cas de test JUnit qui ne peuvent pas être construits en raison d’un constructeur non valide. De tels cas de test ne seront pas pris en compte par l’exécuteur de tests de JUnit et ne seront donc pas exécutés.
Inspections PHP
JetBrains a ajouté des inspections dans les catégories suivantes : bugs probables, documentation, style, tests et Laravel. Par exemple :
Bug probable : incohérence des plages de nombres
Dans une fonction qui est déclarée avec returns int<0,10>, cette inspection indique les déclarations de retour qui renvoient un nombre en dehors de cette plage. Elle s’applique aussi aux champs, aux constructeurs de champs et aux appels de fonctions.
Documentation : balise de type sans nom de variable
L’extrait PHPDoc @param string est redondant car il ne donne pas d’informations sur ce qui est une chaîne de caractères. Il devrait être supprimé ou remplacé par @param string $argument, précisant que argument est une chaîne de caractères.
Blade : erreur d’analyse due à des parenthèses non appariées dans des littéraux de chaînes
On note dans cette version la détection précoce des parenthèses non appariées dans les littéraux de chaînes, qui sont ensuite analysés par Blade, un moteur de modèles.
Découvrez et téléchargez Qodana 2022.2