Manter a consistência do código de um projeto e identificar falhas antes que elas cheguem para as pessoas usuárias finais é um desafio e tanto na programação. Apesar disso, podemos contar com técnicas que nos auxiliem nesse processo, como o Code Review.
Realizar a revisão do código produzido não só preserva a imagem do projeto, pois mitiga falhas, mas também facilita a difusão de conhecimento entre as pessoas da equipe.
Por isso, se este assunto despertou sua curiosidade e você desejar saber mais sobre como fazer um bom Code Review, continue conosco!
Veja, a seguir, os tópicos que vamos abordar.
- O que é Code Review?
- Code Review Manual vs Code Review Automático: quais as diferenças?
- Em quais pontos principais o Code Review é focado?
- Quais as principais aplicações do Code Review?
- Quais as vantagens de fazer o Code Review?
- Qual a importância do Code Review para equipes ágeis?
- 15 melhores práticas para fazer o Code Review de forma correta!
- Qual a relação entre Code Review e Pull Requests?
- Qual a relação entre Quality Assurance e Code Review?
- 5 melhores ferramentas de Code Review para usar agora!
O que é o Code Review?
O Code Review (revisão de código) se trata de uma revisão realizada em uma parte do código, com o objetivo de identificar pontos de melhoria. De modo geral, essa análise é feita por uma pessoa qualificada, mas que não estava em contato direto com o trecho criado.
Essa prática é fundamental para preservar a imagem do projeto, pois durante a revisão serão feitos testes de funcionamento, validação do layout e identificação de vulnerabilidades. Assim, as chances de ocorrerem falhas durante a execução do sistema são reduzidas.
Outro ponto positivo se trata da disseminação de conhecimento. Ao fazerem a revisão do código, as pessoas do time ganham a oportunidade de conhecer mais sobre o sistema e não ficam presas apenas às tarefas as quais estão executando.
Além disso, com ele, manter o padrão de projeto se torna mais fácil, uma vez que a cada nova funcionalidade uma varredura será feita para identificar desvios da estrutura.
Entenda o funcionamento do Code Review
O processo de Code Review inicia quando uma pessoa desenvolvedora solicita uma Pull Request.
Uma Pull Request é um pedido de mesclagem entre o novo código e o restante do projeto. Entretanto, antes de adicionarmos a nova implementação, é necessário analisar se o trecho produzido está em conformidade com o funcionamento esperado e com os padrões utilizados.
Por isso, sempre que uma Pull Request é realizada, uma pessoa desenvolvedora, diferente da que escreveu o código, é escalada para revisar o que foi criado. A essa revisão damos o nome de Code Review.
Durante essa análise será verificada a presença de bugs, vulnerabilidades e outros pontos que podem ser melhorados.
Após as correções solicitadas serem implementadas, o código é aprovado. Nesse momento, o trecho desenvolvido é mesclado ao repositório principal do projeto e passa a fazer, efetivamente, parte do sistema.
Code Review Manual vs Code Review Automático: quais as diferenças?
Tanto o Code Review Manual quanto o Code Review Automático possuem a mesma finalidade: encontrar pontos de melhoria no código. Entretanto, cada abordagem possui um modo de execução próprio, vejamos a seguir.
Code Review Manual
Na abordagem manual, a pessoa revisora percorrerá linha por linha do código escrito, em busca de pontos de melhoria. Como consequência, trata-se de uma atividade trabalhosa e que levará tempo, principalmente em aplicações maiores. Além disso, é necessário experiência e atenção para capturar os pontos que representam vulnerabilidades.
Code Review Automático
Já na revisão automatizada, uma ferramenta é utilizada para realizar buscas no código produzido. Desse modo, os pontos de melhoria são identificados mais rapidamente. Por outro lado, esses softwares costumam apresentar um custo relativamente alto.
Em quais pontos principais o Code Review é focado?
Ao realizar um Code Review, a pessoa revisora deve estar atenta a alguns pontos principais, vejamos quais são eles:
- Nomes: o Code Review preza pelo uso de nomes explícitos, sejam de variáveis, métodos, classes, etc;
- Funcionalidade: como o nome sugere, este item verifica se o código se comporta como o esperado e se as práticas de usabilidade foram aplicadas;
- Complexidade: este item analisa se o código pode ser simplificado e se outra pessoa consegue compreender o que foi implementado;
- Design: no design, a revisão vai analisar se o código foi estruturado de modo apropriado para o sistema;
- Testes: o Code Review também verifica se o projeto possui testes automatizados e se eles foram desenhados de modo correto;
- Comentários: os comentários são um item essencial para orientar sobre o funcionamento de determinado trecho de código. Por isso, também são considerados na revisão;
- Estilo: o estilo se refere a presença dos padrões planejados para o desenvolvimento do projeto;
- Documentação: a pessoa revisora também deve se atentar se a documentação do item produzido foi criada.
Quais as principais aplicações do Code Review?
Existem variadas formas de se realizar um Code Review, sendo possível o envio do código completo para a pessoa revisora ou com o auxílio de ferramentas que trazem agilidade ao processo. A seguir, vejamos algumas aplicações:
1. Envio do código por e-mail
Nessa abordagem, o código é enviado para as pessoas revisoras por e-mail. Apesar de ser uma abordagem mais flexível, a comunicação assíncrona usada nesse método pode fazer com que a análise leve mais tempo para ser concluída.
2. Programação em pares
Na programação em pares, o Code Review é realizado de modo simultâneo, com a pessoa revisora e autora presentes. A vantagem da técnica é poder transmitir as informações de forma mais rápida e evitar mal-entendidos. Entretanto, pode haver dificuldade em encontrar espaço na agenda de ambas as pessoas para realizar o processo.
3. Over-the-shoulder
Over-the-shoulder ou “sobre os ombros”, em português, é uma técnica de revisão informal. Ela consiste em solicitar a revisão para uma pessoa qualificada e que esteja disponível. Caso seja necessário, você pode se juntar à revisão e explicar os pontos que não ficaram explícitos.
4. Com o auxílio de ferramentas
As ferramentas, como GitHub e GitLab, são softwares que auxiliam na criação, revisão e rastreio de mudanças e comentários de um Pull Request. Nesse modelo, a pessoa revisora é notificada quando recebe uma solicitação de revisão.
Quais as vantagens de fazer o Code Review?
O Code Review apresenta diversos benefícios. Abaixo, listamos cinco das principais vantagens de aplicar essa análise de código:
- Difusão de conhecimento: a revisão de código viabiliza o aprendizado de novas técnicas de desenvolvimento. Além disso, propicia que todas as pessoas da equipe conheçam o projeto e não se tornem, individualmente, um ponto focal de informação sobre uma determinada funcionalidade;
- Correção de bugs: o Code Review permite a identificação de falhas antes que elas cheguem à produção. Isso, além de evitar retrabalho, também preserva a imagem do projeto;
- Conformidade: a revisão garante que o projeto possua um padrão de código. Isto é de extrema relevância, principalmente em projetos de código aberto, em que diversas pessoas colaboram de modo simultâneo;
- Mais segurança: o Code Review torna a aplicação mais segura, pois durante a análise do código é realizada uma varredura em busca de vulnerabilidades;
- Maior colaboração: a revisão de código incentiva a colaboração entre pessoas do time. Isso se deve a necessidade de comunicar os pontos de melhoria e de trabalhar na solução.
Qual a importância do Code Review para equipes ágeis?
- Compartilhamento de informações
O primeiro ponto relevante do Code Review para equipes ágeis é o compartilhamento de informações. A partir das revisões, as pessoas do time passam a conhecer mais a fundo a estrutura de código do projeto. Assim, adquirem conhecimento para realizar manutenção e criar novas funcionalidades em diferentes segmentos do sistema.
- Estimativas mais assertivas
O Code Review também promove estimativas assertivas. A estimativa de tempo para a conclusão de uma tarefa depende, principalmente, do conhecimento acerca da estrutura do projeto e dos recursos existentes. Por isso, como a revisão de código ajuda na difusão desse conhecimento, a equipe pode estimar com base em informações sólidas.
- Evita a sobrecarga das pessoas do time
Imagine o cenário em que você é a única pessoa que possui conhecimento sobre determinado trecho de um projeto. Agora, tenha em mente a possibilidade de receber uma tarefa em que o objetivo é dar manutenção em uma parte crítica do código, que você nunca mexeu antes.
Em ambos os cenários descritos teremos problemas, pois podemos travar o andamento do projeto e sobrecarregar as pessoas envolvidas. Por outro lado, ao aplicar o Code Review, essas situações podem ser mitigadas, pois ao compartilhar a base de código, toda a equipe estará ciente da estrutura do projeto.
- Auxilia na familiarização com o código
Sempre que uma pessoa é adicionada à equipe, é necessário realizar a integração dela com o projeto. Desse modo, o Code Review pode ser um grande aliado, uma vez que facilita a familiarização com a base do projeto e ainda viabiliza que pontos de melhoria sejam identificados.
15 melhores práticas para fazer o Code Review de forma correta!
1. Comunicação assertiva
Ao falar sobre melhorias, é importante considerar sobre como a informação será transmitida. Dessa forma, evite comentários que realizam julgamentos e prefira frases que tornam o feedback mais receptivo, como “Eu sugiro que…” e “Nesse ponto podemos…”.
2. Tire dúvidas
Nem sempre a lógica utilizada no código será explícita. Por isso, para compreender melhor o que foi escrito, faça perguntas sobre as decisões que foram tomadas durante o desenvolvimento.
3. Considere diferentes soluções para um mesmo problema
Para solucionar um problema, lógicas diferentes podem ser utilizadas. Por isso, ao fazer um Code Review, leve isso em consideração antes de concluir que o código foi escrito incorretamente.
4. Não confunda gosto pessoal com boas práticas
Quando programamos, é comum termos preferências sobre como nomear uma variável, estruturar pastas ou indentar o código. Entretanto, ao fazer uma revisão, nosso gosto pessoal não deve ser tomado como uma regra, pois existem diferentes formas para se chegar a uma mesma solução.
5. Valorize o esforço da pessoa que escreveu o código
O Code Review é uma prática que viabiliza a evolução, não a desmotivação de quem escreveu o código. Assim, independentemente da necessidade de melhorias, reconheça o esforço e o tempo despendidos no desenvolvimento.
6. A descrição do PR deve ser clara
É por meio da descrição do Pull Request e dos commits que vamos poder ter uma ideia melhor sobre o que aconteceu ao longo do desenvolvimento do código. Por isso, na revisão, se estes itens estiverem pouco objetivos, aponte-os como itens que devem ser melhorados.
7. Use um checklist durante a revisão
Para não deixar nenhum ponto importante passar durante o Code Review, crie um checklist. A lista deve contemplar aspectos sobre a assertividade do código, funcionamento, uso dos padrões do projeto, conformidade com o layout, entre outros.
8. Tratamento de erros
No Code Review, também é relevante verificar se o código executa uma boa tratativa de erros. Identificar falhas não tratadas durante a revisão evita que o projeto tenha problemas de performance posteriormente.
9. Revise menos de 400 linhas por vez
Em aplicações maiores, podem haver funcionalidades que possuem muitas linhas de código. Nesses casos, evite revisar mais de 400 linhas por vez. Fazer a revisão de um código muito extenso pode acarretar cansaço e dificultar a identificação de melhorias.
10. Não tenha pressa para revisar
O Code Review, por se tratar de uma análise, exige paciência. Sendo assim, revise com calma e para que os pontos significativos do código não sejam deixados de lado.
11. Tenha empatia com as pessoas que estão iniciando no projeto
Ingressar em um novo projeto pode ser uma experiência cansativa, pois a estrutura do código é nova e o estilo de programação é diferente. Desse modo, dê mais atenção a essas revisões e tenha empatia. A nova pessoa desenvolvedora vai gradativamente se acostumar aos padrões usados.
12. Revise sempre
Em alguns cenários, a pressão por prazos e o alto número de tarefas que devem ser entregues acabam atropelando a revisão. Entretanto, pular o Code Review pode deixar que código mal performático chegue à produção e isso causará retrabalho no futuro.
13. Use filtros
Durante a revisão, para concluirmos se determinada solicitação de mudança está adequada, podemos usar um filtro composto por três perguntas: é verdade? É necessário? É gentil?
A primeira questão levanta a veracidade de nossa solicitação e minimiza as chances de sermos influenciados por nossas próprias preferências. Já a segunda pergunta questiona se a mudança é realmente necessária ou pode ser implementada em um outro momento oportuno. Por fim, a última questão avalia o tom de nossa solicitação, procurando trazer mais gentileza e empatia ao comentário.
14. Use o momento para aprender
Veja a técnica como uma forma de trocar experiências. Ao revisar o código produzido por outra pessoa, você pode aprender mais sobre novas técnicas de desenvolvimento. Do mesmo modo, a revisão é um momento em que você pode transmitir seu conhecimento.
15. Tenha humildade para ouvir feedbacks
Se você solicitou uma revisão, tenha humildade ao receber o feedback. Lembre-se de que, independentemente da sua experiência com programação, sempre haverá pontos que podem ser melhorados. Por isso, não tome as sugestões como críticas pessoais.
Qual a relação entre Code Review e Pull Requests?
O Code Review se inicia a partir do momento que uma solicitação de mesclagem (Pull Request) é feita. A partir daí, o código submetido será analisado por uma pessoa revisora, a fim de verificar a presença dos padrões usados no projeto e possíveis erros. Desse modo, o Code Review e Pull Requests estão fortemente relacionados.
Qual a relação entre Quality Assurance e Code Review?
Quality Assurance e Code Review são sinônimos. Desse modo, ambos os termos se referem à revisão do código por uma pessoa diferente da que o escreveu e, nesse sentido, o objetivo final é a melhoria do produto final.
5 melhores ferramentas de Code Review para usar agora!
GitHub
O GitHub é uma plataforma de versionamento bastante conhecida no mundo do desenvolvimento e que oferece uma ferramenta de revisão de código integrada aos Pull Requests. Desse modo, é possível solicitar uma revisão, propor mudanças e acompanhar a versão do projeto.
Preço
A ferramenta de revisão do GitHub é gratuita, mas existem planos a partir de quatro dólares mensais para cada pessoa usuária.
GitLab
O GitLab é outra ferramenta popular entre as pessoas desenvolvedoras. Assim como a anterior, viabiliza a revisão de código, alterações e acompanhamento. Além disso, o GitLab oferece a automatização e rastreamento do Code Review.
Preço
A ferramenta possui um plano gratuito. Para mais recursos, existem outras opções que custam a partir de dezenove dólares por mês por pessoa usuária.
Azure DevOps
Trata-se de uma ferramenta de revisão incorporada ao Azure Repos, ambos da Microsoft. Além de permitir a revisão, possui integração contínua e espaço para discussões.
Preço
O Azure DevOps é gratuito para equipes de até 5 pessoas. A partir disso, é necessário adquirir um plano de seis dólares mensais por cada nova pessoa usuária.
Bitbucket
O Bitbucket Code Review é uma ferramenta oferecida pela Atlassian. Assim como os anteriores, é possível revisar código, encontrar bugs e colaborar com o time.
Preço
O Bitbucket também possui um plano gratuito e outras opções pagas a partir de três dólares por mês por pessoa usuária.
JetBrains Space
Essa é uma ferramenta desenvolvida pela JetBrains, que permite uma revisão personalizada, aplicando regras ao Code Review. Além disso, a ferramenta também conta com integração às IDEs da JetBrains.
Preço
O JetBrains Space também conta com um plano grátis e outras opções pagas a partir de oito dólares por mês para cada pessoa usuária da ferramenta.
Neste artigo, você pode aprender mais sobre o Code Review, uma prática essencial no mundo do desenvolvimento. Com a revisão de código, a aplicação se torna mais segura e consistente, pois as falhas podem ser mitigadas antes que cheguem à produção.
Além disso, essa abordagem também viabiliza a difusão de conhecimento entre as pessoas da equipe e facilita a manutenção de padrões de projeto. Mas lembre-se, ele deve ser uma técnica utilizada para evoluir a codificação da pessoa desenvolvedora. Por isso, durante uma revisão, tenha empatia e humildade.
Se você se interessou por esse assunto e quer continuar aprendendo, leia sobre Git Flow neste artigo da Trybe e saiba mais sobre como gerenciar o repositório de um projeto.