Blog

Comment prévenir les erreurs Java courantes

February 2, 2022
Wander Neto
Vue de dessus de trois personnes assises avec des ordinateurs portables sur les genoux, en train de taper sur leur clavier.

Devenez un développeur Java plus productif

Avec 9 millions de développeurs dans le monde*, Java (Oracle Corporation) figure parmi les langages de programmation les plus populaires. De nombreux frameworks d'application ont été bâtis sur Java en raison de sa grande polyvalence, permettant d'exécuter des programmes sur tout appareil prenant en charge l'environnement d'exécution Java (JRE). Les communautés dirigées par les développeurs sont très actives et le support approfondi offert aux nouveaux programmeurs contribue à sa popularité sans cesse croissante.

Java existant depuis longtemps, les communautés ont passé des années à développer des normes, des outils et des modèles de codage, tout en atténuant les erreurs courantes auxquelles les développeurs sont régulièrement confrontés. Toutes ces initiatives communautaires ont un objectif commun : aider les développeurs à être aussi productifs que possible lors de la création d'applications en Java. Cependant, lorsqu'il s'agit d'appliquer les meilleures pratiques ou modèles dans le code, la responsabilité incombe au développeur. L'application de ces bonnes pratiques est très variable, ce qui rend difficile l'adoption d'une approche standardisée, les avis divergeant souvent au sein des communautés. Les développeurs se tournent alors vers des communautés en ligne qui peuvent parfois, par inadvertance, fournir des solutions peu sécurisées à leurs problèmes de codage.

Pour aider les développeurs à mettre en œuvre des solutions sécurisées aux problèmes de codage Java courants, nous avons créé Sensei, un plugin IntelliJ permettant de corriger les mauvaises pratiques de codage selon des recettes (ou règles) définies par vous ou votre organisation dans un environnement professionnel. Sensei permet aux développeurs d'identifier et de corriger les erreurs Java courantes en un seul clic.

Poursuivez votre lecture pour découvrir comment Sensei accroît la productivité des développeurs en résolvant certaines erreurs de codage Java fréquentes.

Une erreur récurrente qui frustre les développeurs

Un exemple de ces erreurs courantes est la vérification incorrecte de l'égalité des valeurs wrapper. Les valeurs des types primitifs encapsulés (boxed primitives) doivent être comparées à l'aide de la méthode equals plutôt que de l'opérateur de comparaison de référence (==) afin d'éviter des résultats inattendus.

Par exemple, l'utilisation de l'opérateur de comparaison de référence pour des valeurs Integer comprises entre -128 et 127 se comportera (généralement) de la même manière que la méthode equals. Cependant, si nous effectuons la même comparaison avec des valeurs en dehors de cette plage, les résultats différeront. Cela est dû au fait que Java maintient un pool de constantes pour la plage de valeurs Integer mentionnée. L'utilisation de la méthode equals donnera toujours les résultats attendus et constitue donc la méthode de comparaison appropriée.

Dans cet exemple, nous utilisons incorrectement l'opérateur (==) pour vérifier l'égalité.

Ce qui donne le résultat suivant :

true

false

false

true

La bonne façon de comparer est d'utiliser la méthode equals.

Et dans ce cas, le résultat serait :

true

false

true

false

Cette bonne pratique bien connue existe depuis longtemps, mais elle est souvent mal implémentée dans le code existant, prête à surgir au moment le plus inopportun. Nous avons donc créé des recettes (ou règles) qui permettent d'identifier localement ces modèles de code indésirables et d'appliquer une correction en un seul clic grâce à Sensei.

Sensei est un plugin IDE hautement personnalisable qui analyse et corrige le code indésirable au fur et à mesure de votre saisie. Il propose des centaines de transformations de code et de recettes de migration téléchargeables, ainsi qu'une fonctionnalité intégrée pour créer les vôtres. Avec Sensei, les développeurs peuvent corriger les mauvais modèles de code en temps réel, livrer un code de qualité plus rapidement et, en fin de compte, l'écrire de manière cohérente et standardisée au sein des équipes et des projets.

Comment Sensei corrige ces problèmes Java courants

Comme Sensei vous permet de créer vos propres recettes, nous en avons conçu une pour corriger l'erreur mentionnée ci-dessus.

Pour cet exemple, nous voulons identifier les endroits où l'opérateur de comparaison (==) est utilisé avec des types primitifs encapsulés.

Une recette Sensei se présente comme suit (en YAML) :

L'exemple ci-dessus permet de rechercher ce mauvais modèle récurrent au fur et à mesure de votre saisie, dans tout le fichier, dans une portée configurée ou même dans l'ensemble de la base de code. Une fois le modèle trouvé, l'étape logique suivante est de pouvoir le corriger instantanément sans avoir à effectuer de recherches en ligne. Sensei vous permet de créer des correctifs capables d'ajouter, de modifier ou de supprimer du code selon vos besoins. Vous pouvez même proposer plusieurs correctifs, laissant ainsi aux développeurs le choix de la solution la plus appropriée.

Dans notre exemple, nous souhaitons réécrire la comparaison en utilisant la méthode equals au lieu de l'opérateur (==).

Un correctif disponible est décrit comme suit :

Comment cela fonctionne :

Java code defining Comparison class with method comparing two Integer objects using == operator.

Implémenter facilement des directives de codage standard

Le Java Gotchas Cookbook contient 22 recettes pour vous aider à éviter les erreurs courantes et à maintenir un code propre et sûr. Il détecte l'utilisation incorrecte ou dangereuse de diverses fonctionnalités et API du langage Java, telles que l'égalité des objets, la gestion des exceptions, les expressions régulières et les collections. En adoptant Sensei et ce livre de recettes, vous pouvez commencer à écrire un meilleur code dès le départ et même créer vos propres recettes adaptées à votre équipe, votre projet ou votre organisation.

Ce n'est qu'un exemple parmi tant d'autres de la façon dont Sensei peut être utilisé pour standardiser vos projets. Vous pouvez toujours rester à l'affût des anti-modèles ou des transformations de code manuelles que vous rencontrez fréquemment lors des pull requests ou lors de votre propre développement. Si vous avez des directives de codage souvent oubliées par les développeurs, vous pouvez les convertir en recettes, permettant ainsi aux développeurs d'appliquer des transformations de code approuvées en toute confiance.

Installez Sensei dès maintenant et activez le Java Gotchas Cookbook pour une expérience de développement productive. https://sensei.securecodewarrior.com/cookbooks/scw:java

*2021, State of Developer Nation, https://www.developernation.net/developer-reports/de20

‍

Slogan

Gouvernez le développement assisté par IA avant la mise en production

Évaluez les risques liés à l'IA, appliquez des politiques de codage sécurisé dès le commit et accélérez la livraison sécurisée tout au long de votre cycle de développement.

Réserver une démo
Bibliothèque de ressources

Explorer plus d'articles

Accédez à du contenu expert sur le codage sécurisé, la gouvernance de l'IA et la gestion des risques logiciels.

tout parcourir
Étude de cas
Libellé du filtre
Ceci est un texte à l'intérieur d'un bloc div.

Supercharged Security Awareness: How Tournaments are Inspiring Developers at Erste Group

Lorem ipsum dolor sit amet, consectetur adipiscing elit. Suspendisse varius enim in eros elementum tristique. Duis cursus, mi quis viverra ornare, eros dolor interdum nulla, ut commodo diam libero vitae erat. Aenean faucibus nibh et justo cursus id rutrum lorem imperdiet. Nunc ut sem vitae risus tristique posuere.

En savoir plus
Étude de cas
Libellé du filtre
Ceci est un texte à l'intérieur d'un bloc div.

Security as culture: How Blue Prism cultivates world-class secure developers

Learn how Blue Prism, the global leader in intelligent automation for the enterprise, used Secure Code Warrior's agile learning platform to create a security-first culture with their developers, achieve their business goals, and ship secure code at speed

En savoir plus
Étude de cas
Libellé du filtre
Ceci est un texte à l'intérieur d'un bloc div.

Une culture de la sécurité : comment Sage a bâti son programme de champions

Découvrez comment Sage a renforcé sa sécurité grâce à une approche flexible axée sur les relations humaines, formant plus de 200 champions de la sécurité et obtenant une réduction mesurable des risques.

En savoir plus
Blog
Libellé du filtre
Ceci est un texte à l'intérieur d'un bloc div.

Mois de la sensibilisation à la cybersécurité 2026 : comprendre la sécurité de l'IA est essentiel à la défense de l'entreprise

Nous avons atteint un point où la plupart des grandes entreprises d'IA ont publiquement appelé à un ralentissement mondial du développement de l'IA afin de permettre aux garde-fous de sécurité de rattraper leur retard. Pourtant, la réalité est que de graves problèmes de sécurité se sont déjà concrétisés. Cela place d'innombrables responsables de la sécurité et équipes de direction dans une situation d'urgence, alors que les coûts financiers et les risques liés à la mise en œuvre de l'IA ne cessent de s'accumuler.

En savoir plus
Blog
Libellé du filtre
Ceci est un texte à l'intérieur d'un bloc div.

Levier 8 : Valoriser votre programme

Un programme de codage sécurisé a besoin de plus qu'un contenu de qualité pour réussir. Le levier 8 montre comment l'image de marque transforme la participation en une expérience convoitée, axée sur le statut.

En savoir plus
Blog
Libellé du filtre
Ceci est un texte à l'intérieur d'un bloc div.

Chaque employé est désormais en première ligne de la cybersécurité IA

Le paysage technologique des entreprises évolue à une vitesse que peu avaient anticipée avant qu'il ne soit trop tard. Nous avons officiellement franchi le cap du code écrit par l'humain et de l'assistance basique par copilote pour entrer dans l'ère du cycle de vie de développement agentique (ADLC). Si les agents IA autonomes promettent une efficacité sans précédent dans de multiples fonctions, ils apportent également une toute nouvelle catégorie de risques en matière de sécurité et de réglementation.

En savoir plus

Sécurisez le développement piloté par l'IA avant le déploiement

Identifiez les risques de développement, appliquez vos politiques et prévenez les vulnérabilités tout au long du cycle de vie de vos logiciels.

Réserver une démo
trust score
Aucun élément trouvé.