Escolhendo a altitude certa para corrigir um bug encontrado em review, não só o patch mais rápido
Em code review, identifiquei um bug de null-safety que teria derrubado três componentes de produção, e corrigi a classe do defeito em vez das três instâncias, propondo um helper compartilhado na camada de dados para a autora do PR em vez de aplicar patch em cada ponto de renderização eu mesma; um dos 310 pull requests em que dei um veredito explícito de review naquele semestre (702 em quatro repositórios entre 2025-03 e 2026-08), medido a partir da API do Bitbucket em vez de lembrado de memória.
Contexto
A maioria dos meus estudos de caso é sobre trabalho que fui dona de ponta a ponta. Este é evidência de uma capacidade diferente, igualmente importante: elevar o padrão de qualidade do trabalho de outra pessoa sem tomá-lo para mim. Code review é onde muito julgamento real de engenharia é invisível: identificar um defeito que não está obviamente errado, decidir corrigir o caso geral em vez da instância, e escolher sugerir em vez de reescrever para que a autora mantenha ownership e a lição. Isso é parte de uma prática sustentada, mais de 100 reviews entre frontend, backend e testes em um único semestre, ao lado de pair programming em trabalho crítico, em vez de uma pegada pontual.
Problema
O pull request de uma colega de time renderizava uma lista de itens depois de filtrá-la, mas uma lógica próxima no mesmo componente ainda se referia ao tamanho do array original, não filtrado. As duas linhas eram localmente corretas, e nenhuma estava errada por si só, mas juntas codificavam uma suposição de que os dois valores sempre concordariam. Não concordariam: no momento em que o filtro de fato removesse um item, os dois valores derivados divergiriam, e três componentes compartilhavam exatamente esse padrão.
03Restrições
Decisão
Reconheci o formato do bug antes de decidir o que fazer sobre ele: dois valores derivados da mesma fonte, lidos de forma independente, sem garantia de que permaneceriam sincronizados. Era o mesmo tipo de problema que já resolvi arquiteturalmente em outro lugar dando a um valor derivado um único caminho de computação.
05Trade-offs
Impacto
07Lições Aprendidas
Conhecimento de engenharia reutilizável que levo adiante disso: