Desenvolvimento orientado à introspecção
-
Upload
successoft-ltda -
Category
Technology
-
view
253 -
download
2
description
Transcript of Desenvolvimento orientado à introspecção
Desenvolvimento Orientado à Introspecção
Tomás D’Stefano@tomas_stefano
http://github.com/tomas-stefano
sábado, 6 de novembro de 2010
Expectativas da Apresentação
sábado, 6 de novembro de 2010
Auto-Disciplina
sábado, 6 de novembro de 2010
Simplicidade
sábado, 6 de novembro de 2010
Introspecção
sábado, 6 de novembro de 2010
Como EU faço melhor?
sábado, 6 de novembro de 2010
Onde EU estou perdendo o foco?
sábado, 6 de novembro de 2010
Como EU me foco melhor?
sábado, 6 de novembro de 2010
Onde EU desperdiço o meu tempo?
sábado, 6 de novembro de 2010
Como EU torno mais simples?
sábado, 6 de novembro de 2010
Onde EU estou errado?
sábado, 6 de novembro de 2010
Você faz essas perguntas?
Frequentemente?
sábado, 6 de novembro de 2010
O InfinityTest nasceu dessas perguntas!
sábado, 6 de novembro de 2010
Princípios e ValoresConnascence!!!
Single Responsability Principle!
Open/Closed Principle!
Liskov Substitution Principle!
Dependency Inversion Principle!
Interface Segregation Principle!
http://bit.ly/cVIdOosábado, 6 de novembro de 2010
Connascence
sábado, 6 de novembro de 2010
Connascence of Nameclass Company def name 'SuccesSoft' endend
def increase_profit(company) company.nameend
sábado, 6 de novembro de 2010
Connascence of Nameclass Company def name 'SuccesSoft' endend
def increase_profit(company) company.nameend
sábado, 6 de novembro de 2010
Regra de Localidade
sábado, 6 de novembro de 2010
Connascence of Position
[['Tomás', 21], [ 'SuccesSoft', 0.5]]
def add(contacts) contacts.each do |name, age| # ... endend
sábado, 6 de novembro de 2010
COP => CON
class Contact attr_accessor :name, :ageend
sábado, 6 de novembro de 2010
Regra do Grau
sábado, 6 de novembro de 2010
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
COA => CONclass 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
Muito Mais!
sábado, 6 de novembro de 2010
To Infinity and Beyond!
sábado, 6 de novembro de 2010
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
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
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
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
Notificação
sábado, 6 de novembro de 2010
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
RSpec?# ./.infinity_test
infinity_test do use :test_framework => :rspecend
# Funciona para o Rspec 2.0.* ou 1.3.*
sábado, 6 de novembro de 2010
Master Branch (Bundler)
* Possui um Gemfile? -> Então rode com ‘bundle exec’
sábado, 6 de novembro de 2010
Local Commit(Heuristicas)
infinity_test do heuristics do add(‘my_file.rb’) do run :all => :tests end endend
$ infinity_test --heuristics
sábado, 6 de novembro de 2010
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
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
Desenvolvimento Orientado à Diversão =)
sábado, 6 de novembro de 2010
Desenvolvimento Orientado à Diversão =)
sábado, 6 de novembro de 2010
Desenvolvimento Orientado à Diversão =)
sábado, 6 de novembro de 2010
O que vem por aí?
sábado, 6 de novembro de 2010
RubyCasts
sábado, 6 de novembro de 2010
Obrigado =PTomás D’Stefano
@tomas_stefanohttp://github.com/tomas-stefano
sábado, 6 de novembro de 2010