

# 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 operadores adotam práticas recomendadas de qualidade do código como parte do ciclo de vida de desenvolvimento de software. 

 **Antipadrões comuns:** 
+ 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 ou 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 estabelecer esta prática recomendada:** Ao adotar práticas para melhorar a qualidade do código, é possível reduzir os problemas surgidos na produção. A qualidade do código aumenta com o uso de práticas recomendadas como programação de pares e análises de código. 

 **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. 

 **Exemplo de clientes** 

 A AnyCompany Retail adota várias práticas para melhorar a qualidade do código. O desenvolvimento orientado por testes foi adotado como padrão para escrever aplicações. Para alguns recursos novos, os desenvolvedores fazem a programação em pares 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 da 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.  [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. 

   1.  Você pode criar ambientes de desenvolvimento compartilhados com o [AWS Cloud9,](https://docs.aws.amazon.com/cloud9/latest/user-guide/welcome.html) onde você pode colaborar no desenvolvimento de código. 

 **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-BP06 Compartilhar os padrões de design](ops_dev_integ_share_design_stds.md) – É possível compartilhar padrões de design como parte de sua prática de qualidade de código. 

 **Documentos relacionados:** 
+ [ Agile Software Guide (Guia do software Agile) ](https://martinfowler.com/agile.html)
+ [My CI/CD pipeline is my release captain (Meu pipeline de CI/CD é meu capitão de lançamentos)](https://aws.amazon.com/builders-library/cicd-pipeline/)
+ [ Análises de código automatizadas com o Amazon CodeGuru Reviewer ](https://aws.amazon.com/blogs/devops/automate-code-reviews-with-amazon-codeguru-reviewer/)
+ [ Adopt a test-driven development approach (Adotar uma abordagem de desenvolvimento orientada a testes) ](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 (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/)
+ [ On Pair Programming (Sobre a programação de pares) ](https://martinfowler.com/articles/on-pair-programming.html)
+ [ RENGA Inc. automates code reviews with Amazon CodeGuru (RENGA Inc. automatiza análises de código com o 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 (A arte do desenvolvimento ágil: desenvolvimento orientado por testes) ](http://www.jamesshore.com/v2/books/aoad1/test_driven_development)
+ [ Why code reviews matter (and actually save time\$1) (Por que as análises de código são importantes (e economizam tempo\$1) ](https://www.atlassian.com/agile/software-development/code-reviews)

 **Vídeos relacionados:** 
+ [AWS re:Invent 2020: Continuous improvement of code quality with Amazon CodeGuru (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 - Driving a test-first strategy with CDK and test driven development (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 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) 