

# OPS05-BP07 Adoptar prácticas para mejorar la calidad del código
<a name="ops_dev_integ_code_quality"></a>

 Adopte prácticas para mejorar la calidad del código y minimizar los defectos. Algunos ejemplos son el desarrollo basado en pruebas, las revisiones de código, la adopción de estándares y la programación en pareja. Incorpore estas prácticas a su proceso de integración y entrega continuas. 

 **Resultado deseado:** su organización utiliza las prácticas recomendadas, como las revisiones de código o la programación en pareja, para mejorar la calidad del código. Los desarrolladores y operadores adoptan las prácticas recomendadas de calidad del código como parte del ciclo de vida de desarrollo del software. 

 **Antipatrones usuales:** 
+  Usted envía código a la rama principal de su aplicación sin una revisión del código. El cambio se despliega automáticamente en producción y provoca una interrupción del servicio. 
+  Se desarrolla una nueva aplicación sin pruebas de unidad, integrales o de integración. No hay forma de probar la aplicación antes del despliegue. 
+  Los equipos realizan cambios manuales en producción para corregir defectos. Los cambios no se someten a pruebas ni revisiones de código y no se capturan ni registran en los procesos de integración y entrega continuas. 

 **Beneficios de establecer esta práctica recomendada: ** al adoptar prácticas para mejorar la calidad del código, puede ayudar a minimizar los problemas que se presentan en la producción. La calidad del código facilita el uso de las prácticas recomendadas, como la programación en pareja, las revisiones de código y la implementación de herramientas de productividad de IA. 

 **Nivel de riesgo expuesto si no se establece esta práctica recomendada:** medio 

## Guía para la implementación
<a name="implementation-guidance"></a>

 Adopte prácticas para mejorar la calidad del código y minimizar los defectos antes de la implementación. Utilice prácticas como desarrollo basado en pruebas, revisiones de código y programación en pareja para mejorar la calidad de su proceso. 

 Utilice el poder de la IA generativa con Amazon Q Developer para mejorar la productividad de los desarrolladores y la calidad del código. Amazon Q Developer incluye la generación de sugerencias de código (basadas en modelos de lenguaje de gran tamaño), la producción de pruebas unitarias (incluidas condiciones límite) y mejoras de seguridad del código mediante la detección y la corrección de las vulnerabilidades de seguridad. 

 **Ejemplo de cliente** 

 AnyCompany Retail adopta diversas prácticas para mejorar la calidad del código. Ha adoptado el desarrollo basado en pruebas como norma para escribir aplicaciones. Para algunas funciones nuevas, hace que los desarrolladores programen en pareja durante un sprint. Cada solicitud de extracción se somete a una revisión de código por parte de un desarrollador sénior antes de que se integre y despliegue. 

### Pasos para la implementación
<a name="implementation-steps"></a>

1.  Adopte prácticas que fomenten la calidad del código, como el desarrollo basado en pruebas, las revisiones del código y la programación en parejas, en su proceso de integración y entrega continuas. Utilice estas técnicas para mejorar la calidad del software. 

   1.  Use [ Amazon Q Developer](https://docs.aws.amazon.com/amazonq/latest/qdeveloper-ug/what-is.html), una herramienta de IA generativa que puede ayudar a crear casos de pruebas unitarias (incluidas condiciones límite), generar funciones utilizando código y comentarios, implementar algoritmos conocidos, detectar vulneraciones de las políticas de seguridad y vulnerabilidades en su código, detectar secretos, analizar la infraestructura como código (IaC), documentar código y aprender bibliotecas de código de terceros con mayor rapidez. 

   1.  [Amazon CodeGuru Reviewer](https://docs.aws.amazon.com/codeguru/latest/reviewer-ug/welcome.html) puede proporcionar recomendaciones de programación para código Java y Python mediante el uso de machine learning. 

   1.  Puede crear entornos de desarrollo compartidos con [AWS Cloud9](https://docs.aws.amazon.com/cloud9/latest/user-guide/welcome.html) donde colabora en el desarrollo del código. 

 **Nivel de esfuerzo para el plan de implementación:** medio. Existen numerosas formas de implementar esta práctica recomendada, pero conseguir que la organización la adopte puede suponer un reto. 

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

 **Prácticas recomendadas relacionadas:** 
+  [OPS05-BP02 Probar y validar los cambios](https://docs.aws.amazon.com/wellarchitected/latest/operational-excellence-pillar/ops_dev_integ_test_val_chg.html) 
+  [OPS05-BP06 Compartir estándares de diseño](https://docs.aws.amazon.com/wellarchitected/latest/operational-excellence-pillar/ops_dev_integ_share_design_stds.html) 

 **Documentos relacionados:** 
+  [Adopt a test-driven development approach (Adoptar un enfoque de desarrollo basado en pruebas)](https://docs.aws.amazon.com/prescriptive-guidance/latest/best-practices-cdk-typescript-iac/development-best-practices.html) 
+  [«Accelerate your Software Development Lifecycle with Amazon Q»](https://aws.amazon.com/blogs/devops/accelerate-your-software-development-lifecycle-with-amazon-q/) 
+  [«Amazon Q Developer, now generally available, includes previews of new capabilities to reimagine developer experience»](https://aws.amazon.com/blogs/aws/amazon-q-developer-now-generally-available-includes-new-capabilities-to-reimagine-developer-experience/) 
+  [«The Ultimate Cheat Sheet for Using Amazon Q Developer in Your IDE»](https://community.aws/content/2eYoqeFRqaVnk900emsknDfzhfW/the-ultimate-cheat-sheet-for-using-amazon-q-developer-in-your-ide) 
+  [«Shift-Left Workload, leveraging AI for Test Creation»](https://community.aws/content/2gBZtC94gPzaCQRnt4P0rIYWuBx/shift-left-workload-leveraging-ai-for-test-creation) 
+  [Amazon Q Developer Center](https://aws.amazon.com/developer/generative-ai/amazon-q/) 
+  [«10 ways to build applications faster with Amazon CodeWhisperer»](https://aws.amazon.com/blogs/devops/10-ways-to-build-applications-faster-with-amazon-codewhisperer/) 
+  [«Looking beyond code coverage with Amazon CodeWhisperer»](https://aws.amazon.com/blogs/devops/looking-beyond-code-coverage-with-amazon-codewhisperer/) 
+  [«Best Practices for Prompt Engineering with Amazon CodeWhisperer»](https://aws.amazon.com/blogs/devops/best-practices-for-prompt-engineering-with-amazon-codewhisperer/) 
+  [Agile Software Guide (Guía del software Agile)](https://martinfowler.com/agile.html) 
+  [ My CI/CD pipeline is my release captain (Mi canalización CI/CD es mi capitán de lanzamiento)](https://aws.amazon.com/builders-library/cicd-pipeline/) 
+  [«Automate code reviews with Amazon CodeGuru Reviewer»](https://aws.amazon.com/blogs/devops/automate-code-reviews-with-amazon-codeguru-reviewer/) 
+  [Adopt a test-driven development approach (Adoptar un enfoque de desarrollo basado en pruebas)](https://docs.aws.amazon.com/prescriptive-guidance/latest/best-practices-cdk-typescript-iac/development-best-practices.html) 
+  [«How DevFactory builds better applications with Amazon CodeGuru»](https://aws.amazon.com/blogs/machine-learning/how-devfactory-builds-better-applications-with-amazon-codeguru/) 
+  [On Pair Programming (Programación en pareja)](https://martinfowler.com/articles/on-pair-programming.html) 
+  [«RENGA Inc. automates code reviews with Amazon CodeGuru»](https://aws.amazon.com/blogs/machine-learning/renga-inc-automates-code-reviews-with-amazon-codeguru/) 
+  [The Art of Agile Development: Test-Driven Development (El arte del desarrollo ágil: desarrollo basado en pruebas)](http://www.jamesshore.com/v2/books/aoad1/test_driven_development) 
+  [Why code reviews matter (and actually save time\!) (Por qué son importantes las revisiones del código [¡y ahorran tiempo\!])](https://www.atlassian.com/agile/software-development/code-reviews) 

 **Vídeos relacionados: ** 
+  [«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»: lista de reproducción de YouTube](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) 

 **Servicios relacionados:** 
+  [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) 
+  [AWS Cloud9](https://docs.aws.amazon.com/cloud9/latest/user-guide/welcome.html) 