Revisão de Código - o que é e o que fazer

Em projetos ágeis temos diversos mecanismos que nos auxiliam para que um código chegue rapidamente em produção, como ferramentas de integração contínua e esteiras automatizadas de entrega.
Essas facilidades porém podem acabar abrindo brecha para que um código com algum defeito chegue em produção também de forma mais rápida.

Além de outras ferramentas como testes unitários e analisadores de código, para ajudar a mitigar que códigos defeituosos subam para produção, a Revisão de Código (ou Code Review) pode ser adotada como uma “ferramenta” que além de ajudar a termos um código com mais qualidade, também traz outros benefícios para um time de desenvolvimento.

O que é a revisão de código?

A revisão de código nada mais é um processo em que outros membros do time de desenvolvimento olham e revisam um código antes de que ele siga no ciclo de vida do desenvolvimento.
Da mesma forma que em editoras de livros e jornais existe o papel do revisor de texto, que busca por erros tanto nos textos quanto nas publicações de forma geral, todo o time de desenvolvimento deve assumir essa função para revisar todo e qualquer código.

O objetivo não é achar defeitos simplesmente para criticar ou rebaixar o trabalho da pessoa que fez o desenvolvimento, mas sim para que o código tenha uma segunda verificação buscando erros que tenham passado despercebidos, ou melhorias que podem sem implementadas gerando discussões interessantes e valiosas entre os desenvolvedores.

Isso é geralmente feito utilizando-se de Pull Requests (ou PRs), que são solicitações para juntar um código alterado com o código já existente no repositório.
Praticamente todas as ferramentas de versionamento de código modernas que são baseadas no Git (como o GitHub, GitLab, Bitbucket e AzureDevOps) permitem a criação de PRs e, por consequência, facilitam a revisão de código.

Usualmente, um PR só pode ser finalizado após ter um número pré-determinado de revisores aprovando aquele código, e esse número costumeiramente é determinado pelo próprio time de desenvolvimento em consenso.

O que não fazer na revisão de código

Antes de falar alguns pontos que podemos considerar durante a revisão de código, vamos começar falando do que idealmente não devemos fazer ao olhar um PR. Esses são pontos importantes pois podem acabar tomando a atenção do revisor, tirando o foco do que realmente importa.
As pessoas que fazem parte do time de desenvolvimento não vão ter o dia todo disponível para fazer revisão de código, então saber o que evitar ajuda a agilizar o processo.

O que não devemos fazer:

  • Adicionar um comentário qualquer só com o objetivo de mostrar que você revisou o código;
  • Olhar partes já existentes do código e que não foram alteradas naquele PR (se perceber algum problema em outra parte do código, avise o time e trate de forma separada ao código que está sendo revisado);
  • Verificar se o código está compilando. A ferramenta de integração contínua deve fazer isso;
  • Verificar se os testes estão rodando e se estão passando. A ferramenta de integração contínua também deve fazer isso;
  • Verificar se a formatação do código está correto, ou se o estilo de codificação está sendo seguido. Existem ferramentas que devem ser utilizadas para garantir isso de forma automatizada, sem a necessidade de revisão humana.

O que fazer na revisão de código

Sabendo os pontos que devemos evitar, quais pontos devemos prestar atenção e de fato considerar ao fazer uma revisão de código?

  • Verifique se o código está fazendo exatamente o que ele se propõe a fazer;
  • Verifique que o código não está fazendo algo que não deveria fazer;
  • Confira se nenhum bug ou problema está sendo introduzido e que possa causar problemas futuros;
  • Verifique se efeitos colaterais em outras partes do sistema estão sendo considerados;
  • Garanta que você estará de acordo em dar manutenção naquele código no futuro;
  • Confira se nenhum caso específico ficou de fora dos testes automatizados;
  • Observe se as boas práticas de desenvolvimento estão sendo seguidas (como SOLID e/ou Clean Code);
  • Garanta que qualquer pendência ou débito técnico gerado por aquele desenvolvimento tenha sido documentado adequadamente para que não se perca.

Utilizando esse princípios já podemos começar a ter um processo de revisão de código mais eficiente e eficaz.
E é claro que essas não são listas completas e definitivas sobre revisão de código, mas podem servir como um norte para quem não tem muita experiência com esse processo, e servir de ponto de partida para que sejam refinadas de acordo com as necessidades de cada projeto.

Revise mesmo um PR tenha sido finalizado

Muitas vezes quando vamos olhar um PR ele já foi revisado, aprovado, e está finalizado. Em vez de simplesmente “deixar pra lá”, ainda assim faça a revisão daquele código.
Se encontrar alguma coisa que ache pertinente reportar, adicione um comentário mesmo assim ao PR, ou fale diretamente com o desenvolvedor ou o time responsável para que o que você identificou possa ser discutido e tratado posteriormente.

Mesmo com a revisão de código ainda podem passar problemas que não foram observados pelos revisores, então quanto mais gente olhando, melhor.

Outros benefícios de se fazer a revisão de código

Além dos pontos já mencionados de que a revisão de código ajuda a encontrar e a mitigar que erros cheguem no ambiente produtivo, um processo de revisão de código bem feito também traz outros benefícios para um time de desenvolvimento.

Ajuda a contextualizar todo o time

Em empresas com mais de um time de desenvolvimento é muito comum que cada time possua as suas responsabilidades e que se fechem dentro delas, criando os chamados silos de conhecimento.
Nesses casos é ideal que a revisão de código possa ser feitas por qualquer pessoa desenvolvedora de qualquer time, mesmo de outros contextos.
Isso ajuda que um time fique sabendo no que os outros times estão trabalhando, melhorando a integração entre todos, aumentando as trocas de experiências e o reaproveitamento de soluções.

Ajuda no aprendizado

Se você é um programador em início de carreira, ou com pouca experiência em uma linguagem, não se intimide com a revisão de código.
Tente entender o que está sendo feito, questione, proponha melhorias. Isso vai ajudar no seu desenvolvimento em programação.

E do outro lado, se você é um programador experiente, não ignore questionamentos feitos no seu código, mesmo que eles sejam “bobos” ou não façam tanto sentido.
Tente explicar as motivações do porque algo foi feito de determinada forma. Você estará contribuindo com o desenvolvimento do time, melhorando a qualidade do código e do trabalho de todos no projeto.

Difunde boas práticas de programação e padronizações

Nada melhor para difundir uma prática de programação, uma nova arquitetura ou padronização do que mostrando na prática, e com a revisão de código isso é possível e ocorre naturalmente.
Você tem a oportunidade de mostrar ou propor um novo padrão, trazendo outros desenvolvedores a participarem de uma discussão de forma mais clara, já que o código vai estar lá para que todos vejam, mostrando a implementação e demonstrando seu funcionamento.

Nos faz mais conscientes do nosso código

Quando desenvolvemos sabendo que outras pessoas olharão aquele código depois isso pode fazer com que prestemos mais atenção no que está sendo feito, para garantir que aquele código está de acordo com o esperado, seguindo todas as melhores práticas.
E por outro lado também pode nos dar mais segurança no que estamos fazendo, já que terão outras pessoas olhando e conferindo por possíveis erros que possam ter passado despercebidos.

Como falado anteriormente, a revisão de código não deve servir para criticar ou achar defeitos no código com o objetivo de diminuir a pessoa que escreveu aquilo, mas sim para que todos assumam a responsabilidade do que está sendo feito, já que um projeto não é feito individualmente, mas sim pelo conjunto e contribuição de todos e todas.


Compartilhe: Twitter - Facebook - LinkedIn