Saber a importância do code review pode impactar diretamente no andamento do seu projeto já que, é normal que o projeto sofra alterações ao longo do seu percurso. Então, antes de passá-lo adiante, é preciso encaminhá-lo para outro desenvolvedor, que fará uma revisão dessas alterações. Apenas depois que todas foram feitas, revisadas e aprovadas é que o projeto avança para as próximas etapas. É disso que se trata o code review.
Como o próprio nome indica, o code review é essa fase de revisão do código. Basicamente, sua função é a de identificar problemas que podem passar despercebidos por quem está programando, além de sugerir formas alternativas de solucioná-los.
De fato, o code review traz uma série de benefícios à empresa, garantindo uma entrega de produtos de melhor qualidade. Então, quer saber mais sobre o code review e qual é o papel dele nos ganhos da sua empresa? Continue lendo e fique por dentro do assunto!
Qual é a importância do code review?
Para começarmos a detalhar a importância do code review é preciso saber que, em grande parte das empresas, é muito comum que exista algum projeto sendo desenvolvido por uma só pessoa, sendo ela a única que sabe como ele funciona. Essa situação, porém, é ruim tanto para a empresa — gerando o que chamamos de filas individuais — quanto para o desenvolvedor, que tem toda a responsabilidade do projeto sendo colocada sobre si.
Porém, quando outro desenvolvedor faz a revisão desse trabalho, ocorre uma distribuição saudável do conhecimento. Ao entenderem o processo de desenvolvimento do código e como foram feitas as implementações de cada feature, todos os membros da equipe responsáveis pela revisão passam a ter a capacidade de trabalhar naquele projeto também.
Assim, distribui-se melhor as responsabilidades e evita-se as filas individuais. Sem contar que é extremamente importante ver como se dá todo o funcionamento de um projeto, em vez de apenas ouvir sobre ele nas reuniões.
Outro benefício que detalha a importância do code review é, sem dúvida, o ganho de produtividade. Na verdade, ela pode até dobrar já que, ao remover todo o peso de uma só pessoa e compartilhar o conhecimento, o trabalho em conjunto faz com que tudo se torne mais ágil — desde possíveis soluções para determinados problemas até a própria tomada de decisão.
Em outras palavras, um ambiente de desenvolvimento mais coletivo faz com que as responsabilidades sejam divididas e nenhum desenvolvedor fique sobrecarregado, o que aumenta a produtividade geral dos projetos.
Com o code review, é possível criar soluções alternativas para os problemas
É raro que um código seja bem desenvolvido de primeira. Em muitos casos, seja por mau uso dos recursos da linguagem ou pela velocidade em que se produz, o código simplesmente não fica da melhor maneira que poderia ser feito. Por isso, a etapa de revisão é importante. Dessa forma, é possível conferir a existência de problemas e, depois, sempre se indagar se todos foram solucionados da maneira correta.
Essa indagação, aliás, é fundamental por analisar as soluções sob diversos pontos de vista. Todo o processo é ótimo para fazer com que tanto o desenvolvedor responsável pelo projeto quanto os seus revisores consigam aprender e criar as melhores soluções possíveis em cada caso.
Especialmente para quem está iniciando na área de programação e ainda não tem um senso crítico muito apurado em relação ao código, esse tipo de feedback permite um amadurecimento mais rápido dos profissionais.
Aumento do senso da equipe
Outro caso muito comum de acontecer em empresas: quando surgem problemas no desenvolvimento de alguma feature, a culpa é colocada sobre a pessoa que a implementou. Isso, porém, não é correto. Ela não deve cair somente sobre quem fez essa implementação, mas sim sobre toda a equipe que trabalhou no projeto, pois ele é de responsabilidade conjunta.
Como o código foi revisado por mais de um indivíduo — que fez os testes e analisou se a implementação estaria de acordo com o que foi proposto —, todo o time passa a ser responsável por ela. Assim, a comunicação da equipe é otimizada, de forma que todos estão sempre se ajudando, trocando críticas e ideias tanto positivas quanto negativas, sendo mais um ponto que detalha a importância do code review.
Esse tipo de relacionamento entre os membros da equipe acaba proporcionando um ambiente muito mais propício para que todos se sintam seguros uns com os outros, conseguindo expressar suas ideias de forma conjunta. Afinal, não se trata mais de desenvolvedores isolados, mas de uma equipe integrada.
Quais são as boas práticas de code review?
Diante das vantagens que vimos até aqui, podemos concluir que o code review é importante não apenas como uma metodologia para encontrar bugs e erros, mas também por agregar um valor bem maior à equipe de desenvolvimento — o que o torna essencial para a entrega de projetos de maior qualidade.
Agora, o que deve ser feito na empresa para que todo esse processo seja executado da melhor maneira possível? Afinal, ler o código algumas vezes não é o suficiente para garantir a devida segurança. É preciso ir além, seguindo algumas práticas específicas. Dentre elas, vale a pena destacarmos as seguintes.
Tenha uma wiki e use checklists
O primeiro passo é ter um documento que contenha todas as práticas feitas no projeto. O ideal nesse sentido é utilizar uma wiki como um documento vivo, que não só pode como deve ser alterado constantemente, de acordo com a evolução do projeto. Ela servirá como ponto de referência, e deve estar sempre à disposição dos desenvolvedores e revisores.
Além disso, como o code review funciona como uma busca — logo, caso não saiba aquilo que está sendo buscado, você provavelmente não o encontrará -, outra boa prática é criar alguns checklists para serem usados de guia nessa revisão do código. Em certos casos, podem ser listas com a verificação da autenticação, da encriptação dos dados, de vulnerabilidades anteriores e etc.
O code review deve ser executado sempre que houver alguma mudança no código, mesmo que esta seja pequena. Especialmente nos casos de ciclos iterativos, em que mudanças menores podem ocasionar grandes impactos em série, gerando vulnerabilidades imprevistas pela equipe.
Fique por dentro do funcionamento de novas ameaças
Um erro bem comum nessa etapa é a desinformação, ou a informação desatualizada. Devido ao conhecimento que as pessoas já têm de determinada área, não é raro que novas vulnerabilidades sejam desconsideradas simplesmente por falta de conhecimento atualizado dos desenvolvedores.
Porém, lembre-se: novas ameaças surgem a todo momento, e conseguem explorar fraquezas que, até então, não eram consideradas como tal. Devido a isso, tente se manter sempre atualizado, a par de como as novas ameaças funcionam, para não deixar passar nenhuma vulnerabilidade no código.
Incorpore a automação ao trabalho manual
A análise de um código é, sim, uma tarefa subjetiva, já que passa por um processo decisório. Isso, no entanto, não quer dizer que a automação seja totalmente inviável. A realidade é que unir o trabalho manual do processo de code review à automação torna essa etapa bem mais ágil — além de agregar a ela uma relevância maior, tendo em mente que certas falhas humanas podem ser evitadas.
Grosso modo, a incorporação da automação pode ser feita na busca automática de certos padrões que indiquem vulnerabilidade, ou de algumas falhas que já são amplamente conhecidas.
Utilize ferramentas para otimizar o processo
Seguindo ainda na linha desse auxílio que a tecnologia pode prestar ao code review, vale a pena citarmos algumas ferramentas interessantes. Todas ajudam bastante os desenvolvedores a seguir padrões no desenvolvimento ou encurtar etapas de revisão. São elas:
- Android Lint — essa ferramenta oferece uma verificação de código muito útil na hora de identificar e corrigir problemas com a qualidade estrutural do código;
- Checkstyle — auxilia os programadores a escrever códigos em java, que aderem a um padrão de codificação. Basicamente, ele automatiza o processo de verificação do código;
- Findbugs — essa é outra ferramenta que pode ser considerada um analisador estático, mas que trabalha em Bytecode Java, e não no código fonte. Ele identifica alguns códigos Java que são mais propícios para bugs;
- SonarQube — oferece uma plataforma de código aberto para inspeção contínua de qualidade, em revisões automáticas com análise de código estático para detectar possíveis erros e vulnerabilidades de segurança. Essa ferramenta é compatível com mais de 20 linguagens de programação, o que a torna melhor ainda.
Além destas, existem muitas outras ferramentas que podem ser exploradas. Porém, vale lembrar aqui o que já foi dito em relação à automação do trabalho: ela deve ser feita como uma incorporação do trabalho manual, e não como substituição dele.
Enfim, todas essas boas práticas de code review são fundamentais para garantir que o processo esteja sempre livre de vulnerabilidades e ameaças. Como vimos, trata-se de uma etapa muito importante para o desenvolvimento de projetos. Então, não se esqueça de incluir o uso moderador da automação, os checklists, a revisão a cada mudança e busque sempre se manter atualizado, a par de novas ameaças!