Logo

dev-resources.site

for different kinds of informations.

Regra 6: Revisões de código são boas por três razões

Published at
9/23/2024
Categories
codereview
softwaredevelopment
productivity
Author
fernanda_leite_febc2f0459
Author
25 person written this
fernanda_leite_febc2f0459
open
Regra 6: Revisões de código são boas por três razões

Série de artigos sobre o livro As Regras da programação de Chris Zimmerman. O livro trata de 21 regras que ajudam programadores a criarem códigos melhores. Em cada post falo um pouco sobre cada regra do meu ponto de vista trazendo alguns exemplos e opiniões sobre o livro, com o objetivo principal de consolidar e compartilhar o conhecimento.


O Code Review é uma prática amplamente difundida na área de desenvolvimento de software, mas ainda há programadores que se sentem desconfortáveis ou inseguros com a ideia de ter seu código revisado por outra pessoa, como se isso representasse uma invasão de privacidade.

Vamos explorar a importância das revisões de código e como elas impactam diretamente nosso dia a dia, sob uma perspectiva um pouco diferente.

"O valor das revisões de código depende do tempo e esforço investidos nelas, e de como elas são conduzidas."

A razão mais óbvia para adotar a prática de Code Review é a identificação de bugs. Mas será que isso é realmente o mais importante? Esse livro destaca que para que a revisão seja eficaz, é necessário um processo consciente, onde o revisor tenha conhecimento ou até mesmo domínio sobre o código. Só assim ele será capaz de identificar possíveis problemas na implementação. Além disso, a revisão deve ser um diálogo. O livro afirma que o debate entre as partes é essencial para que todos compreendam os diferentes pontos de vista e sugiram melhorias de maneira mais assertiva.

"As revisões de código encontram bugs, mas não encontram todos."

Embora identificar bugs seja uma boa razão para revisar código, não é a única, nem a mais importante. A seguir, veremos outras razões igualmente relevantes.

Quando realizadas corretamente, as revisões são uma excelente ferramenta para disseminar conhecimento na equipe. Esse é um dos pontos mais importantes. Mas o que significa "corretamente"? O autor divide os programadores em duas categorias: sênior (aqueles que têm domínio sobre o código) e júnior (aqueles que ainda estão se familiarizando com o funcionamento do código). Segundo ele, existem três combinações entre revisores que trazem bons resultados:

  1. Sênior revisando código de Júnior: Nessa combinação, o programador sênior não apenas busca bugs, mas também aponta falhas na qualidade ou desvio de padrões que o júnior pode não ter percebido.
  2. Júnior revisando código de Sênior: Aqui, o júnior pode não encontrar muitos bugs, mas ao fazer perguntas ao sênior, ele compreende melhor o contexto e aumenta seu conhecimento sobre o código.
  3. Sênior revisando código de outro Sênior: Essa combinação aumenta a probabilidade de encontrar bugs, além de gerar discussões sobre melhorias, testes adicionais e o futuro do projeto.

Por que um júnior não deve revisar o código de outro júnior? Em muitos casos, esse processo não traz benefícios significativos, pois há pouca transferência de conhecimento e menos contexto para identificar problemas.

"Qualquer pessoa escreve código melhor quando sabe que será revisado."

De acordo com Zimmerman, a razão mais importante para as revisões de código é de natureza social. Quando sabemos que outra pessoa vai analisar nosso código, há uma pressão positiva que nos leva a "caprichar". Seguimos os padrões com mais rigor, evitamos deixar tarefas pela metade e procuramos soluções mais completas. No fim, nos esforçamos para escrever um código do qual nos orgulhamos de compartilhar.

"As revisões de código são inerentemente sociais."

Em conclusão, revisões bem conduzidas são cruciais por três motivos: ajudam a encontrar bugs, disseminam conhecimento e promovem a escrita de código de qualidade. Elas devem ser um processo colaborativo, onde o diálogo é a chave para uma revisão eficaz, com ambas as partes dispostas a aprender e a escutar.

Um processo de revisão saudável fortalece tanto a base de código do projeto quanto as conexões da equipe.

codereview Article's
30 articles in total
Favicon
Things About Code Review: Balancing Code Quality and Development Speed
Favicon
Some git commit histories are really embarrassing, I recommend all engineers to frequently use git rebase and git commit --amend
Favicon
The Importance of Code Reviews: A Story of Growth
Favicon
Supercharging AI Code Reviews: Our Journey with Mistral-Large-2411
Favicon
⏳ How I save 10 swe days/year with LLMs
Favicon
How We Made AI Code Review 40% More Efficient Using ReAct Patterns
Favicon
Quality isn't a four letter word
Favicon
Software Engineering at Google - Chapter 9: Code Review
Favicon
Tired of Messy Git Projects? Meet Anto, Your New Repo BFF! 🎉
Favicon
Code Reviews: Easing the pain
Favicon
How to Elevate Your Coding Skills to Stand Out in the Job Market
Favicon
Code Review (PRs)
Favicon
How To Run Static Analysis On Your CI/CD Pipelines Using AI
Favicon
First really useful AI tool - AI code review
Favicon
The Art of Code Reviews: How I Learned to Grow Beyond My Ego
Favicon
Reviewbot — Empower Your Code Quality with Self-Hosted Automated Analysis and Review
Favicon
Merge Faster to Ship Faster ⚡
Favicon
I fount codecrafters.io
Favicon
Another Blog Drop!! : Let's Dive Deep into Python Code Review with Pycimal by trycrack.me ⚡️⚡️
Favicon
Another Blog Drop: Let's Dive Deep into C# Code Review with EasySharp by TryCrack.me ...... ⚡️📷
Favicon
Regra 6: Revisões de código são boas por três razões
Favicon
Mastering Code Review in GitHub: Common Mistakes to Avoid
Favicon
Wednesday Links - Edition 2024-09-18
Favicon
A Journey Through Code Reviews: The Good, The Bad, and The “Wait, What?” Moments
Favicon
Doing Code Reviews & Filing Github Issues
Favicon
The Art of Code Review
Favicon
Leetcode Solutions #2
Favicon
Python: Interesting Code Patterns
Favicon
How to use CodeRabbit to validate issues against Linear Board
Favicon
Blog Post:My Rollercoaster Journey with Code Reviews, Bugs, and Fixes 🎢

Featured ones: