Open Code Review, un outil CLI open source alimenté par l'IA pour la revue de code, qui a été utilisé par des dizaines de milliers de développeurs et a permis d'identifier des millions de défauts de codeOpen Code Review, un outil CLI de révision de code alimenté par l'intelligence artificielle (IA) du groupe Alibaba, a été publié en open source après avoir été utilisé par des dizaines de milliers de développeurs et permis d'identifier des millions de défauts de code. Open Code Review associe une ingénierie déterministe à de grands modèles de langage (LLM) afin d'améliorer la précision, la couverture et la fiabilité des révisions de code. Il remédie ainsi aux lacunes courantes des agents de codage IA à usage général, telles que la couverture incomplète des ensembles de modifications, la localisation imprécise des problèmes signalés et l'instabilité de la qualité des révisions.
La revue de code (parfois appelée « révision par les pairs ») est une activité d'assurance qualité logicielle dans le cadre de laquelle une ou plusieurs personnes examinent le code source d'un programme informatique, soit après sa mise en œuvre, soit au cours du processus de développement. Les personnes chargées de cette vérification, à l'exception de l'auteur, sont appelées « réviseurs » et au moins l'un d'entre eux ne doit pas être l'auteur du code.
Si la détection directe des problèmes de qualité est souvent l'objectif principal, les revues de code sont généralement menées dans le but d'atteindre plusieurs objectifs à la fois, à savoir : améliorer la qualité et la maintenabilité du code, détecter et corriger les défauts, transférer les connaissances, favoriser la collaboration, trouver de meilleures solutions et faire appliquer les directives d'assurance qualité.
Selon Sean Goedecke, ingénieur logiciel, les compétences nécessaires pour effectuer une revue de code de qualité sont en grande partie les mêmes que celles requises pour utiliser les agents IA. S'appuyant sur son expérience avec Claude Code, Codex et GitHub Copilot, il explique que ces systèmes peuvent générer rapidement de grandes quantités de code, mais qu'ils restent limités lorsqu'il s'agit de prendre des décisions d'architecture logicielle. « Sans supervision, les LLM prendront beaucoup de mauvaises décisions de conception », explique-t-il, citant plusieurs exemples où des agents IA ont proposé des solutions inutilement complexes, nécessitant une intervention humaine pour simplifier la conception et éviter des efforts superflus.
Qu'est-ce qu'Open Code Review ?
Open Code Review est un outil CLI de révision de code alimenté par l'IA. À l'origine, il s'agissait de l'assistant officiel de révision de code par IA du groupe Alibaba. Au cours des deux dernières années, il a aidé des dizaines de milliers de développeurs et identifié des millions d'erreurs de code. Après une validation approfondie à très grande échelle, Open Code Review a été transformé en projet open source destiné à la communauté. Pour commencer à l'utiliser, il suffit de configurer un point de terminaison de modèle.
Il analyse les différences Git, envoie les fichiers modifiés à un grand modèle de langage (LLM) configurable via un agent doté de capacités d'utilisation d'outils, et génère des commentaires de révision structurés avec une précision au niveau de la ligne. L'agent est capable de lire l'intégralité du contenu des fichiers, d'effectuer des recherches dans la base de code, d'examiner d'autres fichiers modifiés pour replacer le contexte, et de produire des révisions approfondies au lieu de simples commentaires superficiels sur les différences.
Le problème des agents IA à usage général
Les développeurs ayant déjà utilisé des agents polyvalents tels que Claude Code avec Skills pour la révision de code ont sans doute rencontré les difficultés suivantes :
- Couverture incomplète : Sur les ensembles de modifications volumineux, les agents ont tendance à « prendre des raccourcis », en ne révisant que certains fichiers de manière sélective et en en omettant d'autres.
- Décalage de position : Les problèmes signalés ne correspondent souvent pas à l'emplacement réel du code, les numéros de ligne ou les références de fichiers étant décalés par rapport à la cible.
- Une qualité instable : Les Skills basés sur le langage naturel sont difficiles à déboguer, et la qualité de la révision varie considérablement en fonction de légères modifications apportées aux prompts.
La cause profonde : une architecture purement linguistique ne prévoit pas de contraintes strictes pour le processus de révision.
Conception fondamentale : ingénierie déterministe × agent hybride
La philosophie fondamentale d'Open Code Review consiste à associer l'ingénierie déterministe à un agent, chacun se chargeant de ce qu'il fait le mieux.
Ingénierie déterministe — Contraintes strictes
Pour les étapes de vérification qui ne doivent en aucun cas échouer, c'est la logique d'ingénierie — et non le modèle de langage — qui garantit la justesse :
- Sélection précise des fichiers : Détermine exactement quels fichiers doivent être révisés et lesquels doivent être filtrés, garantissant ainsi qu'aucune modification importante ne soit omise.
- Regroupement intelligent des fichiers : Regroupe les fichiers associés en une seule unité de révision (par exemple, message_en.properties et message_zh.properties sont regroupés). Chaque lot s'exécute en tant que sous-agent avec un contexte isolé — une stratégie de division pour mieux régner qui reste stable sur des ensembles de modifications très volumineux et prend naturellement en charge la révision simultanée.
- Correspondance fine des règles : Associe les règles de révision aux caractéristiques de chaque fichier, ce qui permet de maintenir l'attention du modèle parfaitement ciblée et d'éliminer le bruit informationnel à la source. Par rapport à un guidage par règles purement linguistique, la correspondance des règles basée sur un moteur de modèles est plus stable et plus prévisible.
- Modules externes de positionnement et de réflexion : Des modules indépendants de positionnement et de réflexion des commentaires améliorent systématiquement à la fois la précision de l'emplacement et la précision du contenu des retours de l'IA.
Agent — Prise de décision dynamique
Les points forts de l'agent se concentrent là où ils sont le plus utiles, à savoir la prise de décision dynamique et l'extraction dynamique de contexte :
- Prompts adaptés aux scénarios — Des modèles de prompts parfaitement optimisés pour la révision de code, qui améliorent l'efficacité tout en réduisant la consommation de jetons.
- Ensemble d'outils adapté au scénario — Issu d'une analyse approfondie des traces d'appels d'outils dans des données de production à grande échelle — incluant les distributions de fréquence des appels, les taux de répétition par outil et l'impact des nouveaux outils sur la chaîne d'appels globale — ce qui aboutit à un ensemble d'outils spécialement conçu, plus stable et plus prévisible pour la révision de code qu'une boîte à outils générique.
Si des outils comme Open Code Review visent à améliorer la qualité des revues de code, ils ne suppriment pas pour autant les difficultés organisationnelles et humaines associées à cet exercice. L'ingénieur logiciel Mensur Durakovic a illustré cette réalité dans un texte satirique présentant cinq façons de « se faire détester par ses collègues » lors d'une revue de code. Il y décrit notamment le fait de demander des modifications qui n'ont aucun effet, de retarder la revue de code, de dissimuler les changements réels dans le code, de faire des demandes de fusion massives et d'ignorer les suggestions et les commentaires.
Mensur Durakovic recommande à l'inverse l'utilisation d'outils automatisés, comme les linters, ainsi que des revues rapides et ciblées, et une communication constructive. Selon lui, la revue de code est une compétence qui s'acquiert avec l'expérience et qui contribue à améliorer la qualité logicielle, le partage des connaissances et la productivité collective.
Source : Open Code Review (GitHub)
Et vous ?
Quel est votre avis sur le sujet ?
Trouvez-vous cette initiative d'Alibaba crédible ou pertinente ?
Avez-vous déjà utilisé cet outil ou un outil similaire pour votre usage ou le développement d'applications, et si oui, qu'en pensez-vous ?Voir aussi :
Cessez d'envoyer en révision les erreurs de code généré par l'IA détectables par l'EDI, par JetBrains
7 signes révélateurs d'un code illisible : Comment identifier et résoudre le problème, par Mensur Durakovic
10 vérités difficiles à avaler que l'on ne vous dira pas sur le métier d'ingénieur logiciel, par Mensur Durakovic, ingénieur logiciel
Vous avez lu gratuitement 2 654 articles depuis plus d'un an.
Soutenez le club developpez.com en souscrivant un abonnement pour que nous puissions continuer à vous proposer des publications.
Soutenez le club developpez.com en souscrivant un abonnement pour que nous puissions continuer à vous proposer des publications.