E essa tal de revisão de código?
O que é revisão de código?
O próprio nome infere seu objetivo, que é revisar o código fonte implementado e/ou alterado. A metodologia sob a prática prega que um código escrito deve ser revisado por outro desenvolvedor antes de ser promovido ao ambiente de produção, caso o desenvolvedor julgue que o código não apresente uma qualidade satisfatória dentro das diretrizes do projeto pode prestar considerações ao autor do código, afim de suprir as deficiências detectadas.
A revisão de código pode ser realizada de forma manual e/ou automática, sendo a manual seguindo os conceitos apresentados no paragrafo anterior e a automática fazendo uso de algum utilitário que avalia a qualidade do código através de padrões previamente definidos, alguns exemplos de ferramentas são o SonarQube, ESLint, TSLint e o FixInsight.
Não é necessário que o revisor de código seja um conhecedor pleno das tecnologias utilizadas, sendo apenas necessário ter curiosidade em como o código escrito tende a resolver o problema que ele vem a resolver.
A adoção da revisão de código tende a resultar em vários benefícios:
- Compartilhamento de conhecimento: Ao analisar o código de outros desenvolvedores a absorção de conhecimento sobre outras técnicas de desenvolvimento ocorre de forma mais fluida.
- Aumento da qualidade do produto: A análise de código possibilita que potenciais falhas no código sejam detectadas antes de chegar no ambiente de testes e produção, reduzindo os custos do projeto.
- Aumento da sensação de sucesso: A prática de revisão de código causa em seus revisores e autores de código a sensação de sucesso, uma vez que passada a etapa de revisão de código há a transmissão de conhecimentos e a certeza de um código de melhor qualidade. Consequentemente molda a equipe a ter uma visão mais crítica e assim expor melhor suas opiniões.
É imprescindível que a revisão de código não seja utilizada para avaliar apenas o código-fonte alterado e sim todo o contexto que o envolve, desde a qualidade do pull-request submetido a até o quanto que os testes implementados estão cobrindo o código. De nada adianta um código de qualidade sem nenhum registro do problema que ele vem a resolver.
Passos para a revisão de código
QUALIDADE DO PULL REQUEST
É importante que o pull request apresente uma boa qualidade, o que virá a facilitar em consultas futuras que envolvam problemas semelhantes e a até mesmo no entendimento do código na revisão. O mesmo pode ser entendido como uma história, em que a partir de um determinado problema um personagem (desenvolvedor) montou uma estratégia e arquitetou toda uma estrutura para resolvê-lo para que possa-se ter um final feliz. Portanto, é importante que o revisor entenda de forma clara qual é o problema a ser solucionado para assim avaliar se a solução proposta é a melhor para aquele cenário.
A seguir estão alguns critérios a serem avaliados quanto à qualidade do pull request:
- Título auto-explicativo: O título deve ser auto-explicativo, facilitando no entendimento e em buscas futuras pelo histórico de pull requests.
- Descrição do código: Assim como foi anteriormente mencionado o pull request é uma história de todo o contexto que envolve o código alterado, portanto é imprescindível que haja uma descrição concisa do que foi implementado, com informações que contemplem desde o resumo do problema, contendo a causa do problema e finalizando pela solução aplicada. Para casos que envolvam alterações em interface gráfica pode-se ser inserida uma ilustração demonstrando o novo formato da mesma e o seu comportamento, desta forma a detecção de uma possível despadronização envolvendo a camada de experiência visual do usuário ocorre mais rápido.
- Certifique-se de que as alterações não quebraram o funcionamento do projeto: Este problema é resolvido pelas validações impostas durante o processo de integração contínua, portanto deve-se verificar se o pull request foi submetido a tais validações e se as mesmas não apresentaram nenhuma falha.
ANÁLISE DO CÓDIGO
Uma vez entendido o problema a resolver-se é hora de passar para a próxima etapa, que envolve a análise do código alterado. Mais uma vez vale salientar que todos os aspectos devem ser avaliados, desde a interface gráfica a até os arquivos utilizados para subsidiar na execução dos testes.
A dica é revisar cada camada de uma vez, lendo função por função, nível a nível.
Para facilitar na análise algumas perguntas acerca do código podem ser realizadas:
- Faz sentido as alterações aplicadas?
- Realmente resolve o problema proposto?
- Existe a possibilidade das alterações quebrarem o funcionamento de outro recurso do projeto?
- Esta no lugar correto?
- Existe uma forma melhor de realizá-lo? (mais fácil, mais correto, mais legível)
- Está seguindo os padrões estabelecidos para o projeto?
- Segue as heurísticas propostas pelo clean-code?
Demais Considerações
Ressalta-se que o processo de melhoramento contínuo do código é uma cultura a ser praticada em qualquer projeto que preze por uma boa qualidade, seja a nível de experiência de uso pelo usuário quanto de seus códigos fontes, portanto deve-se entender que o código é de toda a equipe.