Your SlideShare is downloading. ×
Desenvolvimento orientado à introspecção
Upcoming SlideShare
Loading in...5
×

Thanks for flagging this SlideShare!

Oops! An error has occurred.

×
Saving this for later? Get the SlideShare app to save on your phone or tablet. Read anywhere, anytime – even offline.
Text the download link to your phone
Standard text messaging rates apply

Desenvolvimento orientado à introspecção

238
views

Published on

Presentation at Labs Conf 2010

Presentation at Labs Conf 2010

Published in: Technology

0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total Views
238
On Slideshare
0
From Embeds
0
Number of Embeds
0
Actions
Shares
0
Downloads
0
Comments
0
Likes
0
Embeds 0
No embeds

Report content
Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
No notes for slide

Transcript

  • 1. Desenvolvimento Orientado à Introspecção Tomás D’Stefano @tomas_stefano http://github.com/tomas-stefano sábado, 6 de novembro de 2010
  • 2. Expectativas da Apresentação sábado, 6 de novembro de 2010
  • 3. Auto-Disciplina sábado, 6 de novembro de 2010
  • 4. Simplicidade sábado, 6 de novembro de 2010
  • 5. Introspecção sábado, 6 de novembro de 2010
  • 6. Como EU faço melhor? sábado, 6 de novembro de 2010
  • 7. Onde EU estou perdendo o foco? sábado, 6 de novembro de 2010
  • 8. Como EU me foco melhor? sábado, 6 de novembro de 2010
  • 9. Onde EU desperdiço o meu tempo? sábado, 6 de novembro de 2010
  • 10. Como EU torno mais simples? sábado, 6 de novembro de 2010
  • 11. Onde EU estou errado? sábado, 6 de novembro de 2010
  • 12. Você faz essas perguntas? Frequentemente? sábado, 6 de novembro de 2010
  • 13. O InfinityTest nasceu dessas perguntas! sábado, 6 de novembro de 2010
  • 14. Princípios e Valores Connascence!!! Single Responsability Principle! Open/Closed Principle! Liskov Substitution Principle! Dependency Inversion Principle! Interface Segregation Principle! http://bit.ly/cVIdOo sábado, 6 de novembro de 2010
  • 15. Connascence sábado, 6 de novembro de 2010
  • 16. Connascence of Name class Company def name 'SuccesSoft' end end def increase_profit(company) company.name end sábado, 6 de novembro de 2010
  • 17. Connascence of Name class Company def name 'SuccesSoft' end end def increase_profit(company) company.name end sábado, 6 de novembro de 2010
  • 18. Regra de Localidade sábado, 6 de novembro de 2010
  • 19. Connascence of Position [['Tomás', 21], [ 'SuccesSoft', 0.5]] def add(contacts) contacts.each do |name, age| # ... end end sábado, 6 de novembro de 2010
  • 20. COP => CON class Contact attr_accessor :name, :age end sábado, 6 de novembro de 2010
  • 21. Regra do Grau sábado, 6 de novembro de 2010
  • 22. Connascence of Algorithm class Company def profit(profit) total = profit.inject(0) { |a, n| a + n } 100 + total end def profit?(profit) total = profit.inject(0) { |a, n| a + n } total > 0 end end sábado, 6 de novembro de 2010
  • 23. COA => CON class Company def profit(profit) 100 + total_profit(profit) end def profit?(numbers) total_profit(profit) > 0 end def total_profit(profit) profit.inject(0) { |a, n| a + n } end end sábado, 6 de novembro de 2010
  • 24. Muito Mais! sábado, 6 de novembro de 2010
  • 25. To Infinity and Beyond! sábado, 6 de novembro de 2010
  • 26. RVM Ruby API >> environment = RVM::Environment.new('1.9.2') => #<RVM::Environment environment_name="1.9.2"> >> environment.expanded_name => ‘ruby-1.9.0-p0’ sábado, 6 de novembro de 2010
  • 27. RVM Ruby API RVM.environments('1.9.2,ree,jruby') do |env| env.ruby 'my_ruby_file.rb' end # Roda nos 3 Rubies sábado, 6 de novembro de 2010
  • 28. Linha de Comando infinity_test --rspec infinity_test --rubies=ree,1.9.2,jruby --rspec infinity_test --rubies=ree,1.9.2,1.8.7 --test-unit sábado, 6 de novembro de 2010
  • 29. Setup # ~/.infinity_test infinity_test do notifications :growl do show_images :mode => :mario_bross end before_run { clear :terminal } end sábado, 6 de novembro de 2010
  • 30. Notificação sábado, 6 de novembro de 2010
  • 31. Setup Rubies! w00t! # ./.infinity_test infinity_test do use :rubies => %w(1.9.2 ree 1.8.7) end sábado, 6 de novembro de 2010
  • 32. RSpec? # ./.infinity_test infinity_test do use :test_framework => :rspec end # Funciona para o Rspec 2.0.* ou 1.3.* sábado, 6 de novembro de 2010
  • 33. Master Branch (Bundler) * Possui um Gemfile? -> Então rode com ‘bundle exec’ sábado, 6 de novembro de 2010
  • 34. Local Commit (Heuristicas) infinity_test do heuristics do add(‘my_file.rb’) do run :all => :tests end end end $ infinity_test --heuristics sábado, 6 de novembro de 2010
  • 35. Master Branch (Rails) infinity_test --rspec --rails infinity_test --test-unit --rails infinity_test --bacon --rails infinity_test --rubies=ree,1.9.2 --rspec --rails sábado, 6 de novembro de 2010
  • 36. Futuro •Suportar o Rubinius •Cucumber •Cores no Test::Unit, Bacon e RSpec(bug) (Alguém me ajuda nisso?) sábado, 6 de novembro de 2010
  • 37. Desenvolvimento Orientado à Diversão =) sábado, 6 de novembro de 2010
  • 38. Desenvolvimento Orientado à Diversão =) sábado, 6 de novembro de 2010
  • 39. Desenvolvimento Orientado à Diversão =) sábado, 6 de novembro de 2010
  • 40. O que vem por aí? sábado, 6 de novembro de 2010
  • 41. RubyCasts sábado, 6 de novembro de 2010
  • 42. Obrigado =P Tomás D’Stefano @tomas_stefano http://github.com/tomas-stefano sábado, 6 de novembro de 2010

×