Code review

Code review é uma prática de revisão de código que foi escrito por outros membros do time antes que eles seja implementado no projeto ou em produção. A revisão é feita por meio da verificação de todos os arquivos que o desenvolvedor modificou e submeteu para análise.

Durante o code review, revisores podem sugerir alterações e melhorias no código, garantindo que ele atenda aos padrões de codificação estabelecidos tanto pela empresa quanto pelo próprio time. O code review também pode identificar problemas de desempenho ou vulnerabilidades antes que eles se materializem.

Por que fazer code review?

Existem vários motivos pelo qual o code review é fundamental. Em primeiro lugar, ele ajuda a garantir a qualidade do código ao longo do tempo, pois ao revisar o código feito por outros desenvolvedores é possível identificar erros e corrigir problemas antes que eles causem impactos para o cliente. O code review também aumenta a consistência do código, assegurando que todos codifiquem de acordo com os critérios definidos pelo time.

Além disso, o compartilhamento de conhecimento é outro ponto importante que o code review proporciona, sendo possível que todos aprendam através da colaboração e feedback construtivo.

Quem deve fazer code review?

O ideal é que todas as pessoas envolvidas no desenvolvimento de software participem do code review. Isso inclui desenvolvedores, analistas de qualidade, especialistas e arquitetos. Pessoas de outras equipes também podem ser incluídas no code review para se certificar de que a revisão de códigos está sendo efetiva e garantir que os padrões de codificação definidos pela empresa estão sendo cumpridos.

Em alguns casos, uma pessoa específica pode ser escolhida para realizar o code review por possuir mais conhecimento e experiência no que foi desenvolvido. Cada time deve analisar o que faz mais sentido e definir critérios claros de revisão.

Como fazer code review?

Existem algumas maneiras diferentes de realizar o code review, entre elas podemos citar:

  • Revisão individual: o código que deve ser analisado é submetido por meio de merge ou pull request.
  • Revisão em pares: o código é analisado junto com outro desenvolvedor, que fornece feedback logo em seguida.
  • Revisão em grupo: o código é analisado por vários desenvolvedores, idealmente da mesma equipe de quem os escreveu.

Não existe uma abordagem correta para o code review. A escolha de qual abordagem será utilizada depende do projeto e do time. Se alguns membros do time trabalham em diferentes fusos horários, por exemplo, a revisão em grupo pode não ser a mais ideal.

Benefícios do code review

O code review possui vários benefícios para as equipes que desenvolvem software, como por exemplo:

Compartilhar conhecimento: o code review é uma excelente oportunidade para os desenvolvedores aprenderem novas técnicas, abordagens e soluções para o mesmo problema.

Melhoria da qualidade do código: a revisão de código identifica erros e problemas ainda em tempo de desenvolvimento, sendo mais barato e mais rápido de corrigi-los.

Consistência da base de código: o code review proporciona a oportunidade de revisar se todos os critérios que foram estabelecidos pelo time estão sendo cumpridos.

Identificação de problemas de segurança: é possível identificar vulnerabilidades de segurança ao analisar o código que outro desenvolvedor escreveu, sem que a vulnerabilidade seja de fato implementada.

O que analisar durante um code review?

De acordo com este artigo do Google, que recomendo a leitura, um code review deve analisar os seguintes aspectos:

Funcionalidade: O código faz o que se espera que ele faça? Ele lida com todos os cenários e situações de erro corretamente?

Complexidade: O código é fácil de entender e modificar? Ele é tão simples quanto possível?

Nomenclaturas: Os nomes de métodos, variáveis e classes são fáceis de entender e fazem sentido?

Comentários: O código possui comentários adequados? Eles explicam o que o código faz e por quê?

Estilo: O código segue as convenções de estilo de codificação definidas pela equipe? Ele é fácil de ler?

Documentação: O código é bem documentado? Ele possui documentação adequada para os usuários e desenvolvedores?

Design: O código é fácil de entender e manter? Ele segue as boas práticas de design e arquitetura do software?

Testabilidade: Os testes irão falhar caso algum comportamento ou regra de negócio seja alterada? O código é fácil de testar? Ele possui testes unitários adequados?

Segurança: O código é seguro? Ele é suscetível a ataques de segurança conhecidos?

Desempenho: O código é eficiente? Ele evita operações desnecessárias ou repetitivas?

É claro que nem todas as revisões de código precisam abordar todos esses aspectos. O esforço do time deve ser aplicado em áreas e funcionalidades que são mais importantes para o projeto em questão. Além disso, os critérios de aceite que o time definiu podem ser diferentes dos citados neste artigo.

O importante é ter em mente que o objetivo da revisão de código é a melhoria contínua, e não o de criticar o trabalho do desenvolvedor ou focar em erros cometidos por ele. O code review deve fornecer incentivo e sempre valorizar quando boas práticas de engenharia de software são utilizadas. Às vezes é ainda mais valioso, em termos de orientação, dizer a um desenvolvedor o que ele fez de certo ao invés de dizer o que ele fez de errado.

A cultura da empresa desempenha um papel fundamental na forma como os desenvolvedores de software recebem feedback em um code review e como lidam com isso sem levar para o lado pessoal. Criar um ambiente em que os desenvolvedores se sintam confortáveis em receber feedback construtivo para que eles vejam isso como uma oportunidade para melhorar seus códigos e habilidades deve ser prioridade. Além disso, a colaboração pode ajudar a incentivar os desenvolvedores a trabalharem juntos para resolver problemas em vez de se concentrarem em encontrar culpados.

Conclusão

O code review é uma prática valiosa para equipes de desenvolvimento de software. Ele ajuda a melhorar a qualidade e consistência do código, além de compartilhar conhecimento e melhorar a comunicação dentro da equipe.

No entanto, para que o code review seja eficaz, é importante definir critérios claros de revisão, estabelecer um processo consistente e periódico de revisões, fornecer feedback construtivo e fomentar uma cultura colaborativa.

Com o cuidado e atenção adequados, o code review pode ser uma ferramenta valiosa para melhorar a qualidade do código e a colaboração da equipe.