O que é Code Review, alguns modelos de aplicação e como aplicar as técnicas de code review com foco em segurança da informação.

Esse conteúdo faz parte de uma palestra que ministrei no RootDay, uma web conferência sobre tecnologia e segurança da informação, organizada pela Rootsec Treinamentos.

 

A importância do code review é mais do que aplicar técnicas de revisão de código. O conceito real é tornar essas técnicas, práticas comuns em todo o processo de desenvolvimento, tendo como resultado a melhoria da capacidade técnica dos profissionais e da qualidade dos softwares desenvolvidos.

 

 

O que é Code Review?

 

Code review, é amplamente descrito como uma técnica de revisão de código onde o desenvolvedor tem seu código revisado a cada commit, ou seja, a cada alteração realizada na aplicação.

A prática de Code Review em equipes ou times de desenvolvimento consiste em eleger outro desenvolvedor, que não o responsável pelo código, para analisar seu código ou parte dele.

O revisor deverá analisar todos os arquivos e códigos do commit, verificando a lógica aplicada ao desenvolvimento, e a maneira como funções e rotinas são executadas, procurando por falhas, bugs ou melhorias no algoritmo, sempre com base na finalidade da atualização para o sistema e seu impacto real no funcionamento da aplicação.

Cabe ao revisor sugerir melhorias de código e rotinas, questionar sobre funcionamento de qualquer algoritmo, e analisar a importância de cada trecho de código para o objetivo da atualização.

 

Code Review

 

 

Code Review, uma visão mais próxima da realidade

 

No cotidiano de uma equipe de desenvolvimento, não podemos esperar por um cenário perfeito onde sempre existe profissionais à disposição para revisar trechos pequenos de código, na realidade, o cenário é completamente invertido, os programadores estão sempre cheios de atividades e o tempo para revisão diária é quase zero.

Mesmo em um cenário crítico, o Code Review é uma ótima alternativa para melhorar o processo de desenvolvimento. Desta forma, o ato revisar código não precisa necessariamente ser feito a cada commit, ou a cada trecho de código. Vejo o code review muito mais produtivo no dia a dia, se realizado como forma de estudo das aplicações e recursos desenvolvidos pela equipe, onde todos fazem a revisão dos códigos produzidos e em debates frequentes sobre como melhorar o processo de desenvolvimento, compartilhem seus resultados e soluções para bugs ou falhas encontradas.

 

 

O Code Review pode gerar lentidão no processo de desenvolvimento?

 

Se a revisão de código for feita a cada commit, com certeza precisará de um tempo maior para a etapa de desenvolvimento da aplicação.

Contudo, o processo de desenvolvimento é uma rotina completa, desde a análise de requisitos, à publicação do software em ambiente de produção. Uma determinada etapa poderá ser mais lenta devido à revisão de código e alterações, se for o caso, mas isso irá favorecer o processo como um todo, melhorando a performance, e diminuindo a chance de futuras falhas em aplicações.

Com o uso constante de Code Review, as revisões de código passam a levar cada vez menos tempo, o prazo total de desenvolvimento será reduzido e a qualidade dos softwares desenvolvidos será consideravelmente melhor.

 

 

O principal objetivo e resultados do Code Review

 

Além de melhorar qualidade final de software, com as melhorias sugeridas durante o processo de análise de código, o code review também evita que Bugs, ou alguns erros simples ou complexos, cheguem ao ambiente de produção e sejam perceptíveis ao usuário final.

Mas o maior resultado alcançado ao longo do tempo, na aplicação das técnicas de Code Review em times de desenvolvimento, é com certeza, o aumento da capacidade técnica de todos os membros da equipe, pois todos os desenvolvedores passam a absorver as boas práticas de desenvolvimento uns dos outros, fazendo com que o alinhamento da equipe seja cada vez mais linear.

A partir deste momento é possível criar uma padronização de desenvolvimento, evitando assim erros comuns de código, e qualquer novo membro se adeque mais facilmente à equipe.

 

O tempo de adaptação de novos membros a um time de desenvolvimento, ou seja, o período em que este novo membro poderá gerar retorno para o grupo, pode chegar a até 6 (seis) mês  de acordo com a complexidade das aplicações envolvidas. Mas em uma equipe alinhada e com uma metodologia clara de desenvolvimento, este tempo pode cair pela metade.

 

Code Review

 

Modelos de uso de Code Review

 

Trabalhando em pares: O desenvolvimento em pares facilita muito a revisão de código, que pode ser feita inclusive em tempo real, pois dois profissionais passam a ser responsáveis pelo desenvolvimento de uma alteração de software e todo código escrito é instantaneamente verificado pelo outro dev. Isso pode acelerar o processo de desenvolvimento e code review, e garantir que ambos os desenvolvedores estejam alinhados com o que está sendo desenvolvido.

Checklists: Realizar code review, é o mesmo que vasculhar o código em busca de falhas ou melhorias, e se você não sabe o que está buscando, pode ser que você não encontre nada. Por isso fazer um checklist para guiar seu code review é muito importante e facilita o processo. Além de garantir que determinados bugs ou falhas, nunca passem em branco.

Code review automatizado: Dependendo da linguagem a ser analisada, existem ferramentas prontas e gratuitas que podem ajudar, e muito, no processo de revisão de código. Em busca de falhas conhecidas, ou de padrões de sintaxe, estas ferramentas podem adiantar boa parte do processo de revisão, gerando um relatório das falhas encontradas na aplicação. Mas é importante salientar que a melhor prática, é sempre mesclar a análise automatizada com a análise manual.

 

Code Review

 

 

Como aplicar Code Review com foco na Segurança da Informação

 

Além de sempre estar atento a bugs na aplicação ao realizar um Code Review, é muito importante procurar por Vulnerabilidades e falhas de segurança.

As vulnerabilidades mais conhecidas já devem fazer parte de um checklist para não passarem em branco. Algumas ferramentas automatizadas também podem ser utilizadas neste processo.

O Code Review é fundamental no desenvolvimento de aplicações, justamente por ser um dos principais responsáveis pela criação de um ambiente realmente seguro. Por isso a revisão de código com foco na segurança deve ser feita periodicamente em busca de novas vulnerabilidades que possam ser exploradas por possíveis invasores.

 

 

Por fim, algumas boas práticas de Code Review

 

– O code review feito a cada commit, não costuma levar mais do que 15 minutos. Se o tempo estiver muito longo, os commits enviados para revisão deverão ser reduzidos;

– É sempre bom que o código seja revisado por outro dev conhecido, isso pode facilitar a comunicação.

– O desenvolvedor do código deve estar sempre aberto a receber sugestões e avaliar sua relevância para a melhoria do software;

– Explique detalhadamente a necessidade da atualização que está sendo feita, e como seu código se adequa a essa necessidade;

– Se você for o revisor, nunca dê opinião sobre a forma como o outro programador pensa ou escreve. Atente-se ao objetivo do commit e a coerência com o código;

– Sugira melhores práticas de desenvolvimento;

– Absorva para si, as boas práticas de outros desenvolvedores.

 

 

Um Bônus para quem chegou até aqui.

 

Como eu comentei durante a palestra, estou compartilhando com vocês um podcast bem bacana sobre Code Review que pode ajudar bastante a entender sobre essa etapa do desenvolvimento de aplicações.

Espero que este conteúdo tenha sido relevante pra você. Um abraço e até o próximo post.

 

Deixe seu comentário

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *