Tech talkrubocop

443 visualizações

Publicada em

Slides da apresentação ocorrida em: https://www.eventials.com/locaweb/vantagens-e-desvantagens-do-rubocop/

Publicada em: Tecnologia
0 comentários
0 gostaram
Estatísticas
Notas
  • Seja o primeiro a comentar

  • Seja a primeira pessoa a gostar disto

Sem downloads
Visualizações
Visualizações totais
443
No SlideShare
0
A partir de incorporações
0
Número de incorporações
41
Ações
Compartilhamentos
0
Downloads
2
Comentários
0
Gostaram
0
Incorporações 0
Nenhuma incorporação

Nenhuma nota no slide

Tech talkrubocop

  1. 1. Code Review + Rubocop Ferramentas, mentalidade e evolução do processo
  2. 2. lucas.uyezu@locaweb.com.br Lucas Uyezu Dedicado -> IaaS -> Eng. Produto
  3. 3. Motivadores
  4. 4. ● Diluir conhecimento técnico e de negócios ● Rubberduck debugging ● 1 gem, técnica ou manha explicada num MR ensina a todos
  5. 5. Rubberduck debugging https://en.wikipedia.org/wiki/Rubber_duck_debugging
  6. 6. Rubberduck debugging
  7. 7. Evolução
  8. 8. 1o. nível
  9. 9. Primeiros code reviews focaram em: ● tabs ao invés de espaços ● alinhamento ● if ao invés de unless
  10. 10. Não há impacto/valor real no produto
  11. 11. 2o. nível
  12. 12. Com o tempo, passamos naturalmente a focar em: ● sanity check ● arquitetura ● efeitos colaterais ● performance ● segurança http://blog.fogcreek.com/effective-code-reviews-9-tips-from-a-converted-skeptic/
  13. 13. Arquitetura
  14. 14. Performance
  15. 15. Segurança
  16. 16. https://github.com/bbatsov/rubocop
  17. 17. 4 tipos principais de cops
  18. 18. LINT Possíveis erros e más práticas: ● useless_assignment ● debugger/pry
  19. 19. METRIC Métricas (configuráveis) para se aplicar ao código: ● Métrica ABC ● Complexidade Perceptível
  20. 20. http://c2.com/cgi/wiki?AbcMetric
  21. 21. RAILS Cops exclusivo para RoR: ● delegate ● scope_args: scopes que não estão encapsulados em procs/lambdas
  22. 22. scope_args
  23. 23. scope_args
  24. 24. Style Cops de estilo (duh) ● alinhamento de hash com n linhas ● Indentação
  25. 25. Plugins para Vim, Emacs, Sublime & TextMate
  26. 26. ● Todos os projetos usam o mesmo .rubocop. yml ● Antes do commit, ele passa o rubocop nos arquivos do diff. ● Se tiver erros, não rola commit.
  27. 27. Resultados (Após 1+ ano)
  28. 28. ● Conhecimento difundido: quase não existem áreas em IaaS com 'pai' ● Cloud+Dedicado+Load Balancer + Becape + Painel de IaaS + Client VLAN: 9 PRBs + 3 frozen
  29. 29. Moral da história
  30. 30. Muita gente ocupada, atribuir um Deadline ao MR e seguir em frente
  31. 31. Projetos antigos
  32. 32. rubocop -lR
  33. 33. Antes do "pente-fino"
  34. 34. Não seja xiita (rubocop não passava no nosso rubocop.yml)
  35. 35. Alarmar é mais importante do que passar tudo e ganhar estrela de bom menino
  36. 36. Dúvidas?
  37. 37. Obrigado!

×