

# OPS05-BP07 Implementar práticas para aprimorar a qualidade do código
<a name="ops_dev_integ_code_quality"></a>

 Implemente práticas para aprimorar a qualidade do código e minimizar os defeitos. Alguns exemplos incluem desenvolvimento orientado por testes, análises de código, adoção de padrões e programação de pares. Incorpore essas práticas em seu processo de entrega e integração contínua. 

 **Resultado desejado:** sua organização usa práticas recomendadas como análises de código ou programação de pares para melhorar a qualidade do código. Os desenvolvedores e os operadores adotam práticas recomendadas de qualidade do código como parte do ciclo de vida de desenvolvimento de software. 

 **Práticas comuns que devem ser evitadas:** 
+  Você confirma o código para a ramificação principal da aplicação sem uma análise de código. A alteração é implantada automaticamente na produção e causa uma interrupção. 
+  Uma nova aplicação é desenvolvida sem nenhum teste de integração, completo ou de unidade. Não há como testar a aplicação antes da implantação. 
+  Sua equipe faz alterações manuais na produção para solucionar os defeitos. As alterações não passam por testes nem análises de código e não são capturadas nem registradas por processos contínuos de entrega e integração. 

 **Benefícios de implementar esta prática recomendada:** ao adotar práticas para melhorar a qualidade do código, é possível reduzir os problemas introduzidos na produção. As práticas recomendadas de qualidade do código incluem programação de pares, análises de código e implementação de ferramentas de produtividade de IA. 

 **Nível de risco exposto se esta prática recomendada não for estabelecida:** Médio 

## Orientação para implementação
<a name="implementation-guidance"></a>

 Implemente práticas para melhorar a qualidade do código visando a minimizar os defeitos antes que eles sejam implantados. Use práticas como desenvolvimento orientado por testes, análises de código e programação de pares para aumentar a qualidade do desenvolvimento. 

 Use o poder da IA generativa com o Amazon Q Developer para melhorar a produtividade do desenvolvedor e a qualidade do código. O Amazon Q Developer inclui a geração de sugestões de código (com base em grandes modelos de linguagem), produção de testes unitários (incluindo condições de limite) e aprimoramentos de segurança de código por meio da detecção e correção de vulnerabilidades de segurança. 

 **Exemplo de cliente** 

 A AnyCompany Retail adota várias práticas para melhorar a qualidade do código. O desenvolvimento orientado por testes foi adotado com o padrão para escrever aplicações. Para alguns recursos novos, os desenvolvedores farão a programação de pares em conjunto durante um sprint. Cada pull request passa por uma análise de código feita por um desenvolvedor sênior antes de ser integrada e implantada. 

### Etapas de implementação
<a name="implementation-steps"></a>

1.  Adote práticas de qualidade de código como desenvolvimento orientado por testes, análises de código e programação de pares em seu processo de entrega e integração contínua. Use essas técnicas para melhorar a qualidade do software. 

   1.  Use o [Amazon Q Developer](https://docs.aws.amazon.com/amazonq/latest/qdeveloper-ug/what-is.html), uma ferramenta de IA generativa que pode ajudar a criar casos de teste unitários (incluindo condições de limite), gerar funções usando código e comentários, implementar algoritmos conhecidos, detectar violações de políticas de segurança e vulnerabilidades em seu código, detectar segredos, examinar infraestrutura como código (IaC) e código de documentos e aprender bibliotecas de código de terceiros mais rapidamente. 

   1.  O [Amazon CodeGuru Reviewer](https://docs.aws.amazon.com/codeguru/latest/reviewer-ug/welcome.html) pode fornecer recomendações de programação para código Java e Python usando machine learning. 

 **Nível de esforço do plano de implementação:** Médio. Há muitas maneiras de implementar essa prática recomendada, mas pode ser difícil garantir a adesão organizacional. 

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

 **Práticas recomendadas relacionadas:** 
+  [OPS05-BP02 Testar e validar alterações](https://docs.aws.amazon.com/wellarchitected/latest/operational-excellence-pillar/ops_dev_integ_test_val_chg.html) 
+  [OPS05-BP06 Compartilhar padrões de design](https://docs.aws.amazon.com/wellarchitected/latest/operational-excellence-pillar/ops_dev_integ_share_design_stds.html) 

 **Documentos relacionados:** 
+  [Adote uma abordagem de desenvolvimento orientado por testes](https://docs.aws.amazon.com/prescriptive-guidance/latest/best-practices-cdk-typescript-iac/development-best-practices.html) 
+  [Acelerar seu ciclo de vida de desenvolvimento de software com o Amazon Q](https://aws.amazon.com/blogs/devops/accelerate-your-software-development-lifecycle-with-amazon-q/) 
+  [O Amazon Q Developer, agora disponível ao público em geral, inclui visualizações de novos recursos para reimaginar a experiência do desenvolvedor](https://aws.amazon.com/blogs/aws/amazon-q-developer-now-generally-available-includes-new-capabilities-to-reimagine-developer-experience/) 
+  [A folha de dicas definitiva para usar o Amazon Q Developer em seu IDE](https://community.aws/content/2eYoqeFRqaVnk900emsknDfzhfW/the-ultimate-cheat-sheet-for-using-amazon-q-developer-in-your-ide) 
+  [workload Shift-Left: aproveitando a IA para a criação de testes](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/) 
+  [Dez maneiras de criar aplicações mais rapidamente com o Amazon CodeWhisperer](https://aws.amazon.com/blogs/devops/10-ways-to-build-applications-faster-with-amazon-codewhisperer/) 
+  [Olhar além da cobertura de código com o Amazon CodeWhisperer](https://aws.amazon.com/blogs/devops/looking-beyond-code-coverage-with-amazon-codewhisperer/) 
+  [Práticas recomendadas para engenharia rápida com o Amazon CodeWhisperer](https://aws.amazon.com/blogs/devops/best-practices-for-prompt-engineering-with-amazon-codewhisperer/) 
+  [Guia do software Agile](https://martinfowler.com/agile.html) 
+  [Meu pipeline de CI/CD é meu capitão de lançamentos](https://aws.amazon.com/builders-library/cicd-pipeline/) 
+  [Automatizar as revisões de código com o Amazon CodeGuru Reviewer](https://aws.amazon.com/blogs/devops/automate-code-reviews-with-amazon-codeguru-reviewer/) 
+  [Adote uma abordagem de desenvolvimento orientado por testes](https://docs.aws.amazon.com/prescriptive-guidance/latest/best-practices-cdk-typescript-iac/development-best-practices.html) 
+  [Como o DevFactory cria melhores aplicações com o Amazon CodeGuru](https://aws.amazon.com/blogs/machine-learning/how-devfactory-builds-better-applications-with-amazon-codeguru/) 
+  [Sobre a programação de pares](https://martinfowler.com/articles/on-pair-programming.html) 
+  [RENGA Inc. automatiza as revisões de código com o Amazon CodeGuru)](https://aws.amazon.com/blogs/machine-learning/renga-inc-automates-code-reviews-with-amazon-codeguru/) 
+  [A arte do desenvolvimento ágil: desenvolvimento orientado por testes](http://www.jamesshore.com/v2/books/aoad1/test_driven_development) 
+  [Por que as revisões de código são importantes (e economizam tempo\$1)](https://www.atlassian.com/agile/software-development/code-reviews) 

 **Vídeos relacionados:** 
+  [Implementar uma API com o Amazon Q Developer Agent para desenvolvimento de software](https://www.youtube.com/watch?v=U4XEvJUvff4) 
+  [Instalar, configurar e usar o Amazon Q Developer com os IDEs da JetBrains (instruções)](https://www.youtube.com/watch?v=-iQfIhTA4J0) 
+  [Dominar a arte do Amazon CodeWhisperer: playlist do YouTube](https://www.youtube.com/playlist?list=PLDqi6CuDzubxzL-yIqgQb9UbbceYdKhpK) 
+  [AWS re:Invent 2020: Melhoria contínua da qualidade do código com o Amazon CodeGuru](https://www.youtube.com/watch?v=iX1i35H1OVw) 
+  [AWS Summit ANZ 2021: Conduzir uma estratégia de primeiro teste com o CDK e desenvolvimento orientado a testes](https://www.youtube.com/watch?v=1R7G_wcyd3s) 

 **Serviços 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) 