DEV Community

Christian Toledo
Christian Toledo

Posted on • Updated on

Boas práticas de Code Review para bons programadores

O Code Review deve ser um processo natural dentro do fluxo de desenvolvimento. Esse processo ajuda a identificar bugs e má implementações antes da fase de teste e validação.

O resultado é uma base de código mais estável e de maior qualidade. Outro benefício de realizar code review de um parceiro é reforçar as relações pessoais e o senso de trabalho em equipe. O processo de revisão permite também uma distribuição do conhecimento técnico e compreensão dos processos entre o time.

Boas práticas na hora de revisar o código

O primeiro aspecto de um bom code review é se atentar ao lado humano antes do código. Abaixo segue uma lista de condutas para se atentar quando revisar o código de outra pessoa:

Revisor

  • Como revisor, você deve pensar como outra pessoa.

  • Ao apontar sugestões, tente formular frases a partir de um ponto de vista mais pessoal

    ex: "Eu sugiro que...", "Eu acho...", "Para mim, esse ponto..."

  • Sempre, SEMPRE a revisão é sobre o código, nunca sobre o autor.

    ex: ❌ "Você está fazendo uma implementação errada ..."
    ✅ " O código está fazendo uma implementação errada..."

  • Faça perguntas de pontos que não ficaram claros, ou ofereça sugestões através de perguntas. Por meio das respostas, podemos entender melhor a decisão para certo ponto do código.

  • Faça comentários através Observações, Impactos e Requisições

    ex: Observação "Essa implementação é repetida em outro contexto, poderia ser reutilizada"
    Impacto "Essa implementação torna a compreensão do real objetivo do método não tão claro para mim"
    Request " Para esse cenário eu sugiro usar X padrão de projeto, por N motivos"

  • Entenda que existem diferentes soluções para o mesmo problema.

  • Distinguir entre boas práticas e gosto pessoal

  • Faça elogios ao código quando necessário, mesmo que precise de algum ajuste.

  • Se pergunte sempre se sua afirmação é verdadeira, se é necessária e se é gentil.

  • Valorize o esforço que o autor teve em escrever o código

Autor

  • Como autor, você deve ter humildade para ouvir sobre o seu trabalho
  • É normal acontecer falhas, ou ter implementações melhores, ou esquecermos de algum detalhe
  • Lembre-se que um código escrito em 10 horas é revisado em 10 minutos
  • Não leve as críticas para o lado pessoal, você não é o seu código
  • Você e o revisor estão no mesmo time
  • Somos sempre enviesados pelo nosso próprio código. Esteja aberto a opiniões externas

Código

Ao revisar um código é bom ter um checklist do que precisa ser avaliado. Conferir todos aspectos do código de uma vez pode ser exaustivo e propenso a falhas. É bom atentar-se a um tópico e validar todo conteúdo sob aquela ótica.

  • [ ] Eu entendo o que o código faz?

  • [ ] O código preenche todos os requisitos de implementação?

  • [ ] O código faz o que eu espero que ele faça?

  • Usando templates para Pull Requests, fica fácil analisar o que aquela PR deve resolver

  • A descrição da PR/commit está de acordo com o que o código executa?

  • Atenção a sintaxe, não tem nenhum code smells ?

  • Atenção se foi feito um tratamento de exceções

  • Atenção ao uso correto dos design patterns e a over-engineering

Detalhes e referências:

Top comments (7)

Collapse
 
franciscocaldeira profile image
Francisco

5*

Collapse
 
tromineo profile image
Monteiro Steil

Excelente conteúdo!

Collapse
 
theanrogerio profile image
Thean Rogerio

Ótimo artigo!

Collapse
 
theanrogerio profile image
Thean Rogerio

Encontrei alguns typos:
"Atenção se foi feito um tratamento de execeções" >> "Atenção se foi feito um tratamento de exceções"

"Ateção ao uso correto dos design patters e a over-engineer" >> "Atenção ao uso correto dos design patterns e a over-engineering"

Collapse
 
jadilson12 profile image
Jadilson Guedes

Parabéns, ótimo conteúdo.

Collapse
 
alexandremoreira profile image
4lexandre-moreira

Parabéns, excelente!

Collapse
 
iamdevmarcos profile image
Marcos Mendes

Parabens, otimo conteudo.