Trilha de estudo
Trilha Revisão de Código: tudo o que estudar, tópico por tópico
Avaliação cobrindo domínio de revisão de código — desde fluxo de trabalho de PR eficaz e qualidade de feedback até revisão de segurança, análise de arquitetura e detecção de gargalos de desempenho. Fortemente voltada para revisão de código gerado por IA, incluindo padrões que LLMs frequentemente erram.
Resposta curta
Para aprender Revisão de Código, percorra 6 módulos e 33 tópicos na ordem em que um apoia o próximo. Comece por Fundamentos de Revisão e siga para Sinais de Qualidade de Código e Revisão de Segurança. Use o mapa como checklist, ou meça seu nível e estude só o que falta.
O que você vai estudar
Os tópicos estão agrupados por módulo. Abra um para ver os objetivos e os conceitos-chave.
1 · Fundamentos de Revisão7 tópicos
O que Torna uma Revisão Eficaz
Princípios de uma revisão de código eficaz: no que os revisores devem focar, a diferença entre estilo e corretude, e como priorizar o esforço de revisão.
Objetivos
- Distinguir entre preocupações de corretude, design e estilo em uma revisão
- Calibrar a profundidade da revisão de acordo com o nível de risco da mudança
- Identificar quando um PR requer uma revisão mais profunda do que uma varredura inicial
Conceitos-chave
- objetivos da revisão
- corretude vs. estilo
- calibração de profundidade da revisão
- revisão com tempo limitado
- primeira passada vs. revisão profunda
Disciplina de Fluxo de Trabalho de PR
Boas práticas de tamanho de PR, requisitos de descrição, expectativas de tempo de retorno de revisão e como um fluxo de trabalho de PR deficiente compromete a qualidade da revisão.
Objetivos
- Aplicar a disciplina de PRs pequenos em cenários comuns de desenvolvimento
- Escrever uma descrição de PR que possibilite uma revisão eficaz
- Distinguir comentários bloqueantes de não bloqueantes em revisão
Conceitos-chave
- disciplina de PRs pequenos
- requisitos de descrição de PR
- SLA de tempo de retorno da revisão
- comentários bloqueantes vs. não bloqueantes
- checklists de PR
Feedback que Muda Comportamento
Como escrever comentários de revisão que sejam específicos, acionáveis e respeitosos. A diferença entre feedback que melhora o código e feedback que gera conflito.
Objetivos
- Reescrever comentários de revisão vagos ou agressivos como específicos e construtivos
- Distinguir entre uma questão bloqueante e um 'nit'
- Aplicar a técnica de 'pergunta vs. exigência' para feedback sensível
Conceitos-chave
- feedback acionável
- comentários específicos vs. vagos
- tom na revisão de código
- nit vs. bloqueante
- fazer perguntas vs. exigir
Calibração de Escopo
Como calibrar o escopo de uma revisão para a mudança em questão — quando fazer uma revisão completa de arquitetura vs. uma verificação rápida, e como evitar sub-revisão e super-revisão.
Objetivos
- Aplicar calibração baseada em risco para determinar a profundidade de revisão de um PR
- Identificar arquivos e padrões de alto risco que sempre justificam revisão mais profunda
- Explicar por que a expansão de escopo em revisões reduz a eficácia
Conceitos-chave
- calibração de revisão baseada em risco
- superfície de área da mudança
- arquivos e padrões de alto risco
- técnicas de revisão incremental
Mentalidade do Revisor
O modelo mental de um revisor eficaz: pensar nos futuros mantenedores, verificar intenção vs. implementação e a responsabilidade do revisor no processo de desenvolvimento.
Objetivos
- Aplicar a perspectiva de 'futuro mantenedor' para avaliar a qualidade do código
- Distinguir entre intenção (o que o código deveria fazer) e implementação
- Articular a responsabilidade do revisor ao aprovar um PR
Conceitos-chave
- revisor como guardião
- intenção vs. implementação
- perspectiva de manutenibilidade
- responsabilidade do revisor
- aprovação como endosso profissional
Cultura de Revisão e Segurança Psicológica
Construir uma cultura saudável de revisão de código: frameworks de feedback construtivo, segurança psicológica e redução de ansiedade na revisão.
Objetivos
- Reformular feedback de revisão usando comentários convencionais para separar questões bloqueantes de sugestões
- Projetar normas de cultura de revisão da equipe que reduzam ansiedade e aumentem o aprendizado
Conceitos-chave
- feedback construtivo
- segurança psicológica
- diretrizes de tom
- comentários convencionais
- propriedade da revisão
- revisões assíncronas vs. síncronas
- revisão como mentoria
Métricas de Revisão de Código e Qualidade de Feedback
Medir a eficácia da revisão de código: tempo de ciclo, cobertura de revisão, métricas de qualidade de feedback e melhoria contínua.
Objetivos
- Projetar um dashboard de métricas de revisão de código que impulsione melhoria de processo sem incentivos perversos
- Medir a qualidade do feedback (não apenas cobertura) como indicador de saúde da revisão de código
Conceitos-chave
- tempo de ciclo de revisão
- métricas de cobertura de revisão
- pontuação de qualidade de feedback
- taxa de merge sem revisão
- carga de revisão
- impacto DORA
- analytics de revisão
2 · Sinais de Qualidade de Código6 tópicos
Identificação de Code Smells
Reconhecer code smells comuns em PRs: métodos longos, código duplicado, feature envy, data clumps, primitive obsession e quando eles importam.
Objetivos
- Identificar pelo menos 5 code smells no contexto de revisão de código
- Distinguir code smells cosméticos de estruturais
- Aplicar a 'regra de três' para identificar duplicação que vale refatorar
Conceitos-chave
- método longo
- código duplicado
- feature envy
- data clumps
- primitive obsession
- código morto
- shotgun surgery
Legibilidade vs. Engenhosidade
O trade-off entre código engenhoso e compacto e código legível e manutenível. Como ferramentas de IA tendem a soluções super-engenheiradas ou desnecessariamente complexas.
Objetivos
- Aplicar o teste de 'carga cognitiva' para avaliar a legibilidade do código
- Identificar quando uma solução 'engenhosa' deve ser substituída por uma legível
- Distinguir entre comentários que explicam 'como' e 'por quê'
Conceitos-chave
- carga cognitiva
- código autodocumentado
- one-liners vs. clareza
- números mágicos
- comentar o porquê, não o como
Revisão de Nomenclatura e Abstração
Revisar nomes de variáveis, funções e classes quanto à clareza e precisão. Identificar abstrações fracas, abstrações vazadas e nomenclatura que obscurece a intenção.
Objetivos
- Identificar nomenclatura que não revela a intenção
- Detectar abstrações vazadas em revisão de código
- Distinguir entre problemas de nomenclatura e problemas de abstração
Conceitos-chave
- nomes que revelam intenção
- nomes enganosos
- abstração vazada
- consistência de nível de abstração
- convenções de nomenclatura
Complexidade Ciclomática
Compreender e aplicar complexidade ciclomática em revisão de código. Identificar funções de alta complexidade, lógica profundamente aninhada e quando a complexidade é uma preocupação bloqueante.
Objetivos
- Calcular a complexidade ciclomática aproximada de uma função
- Aplicar o padrão de cláusula de guarda para reduzir a profundidade de aninhamento
- Identificar quando alta complexidade é uma preocupação bloqueante na revisão
Conceitos-chave
- complexidade ciclomática
- profundidade de aninhamento
- cláusulas de guarda
- padrão de retorno antecipado
- limiar de complexidade em revisão
Revisão de Cobertura de Testes
Avaliar a cobertura de testes em PRs — identificar testes ausentes, testes que cobrem apenas o caminho feliz, testes que verificam implementação em vez de comportamento, e métricas de cobertura vs. cobertura significativa.
Objetivos
- Identificar casos de teste ausentes analisando a mudança sob revisão
- Distinguir entre testes que verificam comportamento vs. testes que verificam implementação
- Aplicar o teste 'o que pode dar errado' para identificar testes de casos extremos ausentes
Conceitos-chave
- caminho feliz vs. casos extremos
- testes orientados a comportamento
- qualidade de testes vs. percentual de cobertura
- testes de caminho de erro ausentes
- testes que testam a coisa errada
Análise Estática Automatizada em Escala
Implementar e ajustar análise estática em escala: seleção de ferramentas, regras customizadas, redução de ruído e integração ao fluxo de trabalho do desenvolvedor.
Objetivos
- Projetar uma configuração de análise estática que bloqueie problemas críticos sem fadiga de alertas
- Escrever uma regra customizada de Semgrep para um antipadrão específico do projeto
Conceitos-chave
- ferramentas de análise estática
- regras customizadas
- gestão de falsos positivos
- supressão de baseline
- integração com pre-commit
- integração com IDE
- análise incremental
3 · Revisão de Segurança6 tópicos
OWASP Top 10 na Revisão de Código
Identificar vulnerabilidades do OWASP Top 10 durante revisão de código: injeção, autenticação quebrada, XSS, IDOR, configuração incorreta de segurança e mais.
Objetivos
- Identificar vulnerabilidades de SQL injection em PRs
- Reconhecer vulnerabilidades de XSS em código de templates
- Aplicar o OWASP Top 10 como checklist de revisão
Conceitos-chave
- SQL injection em PRs
- XSS na revisão de código
- padrões IDOR
- configuração incorreta de segurança
- controle de acesso quebrado
Lacunas de Autenticação/Autorização na Revisão de Código
Encontrar lacunas de autenticação e autorização em PRs: verificações de auth ausentes, caminhos de escalação de privilégio, referências diretas inseguras a objetos e padrões de controle de acesso quebrado.
Objetivos
- Identificar middleware de autenticação ausente em definições de rotas
- Reconhecer vulnerabilidades IDOR em código de endpoints de API
- Aplicar testes de escalação de privilégio vertical vs. horizontal em PRs
Conceitos-chave
- middleware de auth ausente
- padrões IDOR
- escalação de privilégio
- privilégio horizontal vs. vertical
- lacunas de validação JWT
Falhas de Injeção que LLMs Frequentemente Produzem
Vulnerabilidades de injeção que ferramentas de IA frequentemente geram: SQL injection via concatenação de strings, injeção de comandos do SO, injeção LDAP e injeção de templates. Por que LLMs frequentemente produzem código vulnerável.
Objetivos
- Identificar SQL injection por padrões de f-string/concatenação em revisão de código
- Converter código vulnerável para usar consultas parametrizadas
- Reconhecer padrões de injeção de comandos do SO em código gerado por IA
Conceitos-chave
- SQL injection via concatenação
- consultas parametrizadas
- injeção de comandos do SO
- injeção de templates
- padrões de injeção de LLMs
Padrões de Vazamento de Dados Sensíveis
Identificar padrões que vazam dados sensíveis em PRs: PII em logs, dados sensíveis em respostas de erro, transmissão insegura de dados e superexposição de campos sensíveis em respostas de API.
Objetivos
- Identificar padrões de logging de PII em revisão de código
- Encontrar campos sensíveis superexpostos em serializadores de resposta de API
- Aplicar o pensamento de classificação de dados à revisão de código
Conceitos-chave
- PII em logs
- dados sensíveis em erros
- campos de API superexpostos
- transmissão insegura
- classificação de dados na revisão de PR
Segredos e Credenciais Codificados em Código
Detectar segredos codificados, chaves de API, senhas e credenciais em PRs. Padrões que ferramentas de IA frequentemente produzem ao gerar código de configuração ou conexão.
Objetivos
- Identificar credenciais codificadas em revisão de código
- Reconhecer quando código gerado por IA colocou credenciais em arquivos de configuração
- Aplicar o padrão correto de remediação (variáveis de ambiente, gerenciador de segredos)
Conceitos-chave
- credenciais codificadas em código
- segredos em arquivos de configuração
- variáveis de ambiente
- padrões de gerenciador de segredos
- exposição de segredos no histórico do git
Padrões de Revisão Focada em Segurança
Conduzir revisões de código focadas em segurança: identificar vulnerabilidades de injeção, falhas de autenticação e uso incorreto de criptografia.
Objetivos
- Aplicar um checklist de revisão alinhado ao OWASP sistematicamente a um PR crítico de segurança
- Identificar padrões de uso incorreto de criptografia em código que passaria em uma revisão superficial
Conceitos-chave
- padrões de SQL injection
- XSS na revisão de código
- falhas de autenticação
- uso incorreto de criptografia
- riscos de desserialização
- checklist de revisão OWASP
- gates de revisão de segurança
4 · Revisão de Arquitetura e Design6 tópicos
Princípios SOLID em PRs Reais
Identificar violações de princípios SOLID em contextos reais de revisão de código: violações de SRP (God classes), violações de OCP (switch statements massivos), violações de LSP, ISP e DIP.
Objetivos
- Identificar qual princípio SOLID está sendo violado em um dado exemplo de código
- Aplicar a verificação de SRP para identificar God classes em um PR
- Escrever uma sugestão de refatoração compatível com SOLID para uma violação comum
Conceitos-chave
- violação de SRP
- violação de OCP
- violação de LSP
- violação de ISP
- violação de DIP
- checklist de revisão SOLID
Detecção de Acoplamento e Coesão
Identificar alto acoplamento e baixa coesão em PRs: feature envy, intimidade inapropriada, cadeias de mensagens e como código gerado por IA frequentemente apresenta características ruins de acoplamento.
Objetivos
- Identificar padrões de alto acoplamento em uma revisão de código
- Aplicar o teste de coesão para avaliar se uma classe possui uma responsabilidade única e clara
- Distinguir entre acoplamento aceitável e acoplamento problemático em um PR
Conceitos-chave
- alto acoplamento
- baixa coesão
- feature envy
- intimidade inapropriada
- cadeias de mensagens
- métricas de acoplamento
Violações de Contrato de API
Revisar PRs quanto a violações de contrato de API: breaking changes, modificações incompatíveis com versões anteriores, códigos de status incorretos, formatos de erro inconsistentes e ausência de testes de contrato.
Objetivos
- Identificar breaking changes de API em um PR
- Aplicar regras de compatibilidade retroativa para avaliar modificações de API
- Escrever um comentário de revisão para um teste de contrato ausente
Conceitos-chave
- breaking changes de API
- compatibilidade retroativa
- versionamento semântico
- testes de contrato
- contratos de resposta de erro
Auditoria de Dependências em PRs
Revisar novas dependências adicionadas em PRs: vulnerabilidades de segurança, conformidade de licença, inchaço de dependências e o que ferramentas de IA tipicamente adicionam ao gerar código que necessita de bibliotecas.
Objetivos
- Identificar preocupações relacionadas a dependências ao revisar um PR
- Aplicar verificação de segurança e licença em novas dependências
- Avaliar se uma nova dependência é justificada
Conceitos-chave
- auditoria de segurança de dependências
- conformidade de licença em revisão
- inchaço de dependências
- versões fixadas
- dependências transitivas
Uso Inadequado de Padrões de Design
Identificar quando padrões de design são usados incorretamente ou desnecessariamente em PRs. Ferramentas de IA frequentemente aplicam padrões (Factory, Singleton, Strategy) quando não são necessários, aumentando a complexidade sem benefício.
Objetivos
- Identificar aplicação desnecessária de padrões em código gerado por IA
- Aplicar YAGNI para avaliar o uso de padrões em um PR
- Escrever um comentário de revisão explicando por que um padrão é inadequado em um dado contexto
Conceitos-chave
- uso excessivo de padrões
- antipadrão Singleton
- Factory desnecessário
- padrão no contexto errado
- YAGNI aplicado a padrões
Revisão de Código em Nível Arquitetural
Revisar código no nível arquitetural: avaliar padrões de design, acoplamento, coesão e manutenibilidade a longo prazo.
Objetivos
- Identificar acoplamento arquitetural em um PR que criará problemas de manutenibilidade a longo prazo
- Distinguir uso inadequado de padrão de design de flexibilidade legítima em um contexto de revisão de código
Conceitos-chave
- acoplamento arquitetural
- análise de coesão
- adequação do padrão de design
- violações de camadas
- limites de domínio
- revisão de extensibilidade
- inversão de dependência
5 · Revisão de Desempenho4 tópicos
Detecção de Consultas N+1
Identificar padrões de consultas N+1 em PRs: lazy loading em loops, eager loading ausente, oportunidades de batching. Por que código ORM gerado por IA frequentemente produz padrões N+1.
Objetivos
- Identificar padrões de consultas N+1 em código ORM durante a revisão
- Aplicar a solução de eager loading para um padrão N+1 detectado
- Explicar por que código ORM gerado por IA frequentemente produz consultas N+1
Conceitos-chave
- consultas N+1
- lazy loading em loops
- eager loading
- batching de consultas
- padrões N+1 em ORM
Padrões de Vazamento de Memória em PRs
Detectar padrões de vazamento de memória em revisão de código: recursos não fechados, acúmulo de event listeners, referências circulares e cache sem evicção. Padrões comuns em código gerado por IA.
Objetivos
- Identificar padrões de recursos não fechados em revisão de código
- Detectar acúmulo de event listeners em PRs de JavaScript/TypeScript
- Reconhecer padrões de cache sem limite que causam crescimento de memória
Conceitos-chave
- recursos não fechados
- vazamentos de event listeners
- referências circulares
- caches sem limite
- referências fracas
Erros de Sync-over-Async
Identificar bloqueio síncrono em código assíncrono durante revisão: chamadas bloqueantes em funções async, await ausente, awaits sequenciais que deveriam ser paralelos e código gerado por IA que bloqueia event loops.
Objetivos
- Identificar chamadas bloqueantes em funções async durante revisão de código
- Converter awaits sequenciais para padrões paralelos com Promise.all
- Reconhecer padrões de bloqueio de event loop em código async de Node.js/Python
Conceitos-chave
- bloqueio em código async
- await ausente
- await sequencial vs. paralelo
- bloqueio de event loop
- antipadrões de async/await
Gargalos de Escalabilidade no Contexto de PRs
Identificar gargalos de escalabilidade durante revisão de código: paginação ausente, algoritmos ineficientes, contenção de locks no banco de dados e código gerado por IA que funciona para 100 registros mas falha com 10 milhões.
Objetivos
- Identificar paginação ausente em endpoints de API durante a revisão
- Detectar complexidade algorítmica O(n²) em caminhos de código de produção
- Reconhecer padrões de contenção de locks no banco de dados em código concorrente
Conceitos-chave
- paginação ausente
- algoritmos O(n²) em caminhos de produção
- contenção de locks no banco de dados
- índices ausentes
- bloqueadores de escala horizontal
6 · Revisão de Código Gerado por IA4 tópicos
Padrões que LLMs Frequentemente Erram
Modos de falha sistemáticos em código gerado por IA: APIs alucinadas, padrões de segurança obsoletos (MD5, DES), abstrações super-engenheiradas, tratamento incorreto de casos extremos e efeitos de corte de dados de treinamento.
Objetivos
- Identificar os 5 modos de falha mais comuns de código gerado por LLMs
- Reconhecer chamadas de API alucinadas em código gerado por IA
- Detectar padrões de segurança obsoletos que ferramentas de IA frequentemente produzem
Conceitos-chave
- APIs alucinadas
- padrões de segurança obsoletos
- super-engenharia
- corte de dados de treinamento
- taxonomia de falhas de código LLM
Armadilhas de Complacência do Revisor
Como revisores caem em complacência ao revisar código gerado por IA: viés de automação, heurísticas de 'parece correto', confiança excessiva na precisão da IA e por que código de IA precisa de MAIS escrutínio em alguns aspectos do que código escrito por humanos.
Objetivos
- Identificar viés de automação no próprio comportamento de revisão
- Aplicar contramedidas específicas para evitar complacência com IA na revisão
- Explicar por que código gerado por IA justifica escrutínio diferente do que código escrito por humanos
Conceitos-chave
- viés de automação na revisão
- complacência com código de IA
- aprovação mecânica
- falácia do 'parece correto'
- calibração de confiança
Fluxo de Trabalho de Revisão Híbrido
Como estruturar um fluxo de trabalho de revisão para PRs que misturam código gerado por IA e escrito por humanos: o que verificar primeiro, como avaliar seções de IA e como documentar a revisão.
Objetivos
- Projetar um fluxo de trabalho de revisão para um PR misto de IA/humano
- Aplicar um checklist específico para IA em uma seção real de PR
- Documentar uma revisão de código de IA para atender requisitos de auditoria
Conceitos-chave
- fluxo de trabalho de PR híbrido
- identificação de seções de IA
- checklist de revisão específico para IA
- verificação de intenção
- documentação de revisão de IA
Quando Rejeitar Sugestões de IA Completamente
Critérios para rejeitar código gerado por IA completamente em vez de refatorá-lo: quando a IA entendeu fundamentalmente errado o requisito, quando a abordagem é arquiteturalmente incorreta e quando corrigir o código levaria mais tempo do que escrevê-lo corretamente.
Objetivos
- Aplicar o framework de decisão de rejeição vs. refatoração a um PR de IA
- Identificar quando uma sugestão de IA entendeu fundamentalmente errado o requisito
- Escrever um comentário de rejeição de revisão que seja claro e não confrontacional
Conceitos-chave
- critérios de rejeição de código de IA
- entendimento fundamentalmente errado
- incompatibilidade arquitetural
- custo de corrigir vs. reescrever
- decisão de rejeição vs. refatoração
Níveis: Júnior, Pleno, Sênior e Especialista
Explique com suas palavras
Corrigido por IA · sem cadastro · 1 perguntaSem alternativas para chutar: você escreve, a IA corrige com a rubrica do tópico e diz em que nível sua resposta está.
Já estuda Revisão de Código?
A avaliação mede tópico por tópico, e o plano pula o que você já sabe.
Aberto para ler. A conta só é necessária para ser medido.
Perguntas frequentes
Por onde começar a estudar Revisão de Código?
Comece por Fundamentos de Revisão: O que Torna uma Revisão Eficaz, Disciplina de Fluxo de Trabalho de PR e Feedback que Muda Comportamento. O mapa ordena os tópicos pelo que depende de quê, então cada um prepara o seguinte.
Quanto tempo leva uma avaliação completa de Revisão de Código?
Uma avaliação completa desta trilha leva cerca de 45 minutos. O tempo de estudo depende de onde você começa; o diagnóstico mostra quais tópicos você pode pular.
Preciso de conta para usar esta página?
Não. O mapa, os objetivos e os conceitos-chave são abertos. A conta só é necessária para ser medido, ver seu gap por tópico e receber um plano.