Ruby Sadism - Ryan Davis

4.958 visualizações

Publicada em

Versão em português da apresentação "Hurting Code for Fun and Profit" que o Ryan Davis deu na GoRuCo 2008.

0 comentários
7 gostaram
Estatísticas
Notas
  • Seja o primeiro a comentar

Sem downloads
Visualizações
Visualizações totais
4.958
No SlideShare
0
A partir de incorporações
0
Número de incorporações
879
Ações
Compartilhamentos
0
Downloads
88
Comentários
0
Gostaram
7
Incorporações 0
Nenhuma incorporação

Nenhuma nota no slide

Ruby Sadism - Ryan Davis

  1. 1. Machucando Código por Diversão e Lucro Ryan Davis, Seattle.rb www.akitaonrails.com (Fabio Akita) goruco2008.confreaks.com/04_davis.html GoRuCo 2008
  2. 2. Machucando Código por Diversão e Lucro Ryan Davis, Seattle.rb Machucando Código por Diversão e Lucro GoRuCo 2008
  3. 3. Machucando Código por Diversão e Lucro Ryan Davis, Seattle.rb Criando Expectativa • 142 slides em 30 minutos. • Isto será rápido. • Não é a forma como normalmente apresento. • É mais sobre melhorar você do que o código. GoRuCo 2008
  4. 4. Machucando Código por Diversão e Lucro Ryan Davis, Seattle.rb Uma História GoRuCo 2008
  5. 5. Machucando Código por Diversão e Lucro Ryan Davis, Seattle.rb GoRuCo 2008
  6. 6. Machucando Código por Diversão e Lucro Ryan Davis, Seattle.rb Código Legado • Qualquer código que você não escreveu é legado. • Toda empresa tem tonelada de legados. • Mesmo startups. GoRuCo 2008
  7. 7. Machucando Código por Diversão e Lucro Ryan Davis, Seattle.rb GoRuCo 2008
  8. 8. Machucando Código por Diversão e Lucro Ryan Davis, Seattle.rb GoRuCo 2008
  9. 9. Machucando Código por Diversão e Lucro Ryan Davis, Seattle.rb GoRuCo 2008
  10. 10. Machucando Código por Diversão e Lucro Ryan Davis, Seattle.rb GoRuCo 2008
  11. 11. Machucando Código por Diversão e Lucro Ryan Davis, Seattle.rb GoRuCo 2008
  12. 12. Machucando Código por Diversão e Lucro Ryan Davis, Seattle.rb GoRuCo 2008
  13. 13. Machucando Código por Diversão e Lucro Ryan Davis, Seattle.rb Ou: GoRuCo 2008
  14. 14. Machucando Código por Diversão e Lucro Ryan Davis, Seattle.rb New Place, Inc. GoRuCo 2008
  15. 15. Machucando Código por Diversão e Lucro Ryan Davis, Seattle.rb GoRuCo 2008
  16. 16. Machucando Código por Diversão e Lucro Ryan Davis, Seattle.rb GoRuCo 2008
  17. 17. Machucando Código por Diversão e Lucro Ryan Davis, Seattle.rb GoRuCo 2008
  18. 18. Machucando Código por Diversão e Lucro Ryan Davis, Seattle.rb @#$%!!! GoRuCo 2008
  19. 19. Machucando Código por Diversão e Lucro Ryan Davis, Seattle.rb K! AC CR GoRuCo 2008
  20. 20. Machucando Código por Diversão e Lucro Ryan Davis, Seattle.rb M! A BL GoRuCo 2008
  21. 21. Machucando Código por Diversão e Lucro Ryan Davis, Seattle.rb BAM!!! ! K AC SN R ICK C ! GoRuCo 2008
  22. 22. Machucando Código por Diversão e Lucro Ryan Davis, Seattle.rb YAY! GoRuCo 2008
  23. 23. Machucando Código por Diversão e Lucro Ryan Davis, Seattle.rb Moral desta história? GoRuCo 2008
  24. 24. Machucando Código por Diversão e Lucro Ryan Davis, Seattle.rb Pessoas vão te incriminar se machucá-las GoRuCo 2008
  25. 25. Machucando Código por Diversão e Lucro Ryan Davis, Seattle.rb Código não. GoRuCo 2008
  26. 26. Machucando Código por Diversão e Lucro Ryan Davis, Seattle.rb Esta apresentação é um evento de “saída” para mim GoRuCo 2008
  27. 27. Machucando Código por Diversão e Lucro Ryan Davis, Seattle.rb Meu nome é Ryan, e… GoRuCo 2008
  28. 28. Machucando Código por Diversão e Lucro Ryan Davis, Seattle.rb …adoro machucar código… GoRuCo 2008
  29. 29. Machucando Código por Diversão e Lucro Ryan Davis, Seattle.rb …e estou Bem! GoRuCo 2008
  30. 30. Machucando Código por Diversão e Lucro Ryan Davis, Seattle.rb Por que machucar código? • Machucar código é divertido! • Pode te tornar um programador e testador melhor. • Pode tornar o código mais limpo, claro e fácil de testar, escrever e manter ... até pode torná-lo mais rápido. GoRuCo 2008
  31. 31. Machucando Código por Diversão e Lucro Ryan Davis, Seattle.rb Sadismo Ruby: nome A tendência de derivar prazer infringindo dor ao software. Esp. mal software. GoRuCo 2008
  32. 32. Machucando Código por Diversão e Lucro Ryan Davis, Seattle.rb É apenas outra maneira de enxergar desenvolvimento de software GoRuCo 2008
  33. 33. Machucando Código por Diversão e Lucro Ryan Davis, Seattle.rb Eu dou risada toda vez que acho código que posso punir. GoRuCo 2008
  34. 34. Machucando Código por Diversão e Lucro Ryan Davis, Seattle.rb Código com complexidade que conheço, eu posso resolver. GoRuCo 2008
  35. 35. Machucando Código por Diversão e Lucro Ryan Davis, Seattle.rb É sobre mudar sua perspectiva sobre código ruim. GoRuCo 2008
  36. 36. Machucando Código por Diversão e Lucro Ryan Davis, Seattle.rb Torne divertido descobrir e corrigir e fará isso mais vezes. GoRuCo 2008
  37. 37. Machucando Código por Diversão e Lucro Ryan Davis, Seattle.rb Sadismo Ruby vêm em várias formas: GoRuCo 2008
  38. 38. Machucando Código por Diversão e Lucro Ryan Davis, Seattle.rb Matar um bug escrevendo um teste. GoRuCo 2008
  39. 39. Machucando Código por Diversão e Lucro Ryan Davis, Seattle.rb Lendo código esperto demais e se coçar para quebrá-lo em pedaços. GoRuCo 2008
  40. 40. Machucando Código por Diversão e Lucro Ryan Davis, Seattle.rb Explodindo mal design, tornando-o mais rápido com menos código. GoRuCo 2008
  41. 41. Machucando Código por Diversão e Lucro Ryan Davis, Seattle.rb e muito, muito mais. GoRuCo 2008
  42. 42. Machucando Código por Diversão e Lucro Ryan Davis, Seattle.rb Um Exemplo • Um projeto rails de mídia social de 2 meses foi arrastado por 12 meses. • Ligando ActiveRecord a WebDAV. Emulando o banco de dados inteiro via propriedades WebDAV. Desnecessariamente complexo e lento! • Então, arranquei o WebDAV num fim de semana. GoRuCo 2008
  43. 43. Machucando Código por Diversão e Lucro Ryan Davis, Seattle.rb Antes: Terminado em 74.77783 segundos. 622 testes, 2502 asserções Depois: Terminado em 5.258559 segundos. 330 testes, 961 asserções GoRuCo 2008
  44. 44. Machucando Código por Diversão e Lucro Ryan Davis, Seattle.rb Tempo de Teste em 6 Meses DAV Post DAV GoRuCo 2008
  45. 45. Machucando Código por Diversão e Lucro Ryan Davis, Seattle.rb Por alguma Razão as pessoas amam complexidade. GoRuCo 2008
  46. 46. Machucando Código por Diversão e Lucro Ryan Davis, Seattle.rb Elas festejam nisso. GoRuCo 2008
  47. 47. Machucando Código por Diversão e Lucro Ryan Davis, Seattle.rb A comunidade Ruby não se parece única nesse sentido. GoRuCo 2008
  48. 48. Machucando Código por Diversão e Lucro Ryan Davis, Seattle.rb Eu não sou uma dessas pessoas. GoRuCo 2008
  49. 49. Machucando Código por Diversão e Lucro Ryan Davis, Seattle.rb Mas, eu costumava ser uma delas. GoRuCo 2008
  50. 50. Machucando Código por Diversão e Lucro Ryan Davis, Seattle.rb Eu melhorei... GoRuCo 2008
  51. 51. Machucando Código por Diversão e Lucro Ryan Davis, Seattle.rb ...e você também pode melhorar. GoRuCo 2008
  52. 52. Machucando Código por Diversão e Lucro Ryan Davis, Seattle.rb Minha História de Programação 10 9 8 7 6 Fu/Style Units Ruby Sadism/ 5 Asceticism Perl/ 4 Ruby Python/ UNIX/ etc Smalltalk/ 3 OO Epiphany Pascal 2 C++ 1 Logo C BASIC 0 1984 1986 1988 1990 1992 1994 1996 1998 2000 2002 2004 2007 Year GoRuCo 2008
  53. 53. Machucando Código por Diversão e Lucro Ryan Davis, Seattle.rb Ascetismo Ruby: noun Caracterizado por ou sugerindo a prática de severa auto-disciplina & abstenção de todas as formas de indulgência. GoRuCo 2008
  54. 54. Machucando Código por Diversão e Lucro Ryan Davis, Seattle.rb Flageladores GoRuCo 2008
  55. 55. Machucando Código por Diversão e Lucro Ryan Davis, Seattle.rb Testar Antes é uma forma de auto- disciplina. GoRuCo 2008
  56. 56. Machucando Código por Diversão e Lucro Ryan Davis, Seattle.rb YAGNI é uma forma de abstenção. GoRuCo 2008
  57. 57. Machucando Código por Diversão e Lucro Ryan Davis, Seattle.rb Ascéticos: Vida Real™ Ruby Evite possessões Evite complexidade materiais. extra. Auto-disciplina para Auto-disciplina para chegar à alta melhor entender a si e espiritualidade. a mente do código. GoRuCo 2008
  58. 58. Machucando Código por Diversão e Lucro Ryan Davis, Seattle.rb O que é indulgência? • Código desnecessariamente complexo e que tenta se esperto demais. • Código ou design que você não imediatamente precise. Os “e se”. • Débito Técnico. GoRuCo 2008
  59. 59. Machucando Código por Diversão e Lucro Ryan Davis, Seattle.rb Débito Técnico • Pular design é como pegar dinheiro emprestado. • Refatoramento é como o princípio de pagar de volta. • Juros são pagos com tempo gasto com complexidade. —Ward Cunningham–ComplexityAsDebt, c2.com GoRuCo 2008
  60. 60. Machucando Código por Diversão e Lucro Ryan Davis, Seattle.rb 80:20 ou Princípio de Pareto • Na maioria dos sistemas existe desequilíbrio entre produtores/consumidores, dinheiro/pessoas, etc. • 85+% da terra é ocupada por 5% das pessoas. • 80% do tempo é gasto com 20% do código. • Use essa tendência para focar esforços de forma eficiente e objetiva. GoRuCo 2008
  61. 61. Machucando Código por Diversão e Lucro Ryan Davis, Seattle.rb Sinal : Barulho • Normalmente relacionado a 80:20. • Foque no que é importante. • Minimize interrupções e tarefas irrelevantes para ter mais tarefas reais concluídas. • Como meu gerente favorito gosta de falar: • Grandes Crocodilos, Pequenos Crocodilos, Pântano. GoRuCo 2008
  62. 62. Machucando Código por Diversão e Lucro Ryan Davis, Seattle.rb Em outras palavras: “A obrigação do desenvolvedor é garantir que o código sendo escrito mostre da maneira mais clara sobre como a solução foi entendida no momento da sua escrita.” –Ward Cunningham, c2.com GoRuCo 2008
  63. 63. Machucando Código por Diversão e Lucro Ryan Davis, Seattle.rb Um Exemplo • test/unit & rspec são reis de testes/specs mas são realmente grandes. • O mspec de Brian Ford (do rubinius) é mais novo, pequeno, & compatível com rspec. • O bacon de Christian Neukirchen & test/spec são alternativas minimalistas de spec. • miniunit vai mais fundo: test+spec+mock < 1kloc. GoRuCo 2008
  64. 64. Machucando Código por Diversão e Lucro Ryan Davis, Seattle.rb lib test/spec 15,000 12,862 11,250 7,500 7,785 6,476 3,750 3,571 2,763 2,464 0 test/unit mspec rspec GoRuCo 2008
  65. 65. Machucando Código por Diversão e Lucro Ryan Davis, Seattle.rb lib test/spec 15,000 11,250 7,500 3,750 1,115 833 0 578 395 310 298 bacon miniunit test/spec GoRuCo 2008
  66. 66. Machucando Código por Diversão e Lucro Ryan Davis, Seattle.rb lib test/spec 1,200 1,115 900 833 600 578 395 300 310 298 0 bacon miniunit test/spec GoRuCo 2008
  67. 67. Machucando Código por Diversão e Lucro Ryan Davis, Seattle.rb Acredito que sadismo e ascetismo Ruby são muito poderosos. GoRuCo 2008
  68. 68. Machucando Código por Diversão e Lucro Ryan Davis, Seattle.rb Mas chegar lá não é fácil. GoRuCo 2008
  69. 69. Machucando Código por Diversão e Lucro Ryan Davis, Seattle.rb Requer entender a si mesmo tão bem quanto se entende o código. GoRuCo 2008
  70. 70. Machucando Código por Diversão e Lucro Ryan Davis, Seattle.rb Desenvolvimento Orientado a Introspecção GoRuCo 2008
  71. 71. Machucando Código por Diversão e Lucro Ryan Davis, Seattle.rb Como faço melhor? Como não vi aquele bug? Onde estou perdendo em clareza? Como posso usar melhor minhas ferramentas? Onde desperdiço meu tempo? Como me foco melhor? Onde estou me segurando? estou errado? GoRuCo 2008
  72. 72. Machucando Código por Diversão e Lucro Ryan Davis, Seattle.rb Faça essas perguntas constantemente! GoRuCo 2008
  73. 73. Machucando Código por Diversão e Lucro Ryan Davis, Seattle.rb Auto-Melhoria: Leia! • 1 livro nerd / mês = 12× média da indústria. • c2.com & outros wikis c/ pessoas espertas. • Fique tão próximo dos experts quanto posssível. • Alguns blogs espertos. GoRuCo 2008
  74. 74. Machucando Código por Diversão e Lucro Ryan Davis, Seattle.rb Ignorância NÃO é boa “Pessoas que fazem coisas de mal jeito, [...] normalmente são altamente confiantes em suas habilidades, de fato, mais do que pessoas que fazem as coisas direito.” Erica Goode, NYT reportando em Dr. David Dunning, Cornell GoRuCo 2008
  75. 75. Machucando Código por Diversão e Lucro Ryan Davis, Seattle.rb Auto-Melhoria: Foco! • Fique longe de: • WTF, coding horror, forums idiotas. • Um bilhão de blogs em seu leitor de feed. • Toneladas de mailing lists super-ativas. • Trabalhe no que é realmente importante. GoRuCo 2008
  76. 76. Machucando Código por Diversão e Lucro Ryan Davis, Seattle.rb Urgente Não Urgente Prevenção Pressão Planejamento Pró-ativo Importante Apagar Incêndios Implementando Sistemas Projetos orientados a datas Prevenção de Cansaço Não Interrupções TV Apagar alguns Incêndios Youtube Importante Maioria das Reuniões Outras perdas de tempo –7 Habits of Highly Effective People–Covey GoRuCo 2008
  77. 77. Machucando Código por Diversão e Lucro Ryan Davis, Seattle.rb Auto-Melhoria: Cresça! • Aprenda uma nova linguagem por ano. • Aprenda suas ferramentas, a fundo. Agora mais a fundo. • Examine seus hábitos de desenvolvimento. • Codifique com outras pessoas. • Estude alguma coisa não orientada a código. • Pessoas de multi-disciplinares sempre são mais interessante e codificam melhor. GoRuCo 2008
  78. 78. Machucando Código por Diversão e Lucro Ryan Davis, Seattle.rb Auto-Melhoria: Empurre! Escreva mais código. Muito. Quantidade > Qualidade (algumas vezes) GoRuCo 2008
  79. 79. Machucando Código por Diversão e Lucro Ryan Davis, Seattle.rb Desafio dos Potes • Um professor de potes disse à metade da classe que suas notas dependeriam de uma única peça que eles produziriam no final do curso. • Ele disse à outra metade que suas notas seriam baseadas no volume de todas as peças criadas. • Qual metade você acha que produziu melhores peças ao final? GoRuCo 2008
  80. 80. Machucando Código por Diversão e Lucro Ryan Davis, Seattle.rb “A função da grande maioria dos trabalhos artísticos é simplesmente lhe ensinar como fazer a pequena fração de sua arte que levanta vôo. Uma das lições básicas e difíceis que todo artista precisa aprender é que mesmo as peças fracassadas são essenciais.” —Art & Fear—Bayles & Orland GoRuCo 2008
  81. 81. Machucando Código por Diversão e Lucro Ryan Davis, Seattle.rb Auto-melhoria: Pressione, mais! • Seja competitivo. Competição é prática. • Desafie o Status Quo. • Eles estão quase sempre errados. • (Mesmo quando estão certos) GoRuCo 2008
  82. 82. Machucando Código por Diversão e Lucro Ryan Davis, Seattle.rb Não seja uma ovelha! GoRuCo 2008
  83. 83. Machucando Código por Diversão e Lucro Ryan Davis, Seattle.rb Auto-melhoria: Sinta! • Deixe as opiniões fluírem. Tenha opinião! • Mas não as deixe mandar em você. • zentest, flog, & heckledesenvolvimento. amor por todos vieram do boas ferramentas de • vlad & image_science vieram do ódio de código impossivelmente complexo. • Eu gastei 10 hrs debugando UM problema de capistrano antes de escrever vlad. GoRuCo 2008
  84. 84. Machucando Código por Diversão e Lucro Ryan Davis, Seattle.rb Auto-melhoria: Feedback • Use feedback: • Peça por ele. • Ouça ele. • Retroalimente o feedback. GoRuCo 2008
  85. 85. Machucando Código por Diversão e Lucro Ryan Davis, Seattle.rb Auto-melhoria: Feedback • Use feedback: • Peça por ele. • Ouça ele. • Retroalimente o feedback. GoRuCo 2008
  86. 86. Machucando Código por Diversão e Lucro Ryan Davis, Seattle.rb Encontre seu balanço GoRuCo 2008
  87. 87. Machucando Código por Diversão e Lucro Ryan Davis, Seattle.rb Ferramentas que podem ajudar GoRuCo 2008
  88. 88. Machucando Código por Diversão e Lucro Ryan Davis, Seattle.rb autotest • Você provavelmente não tinha percebido que usar autotest é uma forma de sadismo e ascetismo ruby, não é? • Pobre cara do Doom ... GoRuCo 2008
  89. 89. Machucando Código por Diversão e Lucro Ryan Davis, Seattle.rb autotest • Você provavelmente não tinha percebido que usar autotest é uma forma de sadismo e ascetismo ruby, não é? • Pobre cara do Doom ... GoRuCo 2008
  90. 90. Machucando Código por Diversão e Lucro Ryan Davis, Seattle.rb Flog class Test • Relator de complexidade def blah # 11.2 = a = eval quot;1+1quot; # 1.2 + 6.0 + if a == 2 then # 1.2 + 1.2 + 0.4 + baseado em métricas ABC. puts quot;yayquot; # 1.2 end • Nota Flog é correlato com end end complexidade de teste. Test#blah: (11.2) 6.0: eval • Quanto maior a nota flog, 1.2: branch 1.2: == 1.2: puts mais difícil de ter um teste 1.2: assignment completo (& bom). 0.4: lit_fixnum GoRuCo 2008
  91. 91. Machucando Código por Diversão e Lucro Ryan Davis, Seattle.rb Complexidade Desnecessária 1 if MODELS.keys.inject(true) {|b, klass| b and klass.constantize.columns.map(&:name).include? association.options[:foreign_key]} then # ... end main#none: (22.9) 1 linha if(!) 7.0: to_proc_normal 3.3: assignment 3.1: branch 132 caracteres 2.0: inject 1.8: constantize 1.8: association 132 méd carac 1.6: columns 1.6: options 1.4: [] 22.9 flog 1.4: block_pass 1.4: map 1.2: include? 1.2: keys GoRuCo 2008
  92. 92. Machucando Código por Diversão e Lucro Ryan Davis, Seattle.rb Complexidade Desnecessária 2 fk = association.options[:foreign_key] if MODELS.keys.inject(true) {|b, klass| b and klass.constantize.columns.map(&:name).include? fk} then # ... end main#none: (23.5) 3 linhas 7.5: to_proc_normal 4.7: assignment 3.4: branch 144 caracteres 2.2: inject 1.9: constantize 1.7: columns 48 méd carac. 1.5: block_pass 1.5: map 1.5: association 23.5 flog 1.3: include? 1.3: keys 1.3: options 1.1: [] GoRuCo 2008
  93. 93. Machucando Código por Diversão e Lucro Ryan Davis, Seattle.rb Complexidade Desnecessária 3 fk = association.options[:foreign_key] columns = MODELS.keys.map { |key| key.constantize.columns.map(&:name) } if columns.inject(true) {|b, column| b and column.include? fk} then # ... end main#none: (22.8) 4 linhas 7.0: assignment 6.0: to_proc_normal 4.5: branch 182 caracteres 2.3: map 2.2: inject 1.6: constantize 45 méd caract 1.5: association 1.4: columns 1.3: include? 23.5 flog 1.3: options 1.3: keys 1.2: block_pass 1.1: [] GoRuCo 2008
  94. 94. Machucando Código por Diversão e Lucro Ryan Davis, Seattle.rb Complexidade Desnecessária 4 fk = association.options[:foreign_key] columns = MODELS.keys.map { |key| key.constantize.columns.map(&:name) } if columns.all? {|column| column.include? fk} then # ... end main#none: (20.8) 4 linhas 6.0: to_proc_normal 4.6: assignment 3.3: branch 165 caracteres 2.3: map 1.6: constantize 1.5: association 41 méd carac 1.4: columns 1.3: keys 1.3: options 20.8 flog 1.2: block_pass 1.2: include? 1.1: [] 1.1: all? GoRuCo 2008
  95. 95. Machucando Código por Diversão e Lucro Ryan Davis, Seattle.rb Complexidade Desnecessária 5 fk = association.options[:foreign_key] columns = MODELS.keys.map { |key| key.constantize.columns.map { |c| c.name } } if columns.all? {|column| column.include? fk} then # ... end main#none: (15.9) 4 linhas 5.9: assignment 4.5: branch 2.3: map 172 caracteres 1.6: constantize 1.5: association 1.4: columns 43 méd carac 1.3: name 1.3: options 1.3: keys 15.9 flog 1.2: include? 1.1: [] 1.1: all? GoRuCo 2008
  96. 96. Machucando Código por Diversão e Lucro Ryan Davis, Seattle.rb Complexidade Desnecessária 5 fk = association.options[:foreign_key] columns = MODELS.keys.map { |key| key.constantize.columns.map { |c| c.name } } if columns.all? {|column| column.include? fk} then # ... end main#none: (15.9) 4 linhas 5.9: assignment 4.5: branch 2.3: map 172 caracteres 1.6: constantize 1.5: association 1.4: columns 43 méd carac 1.3: name 1.3: options 1.3: keys 15.9 flog 1.2: include? 1.1: [] 1.1: all? Muito mais limpo, claro e rápido GoRuCo 2008
  97. 97. Machucando Código por Diversão e Lucro Ryan Davis, Seattle.rb Ferramentas de Cobertura São excelentes para mostrar buracos. GoRuCo 2008
  98. 98. Machucando Código por Diversão e Lucro Ryan Davis, Seattle.rb …mas… GoRuCo 2008
  99. 99. Machucando Código por Diversão e Lucro Ryan Davis, Seattle.rb De jeito nenhum significam qualidade dos testes. GoRuCo 2008
  100. 100. Machucando Código por Diversão e Lucro Ryan Davis, Seattle.rb quot;Temos 100% de coberturaquot; GoRuCo 2008
  101. 101. Machucando Código por Diversão e Lucro Ryan Davis, Seattle.rb … E daí?!? GoRuCo 2008
  102. 102. Machucando Código por Diversão e Lucro Ryan Davis, Seattle.rb Você pode ter 100% de cobertura com 0 asserções. GoRuCo 2008
  103. 103. Machucando Código por Diversão e Lucro Ryan Davis, Seattle.rb (ou, mais freqüente: más asserções) GoRuCo 2008
  104. 104. Machucando Código por Diversão e Lucro Ryan Davis, Seattle.rb Exemplo absurdo class Vida VIVA! def significado 42 100% de end cobertura! end class TestVida < Test::Unit::TestCase def test_significado real = Vida.new.significado esperado = 6 * 9 assert_equal esperado, real end end GoRuCo 2008
  105. 105. Machucando Código por Diversão e Lucro Ryan Davis, Seattle.rb O que 100% de cobertura significa então? GoRuCo 2008
  106. 106. Machucando Código por Diversão e Lucro Ryan Davis, Seattle.rb Cobertura é o Raio-X do mundo do código. GoRuCo 2008
  107. 107. Machucando Código por Diversão e Lucro Ryan Davis, Seattle.rb Raios-X são ótimas ferramentas, mas não a use quando você está sangrando. GoRuCo 2008
  108. 108. Machucando Código por Diversão e Lucro Ryan Davis, Seattle.rb Heckle • Ferramenta mais sádica que escrevi. • Muda sua implementação (em tempo real) para verificar se seus testes são bons. • Se seus testes passam depois disso, você está perdendo casos. GoRuCo 2008
  109. 109. Machucando Código por Diversão e Lucro Ryan Davis, Seattle.rb Para Repetir GoRuCo 2008
  110. 110. Machucando Código por Diversão e Lucro Ryan Davis, Seattle.rb Divirta-se machucando código ruim e você terá menos deles com o tempo. GoRuCo 2008
  111. 111. Machucando Código por Diversão e Lucro Ryan Davis, Seattle.rb Pratique severa auto- disciplina & abstenção. GoRuCo 2008
  112. 112. Machucando Código por Diversão e Lucro Ryan Davis, Seattle.rb Evite complexidade. GoRuCo 2008
  113. 113. Machucando Código por Diversão e Lucro Ryan Davis, Seattle.rb Pratique Desenvolvimento Orientado à Introspecção. GoRuCo 2008
  114. 114. Machucando Código por Diversão e Lucro Ryan Davis, Seattle.rb Conheça-te. Melhora-te. GoRuCo 2008
  115. 115. Machucando Código por Diversão e Lucro Ryan Davis, Seattle.rb Use todas as ferramentas que puder. GoRuCo 2008
  116. 116. Machucando Código por Diversão e Lucro Ryan Davis, Seattle.rb Mas use a ferramenta certa para o trabalho. GoRuCo 2008
  117. 117. Machucando Código por Diversão e Lucro Ryan Davis, Seattle.rb Tenha uma opinião & Sinta seu código GoRuCo 2008
  118. 118. Machucando Código por Diversão e Lucro Ryan Davis, Seattle.rb Para Fechar GoRuCo 2008
  119. 119. Machucando Código por Diversão e Lucro Ryan Davis, Seattle.rb Frank Herbert estava errado GoRuCo 2008
  120. 120. Machucando Código por Diversão e Lucro Ryan Davis, Seattle.rb Medo não é o assassino da mente GoRuCo 2008
  121. 121. Machucando Código por Diversão e Lucro Ryan Davis, Seattle.rb Apatia é o assassino da mente GoRuCo 2008
  122. 122. Machucando Código por Diversão e Lucro Ryan Davis, Seattle.rb Você precisa se importar pelo código GoRuCo 2008
  123. 123. Machucando Código por Diversão e Lucro Ryan Davis, Seattle.rb Ame-o GoRuCo 2008
  124. 124. Machucando Código por Diversão e Lucro Ryan Davis, Seattle.rb ou o Odeie GoRuCo 2008
  125. 125. Machucando Código por Diversão e Lucro Ryan Davis, Seattle.rb Qualquer um é melhor do que Apatia GoRuCo 2008
  126. 126. Machucando Código por Diversão e Lucro Ryan Davis, Seattle.rb Preferível ao desenvolvedor que diz GoRuCo 2008
  127. 127. Machucando Código por Diversão e Lucro Ryan Davis, Seattle.rb “Apenas sou pago para escrever código” GoRuCo 2008
  128. 128. Machucando Código por Diversão e Lucro Ryan Davis, Seattle.rb Você vai acabar tendo que manter o código deles GoRuCo 2008
  129. 129. Machucando Código por Diversão e Lucro Ryan Davis, Seattle.rb (porque eles vão embora) GoRuCo 2008
  130. 130. Machucando Código por Diversão e Lucro Ryan Davis, Seattle.rb Odiando o código deles. GoRuCo 2008
  131. 131. Machucando Código por Diversão e Lucro Ryan Davis, Seattle.rb O impacto deles no projeto. GoRuCo 2008
  132. 132. Machucando Código por Diversão e Lucro Ryan Davis, Seattle.rb Na produtividade e moral da equipe. GoRuCo 2008
  133. 133. Machucando Código por Diversão e Lucro Ryan Davis, Seattle.rb Portanto, Ame o código… GoRuCo 2008
  134. 134. Machucando Código por Diversão e Lucro Ryan Davis, Seattle.rb …ou o Odeie. GoRuCo 2008
  135. 135. Machucando Código por Diversão e Lucro Ryan Davis, Seattle.rb Se você o amar: GoRuCo 2008
  136. 136. Machucando Código por Diversão e Lucro Ryan Davis, Seattle.rb Cuide dele. GoRuCo 2008
  137. 137. Machucando Código por Diversão e Lucro Ryan Davis, Seattle.rb Faça o crescer. GoRuCo 2008
  138. 138. Machucando Código por Diversão e Lucro Ryan Davis, Seattle.rb Torne-o maravilhoso. GoRuCo 2008
  139. 139. Machucando Código por Diversão e Lucro Ryan Davis, Seattle.rb Se você o odiar: GoRuCo 2008
  140. 140. Machucando Código por Diversão e Lucro Ryan Davis, Seattle.rb Machuque-o. GoRuCo 2008
  141. 141. Machucando Código por Diversão e Lucro Ryan Davis, Seattle.rb Despedace-o. GoRuCo 2008
  142. 142. Machucando Código por Diversão e Lucro Ryan Davis, Seattle.rb Reescreva-o. GoRuCo 2008
  143. 143. Machucando Código por Diversão e Lucro Ryan Davis, Seattle.rb Seja apaixonado pelo que está trabalhando. GoRuCo 2008
  144. 144. Machucando Código por Diversão e Lucro Ryan Davis, Seattle.rb Caso contrário você está morto por dentro GoRuCo 2008
  145. 145. Machucando Código por Diversão e Lucro Ryan Davis, Seattle.rb …assim como seu código. GoRuCo 2008
  146. 146. Machucando Código por Diversão e Lucro Ryan Davis, Seattle.rb Obrigado. GoRuCo 2008

×