Code Review : l'Art Perdu enfin Maîtrisé

Souverainté des données

Introduction

"Code is read more than it is written."

– Guido van Rossum 

Une revue de code est un processus dans lequel le code source d'un programme est examiné par un ou plusieurs développeurs autres que l'auteur initial, dans le but de trouver des erreurs, d'améliorer la qualité du code et d'assurer sa conformité avec les standards de l'équipe.

                         

                              Wikipédia

Type de code review

2. Pair Programming

1. Pull Request (PR) Review

3.Over-the-Shoulder Review

4. Automated Code Review (Linting & CI/CD)

5. Commit-by-Commit Review

6. Formal Code Review (ou Inspection de Code)

7. Ad Hoc Review

"The goal of a code review is to find defects, not to find blame."

 

– Robert C. Martin (Uncle Bob)

CheckList

  • Le code est-il lisible et bien structuré ?
  • Les tests sont-ils suffisants et passent-ils ?
  • Le code respecte-t-il les conventions du projet ?
  • Y a-t-il des failles de sécurité potentielles ?
  • Les performances peuvent-elles être améliorées ?
  • Le code est-il facilement maintenable ?
  • Y a-t-il des duplications inutiles ou du code mort ?

Checklist rapide pour une Code Review efficace

La Code Review : Un Processus Pour Tous !

  • Chaque développeur, quel que soit son niveau, apporte une perspective unique.​
  • Une autre paire d'yeux peut détecter des problèmes qu'un développeur expérimenté pourrait manquer.
  • Cela favorise l'apprentissage et renforce les compétences, même chez les juniors.

 

Collaborer 

Tout le monde est sur un pied d'égalité.

 

1.

Apprendre 

Chaque revue est une occasion d’apprendre.

 

2.

Contribuer 

 Même une petite contribution peut faire une grande différence.

3.

La participation à la code review c’est :

Outlis

  • Outil autonome ou intégré à un écosystème plus large
  • Dépendant de Git ou indépendant des systèmes de gestion de versions
  • Intégré à l’IDE (environnement de développement intégré) ou non
  • Projet open source ou solution propriétaire

 

  • Commentaires sur des lignes spécifiques ou globaux.

 

  • Commentaires sur des lignes spécifiques ou globaux.

 

  • Suggestions de modifications, approbations ou demandes de changements obligatoires.

 

  • Commentaires sur des lignes spécifiques ou globaux.

 

  • Suggestions de modifications, approbations ou demandes de changements obligatoires.

 

  • Interface utilisateur claire pour comparer les versions anciennes et nouvelles des fichiers.

 

  • Commentaires sur des lignes spécifiques ou globaux.

 

  • Suggestions de modifications, approbations ou demandes de changements obligatoires.

 

  • Interface utilisateur claire pour comparer les versions anciennes et nouvelles des fichiers.

 

  • Possibilité de marquer les fichiers déjà examinés comme terminés.

 

  • Propose des corrections ou des améliorations en fonction des bonnes pratiques et des standards de l'industrie.
  • Fournit des exemples concrets ou des explications pour aider les développeurs à comprendre les changements suggérés.
  • Commente directement les lignes concernées dans les Pull Requests (PR), permettant un retour immédiat pour les contributeurs.
  • Génère des rapports résumant les problèmes détectés et les améliorations suggérées.
  • Fonctionne comme une étape dans le pipeline CI/CD pour garantir que seuls les changements conformes passent à la production.
  • Fournit des suggestions en temps réel basées sur le contexte et le code existant.
  • Prend en charge de nombreux langages, y compris PHP, JavaScript, Python, et bien d'autres.
  • Apprend à partir de votre codebase privée (si configuré), pour des recommandations adaptées à votre style et vos besoins.
  • Permet aux équipes d'aligner leurs pratiques grâce à des suggestions basées sur un référentiel partagé. 
  • Détecte les bugs, les vulnérabilités de sécurité, et les écarts par rapport aux bonnes pratiques.
  • Évalue la lisibilité et la maintenabilité du code.
  • Propose des améliorations adaptées au contexte et aux standards de votre projet.

  • Fournit des explications claires pour aider les développeurs à apprendre des retours.

  • Commente automatiquement sur les lignes de code concernées dans les Pull Requests.
  • Permet aux développeurs de traiter rapidement les problèmes détectés.
  • Mesure et suit des indicateurs comme la complexité du code, la dette technique, et les tendances de qualité au fil du temps.

  • Lors de la consultation ou de l’écriture de Pull Requests (PR), Copilot propose des corrections et des optimisations pour améliorer le code.
  • Fournit des suggestions pour résoudre les erreurs, améliorer les performances, ou simplifier des implémentations complex
  • Génère des tests unitaires à partir du code pour améliorer la couverture.
  • Propose des configurations ou des modèles pour assurer une conformité avec les normes de l’équipe.
  • S’appuie sur le contexte local du projet pour suggérer des solutions adaptées à vos conventions et à votre style de codage.
  • Explique le code complexe ou génère des commentaires pour aider à documenter les fonctions ou modules.

Tips

Tips

Souverainté des données

  • Bien choisir ses outils : Privilégiez des solutions conformes aux lois locales (RGPD) et offrant des garanties sur la sécurité et la confidentialité des données.
  • Configurer avec soin : Assurez-vous que les données analysées restent localisées et protégées, en évitant leur envoi vers des serveurs non maîtrisés.
  • Favoriser la transparence : Optez pour des outils qui permettent de contrôler comment les données sont utilisées et stockées.

 

Conclusion

La revue de code est incontournable pour assurer la qualité, la sécurité et la maintenabilité de nos projets. Les outils d’IA offrent un soutien précieux en automatisant certaines tâches et en détectant des erreurs, mais ils ont leurs limites. Ils ne remplacent ni l’analyse critique ni la collaboration humaine, essentielles pour interpréter correctement les résultats et identifier les subtilités qu’une machine pourrait manquer.

En combinant la puissance de l’IA et l’expertise des développeurs, nous pouvons garantir des revues de code plus efficaces et enrichir nos projets tout en renforçant notre esprit d’équipe.

Merci!

Questions?

Made with Slides.com