Skip to content

Latest commit

 

History

History
66 lines (54 loc) · 4.87 KB

README.md

File metadata and controls

66 lines (54 loc) · 4.87 KB

Guia de boas práticas para revisão de código

Guia de boas práticas para revisão de código. Inspirado, entre outros, no guia da thoughtbot.

Benefícios

  • Antecipação de bugs
  • Maior manutenibilidade do código
  • Legibilidade do código
  • Compartilhamento de conhecimento
    • Tanto em relação à feature que está sendo implementada quanto às técnicas que foram usadas

Dicas gerais para todos

  • Aceite que muitas decisões de programação são opiniões. Discuta as opções, as preferências e cheguem em um consenso rapidamente.
  • Questione, não exija. ("O que você pensa sobre chamar esse campo de user_id?")
  • Se você não entender o que está lendo, pergunte. ("Não entendi, você poderia explicar?").
  • Evite palavras que sugiram culpa ou responsabilidade pelo código. ("seu", "meu", "não é meu").
  • Não seja grosseiro ou ofensivo.
  • Seja explícito e claro. Nem sempre as pessoas entenderão o que você quis dizer.
  • Seja descritivo sobre as suas intenções. Descreva as mudanças propostas e faça comentários claros.
  • Forneça referências para ajudar a esclarecer as decisões tomadas. ("Acredito que seja melhor alterar a ordem desses middlewares (https://docs.djangoproject.com/en/1.8/topics/http/middleware/#hooks-and-application-order)")
  • Seja humilde e sincero. ("Não tenho certeza, vou conferir").
  • Não use hipérbole. ("sempre", "nunca", "interminavelmente", "nenhum").
  • Não seja sarcástico.
  • Não force a barra. Se emojis, gifs ou piadinhas não fazem o estilo, não tente forçar. Caso contrário, use-os com bom senso.
  • Se a discussão não avançar, converse pessoalmente. Coloque nos pull requests um resumo do que foi conversado e decidido.
  • Siga as guidelines existentes. Siga a ordem de importância do mais próximo ao mais geral (equipe -> projeto -> organização).

Revisando código

  • Antes de revisar, entenda porque o código escrito é necessário (_bug, feature ou refactor).
  • Verifique se o código faz o que foi proposto na descrição do pull request.
  • Verifique se o pull request possui um link a algum ticket ou issue. Verifique também se o código resolve o problema que está no ticket ou issue.
  • Comente quaisquer problemas/questões que forem encontradas, por mais simples ou bobos que pareçam. Isso incentiva outros desenvolvedores a fazerem o mesmo.
  • Comente os pontos que você discorda (ou mesmo os que você concorda fortemente).
  • Identifique formas de simplificar o código e ainda assim continuar resolvendo o problema.
  • Se as discussões se tornarem muito filosóficas ou acadêmicas, move a discussão para outro lugar (talvez uma sexta-feira em um bar). Nesse meio tempo, cheguem a um consenso sobre a solução.
  • Ofereça alternativas aos problemas encontrados. ("O que você acha de usar um validador próprio nessa classe?").
  • Tente entender a perspectiva do autor.
  • Use o bom senso.
  • Comente no pull request com um 👍 quando tiver finalizado.

Tendo seu código revisado

  • Certifique-se que seu código está de acordo com as guidelines do projeto (geralmente especificadas no arquivo CONTRIBUTING.md), caso não esteja, proponha melhorias nas guidelines, não force o aceite do código caso não esteja de acordo.
  • Seja grato pelas sugestões dadas. ("Boa, vou alterar" ou mesmo um simples 👍).
  • Não tome a revisão como pessoal. A revisão é sobre o código, não sobre você.
  • Explique porque o código existe. Dê os motivos para as decisões tomadas e discuta as soluções e sugestões.
  • Extraia mudanças, refatorações e dívidas técnicas grandes em futuros tickets ou issues.
  • Coloque links para tickets ou issues relacionados.
  • Faça commits separadamente se baseando nas soluções obtidas através da revisão. Não faça nenhum squash até que o pull request esteja revisado e pronto para merge.
  • Tente entender a perspectiva do revisor.
  • Responda a todos os comentários.
  • Só faça merge após a revisão e após as ferramentas de CI (TravisCI, por exemplo) sinalizarem que está tudo ok com o pull request.
  • Faça merge quando houver confiança sobre o código e o seu impacto no projeto.

Referências

Recomendamos fortemente a leitura dos artigos de referência.