

# OPS05-BP07 Mise en œuvre de pratiques visant à améliorer la qualité du code
<a name="ops_dev_integ_code_quality"></a>

 Mettez en place des pratiques pour améliorer la qualité du code et limiter les failles. Parmi les exemples, citons le développement piloté par les tests, les révisions de code, l’adoption de normes et la programmation en binôme. Incorporez ces pratiques dans votre processus d’intégration et de livraison continues. 

 **Résultat escompté :** votre organisation utilise des bonnes pratiques comme les révisions de code ou la programmation en binôme pour améliorer la qualité du code. Les développeurs et les opérateurs adoptent les bonnes pratiques en matière de qualité du code dans le cadre du cycle de vie du développement logiciel. 

 **Anti-modèles courants :** 
+  Vous livrez du code à la branche principale de votre application sans effectuer de révision du code. La modification est automatiquement déployée en production et provoque une panne. 
+  Une nouvelle application est développée sans aucun test d’unité, de bout en bout ou d’intégration. Il n’y a aucun moyen de tester l’application avant son déploiement. 
+  Vos équipes procèdent à des modifications manuelles en production pour corriger les défauts. Les modifications ne sont pas soumises à des tests ou à des révisions de code et ne sont pas saisies ou enregistrées dans le cadre des processus d’intégration et de livraison continues. 

 **Avantages liés au respect de cette bonne pratique :** en adoptant des pratiques visant à améliorer la qualité du code, vous contribuez à minimiser les problèmes introduits dans la production. Les bonnes pratiques en matière de qualité du code incluent la programmation en binôme, les révisions de code et la mise en œuvre d’outils de productivité basés sur l’IA. 

 **Niveau d’exposition au risque si cette bonne pratique n’est pas respectée :** moyen 

## Directives d’implémentation
<a name="implementation-guidance"></a>

 Mettez en œuvre des pratiques visant à améliorer la qualité du code afin de minimiser les défauts avant leur déploiement. Utilisez des pratiques telles que le développement piloté par les tests, les révisions de code et la programmation en binôme pour améliorer la qualité de votre développement. 

 Utilisez la puissance de l’IA générative avec Amazon Q Developer pour améliorer la productivité des développeurs et la qualité du code. Amazon Q Developer comprend la génération de suggestions de code (basées sur de grands modèles de langage), la production de tests unitaires (y compris les conditions limites) et l’amélioration de la sécurité du code par la détection et la correction des vulnérabilités de sécurité. 

 **Exemple client** 

 AnyCompany Retail adopte plusieurs pratiques pour améliorer la qualité du code. La société a adopté le développement piloté par les tests comme norme d’écriture des applications. Pour certaines nouvelles fonctionnalités, elle demande aux développeurs de programmer en binôme pendant un sprint. Chaque demande d’extraction est soumise à une révision du code par un développeur principal avant d’être intégrée et déployée. 

### Étapes d’implémentation
<a name="implementation-steps"></a>

1.  Adoptez des pratiques de qualité du code telles que le développement piloté par les tests, les révisions de code et la programmation en binôme dans votre processus d’intégration et de livraison continues. Utilisez ces techniques pour améliorer la qualité des logiciels. 

   1.  Utilisez [Amazon Q Developer](https://docs.aws.amazon.com/amazonq/latest/qdeveloper-ug/what-is.html), un outil d’IA générative qui peut vous aider à créer des cas de tests unitaires (y compris des conditions limites), à générer des fonctions à l’aide de code et de commentaires, à implémenter des algorithmes connus, à détecter les violations des politiques de sécurité et les vulnérabilités dans votre code, à détecter les secrets, à scanner l’infrastructure en tant que code (IaC), à documenter le code et à apprendre plus rapidement des bibliothèques de code tierces. 

   1.  [Amazon CodeGuru Reviewer](https://docs.aws.amazon.com/codeguru/latest/reviewer-ug/welcome.html) peut fournir des recommandations de programmation pour le code Java et Python en utilisant le machine learning. 

 **Niveau d’effort du plan d’implémentation :** moyen. Il existe de nombreuses façons de mettre en œuvre cette bonne pratique, mais il peut être difficile de la faire adopter par l’organisation. 

## Ressources
<a name="resources"></a>

 **Bonnes pratiques associées :** 
+  [OPS05-BP02 Test et validation des modifications](https://docs.aws.amazon.com/wellarchitected/latest/operational-excellence-pillar/ops_dev_integ_test_val_chg.html) 
+  [OPS05-BP06 Partage des normes de conception](https://docs.aws.amazon.com/wellarchitected/latest/operational-excellence-pillar/ops_dev_integ_share_design_stds.html) 

 **Documents connexes :** 
+  [Adopter une approche de développement piloté par les tests](https://docs.aws.amazon.com/prescriptive-guidance/latest/best-practices-cdk-typescript-iac/development-best-practices.html) 
+  [Accélération du cycle de développement de vos logiciels avec Amazon Q](https://aws.amazon.com/blogs/devops/accelerate-your-software-development-lifecycle-with-amazon-q/) 
+  [Amazon Q Developer, désormais disponible pour le grand public, inclut des aperçus de nouvelles fonctionnalités destinées à réinventer l’expérience des développeurs](https://aws.amazon.com/blogs/aws/amazon-q-developer-now-generally-available-includes-new-capabilities-to-reimagine-developer-experience/) 
+  [L’aide-mémoire ultime pour utiliser Amazon Q Developer dans votre environnement de développement intégré](https://community.aws/content/2eYoqeFRqaVnk900emsknDfzhfW/the-ultimate-cheat-sheet-for-using-amazon-q-developer-in-your-ide) 
+  [Shift-Left Workload, tirant parti de l’IA pour la création de tests](https://community.aws/content/2gBZtC94gPzaCQRnt4P0rIYWuBx/shift-left-workload-leveraging-ai-for-test-creation) 
+  [Centre de développement Amazon Q](https://aws.amazon.com/developer/generative-ai/amazon-q/) 
+  [10 façons de créer des applications plus rapidement avec Amazon CodeWhisperer](https://aws.amazon.com/blogs/devops/10-ways-to-build-applications-faster-with-amazon-codewhisperer/) 
+  [Au-delà de la couverture du code avec Amazon CodeWhisperer](https://aws.amazon.com/blogs/devops/looking-beyond-code-coverage-with-amazon-codewhisperer/) 
+  [Bonnes pratiques pour une ingénierie de requête avec Amazon CodeWhisperer](https://aws.amazon.com/blogs/devops/best-practices-for-prompt-engineering-with-amazon-codewhisperer/) 
+  [Guide du logiciel Agile](https://martinfowler.com/agile.html) 
+  [Mon pipeline CI/CD est mon capitaine de versions](https://aws.amazon.com/builders-library/cicd-pipeline/) 
+  [Automatisez les révisions de code avec Amazon CodeGuru Reviewer](https://aws.amazon.com/blogs/devops/automate-code-reviews-with-amazon-codeguru-reviewer/) 
+  [Adopter une approche de développement piloté par les tests](https://docs.aws.amazon.com/prescriptive-guidance/latest/best-practices-cdk-typescript-iac/development-best-practices.html) 
+  [Comment DevFactory crée de meilleures applications avec Amazon CodeGuru](https://aws.amazon.com/blogs/machine-learning/how-devfactory-builds-better-applications-with-amazon-codeguru/) 
+  [Programmation en binôme](https://martinfowler.com/articles/on-pair-programming.html) 
+  [RENGA Inc. automatise les révisions de code avec Amazon CodeGuru](https://aws.amazon.com/blogs/machine-learning/renga-inc-automates-code-reviews-with-amazon-codeguru/) 
+  [L’art du développement agile : le développement piloté par les tests](http://www.jamesshore.com/v2/books/aoad1/test_driven_development) 
+  [Pourquoi les révisions de code sont importantes (et font gagner du temps \$1)](https://www.atlassian.com/agile/software-development/code-reviews) 

 **Vidéos connexes :** 
+  [Implement an API with Amazon Q Developer Agent for Software Development](https://www.youtube.com/watch?v=U4XEvJUvff4) 
+  [Installing, Configuring, & Using Amazon Q Developer with JetBrains IDEs (How-to)](https://www.youtube.com/watch?v=-iQfIhTA4J0) 
+  [Mastering the art of Amazon CodeWhisperer - YouTube playlist](https://www.youtube.com/playlist?list=PLDqi6CuDzubxzL-yIqgQb9UbbceYdKhpK) 
+  [AWS re:Invent 2020: Continuous improvement of code quality with Amazon CodeGuru](https://www.youtube.com/watch?v=iX1i35H1OVw) 
+  [AWS Summit ANZ 2021 - Driving a test-first strategy with CDK and test driven development](https://www.youtube.com/watch?v=1R7G_wcyd3s) 

 **Services connexes :** 
+  [Amazon Q Developer](https://aws.amazon.com/q/developer/) 
+  [Amazon CodeGuru Reviewer](https://docs.aws.amazon.com/codeguru/latest/reviewer-ug/welcome.html) 
+  [Amazon CodeGuru Profiler](https://docs.aws.amazon.com/codeguru/latest/profiler-ug/what-is-codeguru-profiler.html) 