Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Socializando ao redor do código e evitando o he...

Socializando ao redor do código e evitando o heroísmo

Apresentação que fiz durante um evento interno sobre tecnologia promovido pela Hi Platform em 2022.

Marcelo Palladino

December 07, 2022
Tweet

More Decks by Marcelo Palladino

Other Decks in Technology

Transcript

  1. © 2022, Amazon Web Services, Inc. or its affiliates. All

    rights reserved. Socializando ao redor do código e evitando o heroísmo Marcelo Palladino 8x AWS Certified | AWS Community Hero Senior Software Engineer Nubank
  2. © 2022, Amazon Web Services, Inc. or its affiliates. All

    rights reserved. Premissas • Cada repositório possui os seus “donos(as)” • O PR deve ser atribuído automaticamente a uma pessoa que vai realizar a revisão • Deve ser impossível realizar alterações direto nos branchs que vão para produção
  3. © 2022, Amazon Web Services, Inc. or its affiliates. All

    rights reserved. Visão geral sobre pull requests
  4. © 2022, Amazon Web Services, Inc. or its affiliates. All

    rights reserved. O que é um pull request? Pull request é uma ferramenta para revisar uma contribuição de código em uma base de código compartilhada antes de mesclá-la em produção
  5. © 2022, Amazon Web Services, Inc. or its affiliates. All

    rights reserved. Como o pull request funciona? • Crie um branch no código fonte com base na versão que está em produção (normalmente main) • Implemente as suas alterações neste branch • Crie um pull request solicitando a mescla do seu branch para a branch main • Peça revisão de código aos seus pares • Após a aprovação, mescle suas alterações para o branch main
  6. © 2022, Amazon Web Services, Inc. or its affiliates. All

    rights reserved. Por que fazer pull requests? Pull requests são a fundação da revisão de código. Revisões de código são essenciais durante o desenvolvimento de software por uma série de razões: • Minimizar riscos: Ter múltiplas pessoas olhando o código aumenta a chance de descobrir problemas mais cedo. • Melhorar qualidade e desempenho: Ter pessoas com diferentes habilidades e senioridade olhando o código contribui para que a solução final seja melhor. • Compartilhamento de conhecimento: Permite que as pessoas aprendam diferentes técnicas e as melhores práticas com base nas revisões de quem sabe mais. • Design consistente: Permite que todo time esteja alinhado com o design da solução.
  7. © 2022, Amazon Web Services, Inc. or its affiliates. All

    rights reserved. Guia para criar PR
  8. © 2022, Amazon Web Services, Inc. or its affiliates. All

    rights reserved. Crie PR pequenos • Ter PR pequenos é o primeiro caminho para diminuir o tempo de revisão. • Não crie tarefas como “implementar a coisa toda no serviço x”, “Fazer”, “Testar”, “Corrigir”. • Tente seguir o princípio da responsabilidade única. Cada PR deve ser responsável por uma tarefa pequena. • É fácil criar PRs grandes. É difícil criar pequenos. Desafie-se a criar PRs pequenos.
  9. © 2022, Amazon Web Services, Inc. or its affiliates. All

    rights reserved. Escreva descrições e títulos úteis Imagine que a pessoa que vai revisar o código não tem contexto algum sobre o que está acontecendo e que ela deve ser capaz de entender as alterações. • O título deve ser suficiente para entender o que está sendo alterado. • Escreva descrições úteis: ◦ Descreva o que está sendo alterado ◦ Explique porque o PR existe ◦ Torne claro como será feito, especialmente os efeitos colaterais
  10. © 2022, Amazon Web Services, Inc. or its affiliates. All

    rights reserved. Adicione comentários ao PR para guiar a pessoa que fará a revisão Adicionar comentários ao seu próprio PR é uma ótima forma de fazer uma revisão e descobrir possíveis problemas antes dos seus pares. É importante notar que comentários em PRs não devem ser usados para explicar o código. Se você sentir que está explicando o código, provavelmente isso é sinal que você deveria tornar o código mais fácil de entender.
  11. © 2022, Amazon Web Services, Inc. or its affiliates. All

    rights reserved. Por que eu deveria me preocupar em melhorar meu PR? Concluímos que PRs são uma ferramenta essencial durante o processo de desenvolvimento de software. Melhorar PRs traz benefícios a este processo: • Torna a revisão mais rápida • Melhora a mitigação de riscos • Otimiza o compartilhamento de conhecimento
  12. © 2022, Amazon Web Services, Inc. or its affiliates. All

    rights reserved. Guia para revisar um PR
  13. © 2022, Amazon Web Services, Inc. or its affiliates. All

    rights reserved. Respeite o tempo das pessoas Seu par pode estar bloqueado e esperando pela sua revisão. Priorize a revisão de código antes de iniciar uma nova tarefa. Seja grato(a) pelo trabalho da pessoa que está submetendo a contribuição.
  14. © 2022, Amazon Web Services, Inc. or its affiliates. All

    rights reserved. Forneça feedbacks construtivos Mesmo que você esteja revisando código, lembre-se que há humanos por trás do código. Tome cuidado com como você vai lidar com as emoções das pessoas, pois você estará falando sobre o seu trabalho. • Linguagem positiva ◦ Ao invés de: Isto está totalmente errado! Não use “_” antes dos nomes de métodos públicos. ◦ Você pode dizer: Eu sinto que estamos usando um padrão diferente do que usamos normalmente. Nestes casos usamos PascalCase (link), conforme pode ser visto aqui (link). • Compartilhamento de conhecimento ◦ Tenha certeza que você está otimizando o potencial de compartilhamento de conhecimento ao usar o PR para ensinar e aprender • Respeito às preferências ◦ Há uma linha tênue entre objetividade e subjetividade. Tenha certeza de não estar enviesado(a) pela forma que você faria uma determinada coisa ao fornecer um PR.
  15. © 2022, Amazon Web Services, Inc. or its affiliates. All

    rights reserved. Converse com a pessoa que submeteu o PR Mesmo seguindo as melhores práticas para criação e revisão de PRs, ainda é OK ter dúvidas acerca do propósito de uma alteração. Não hesite em fazer questões diretamente para a pessoa que submeteu o PR.
  16. © 2022, Amazon Web Services, Inc. or its affiliates. All

    rights reserved. Outras práticas para socializar ao redor do código
  17. © 2022, Amazon Web Services, Inc. or its affiliates. All

    rights reserved. MOB programming • Defina uma tarefa pequena • Cada pessoa vai passar uma certa quantidade de tempo no teclado (http://mobtimer.zoeetrope.com/) • As outras pessoas participam ativamente • Dívidas técnicas podem ser uma boa fonte de backlog
  18. © 2022, Amazon Web Services, Inc. or its affiliates. All

    rights reserved. Tempo para melhorias contínuas • Defina um tempo recorrente para que o time defina como quer utilizar • Crie um backlog • Permita que as pessoas submetam temas que elas desejam compartilhar