Ruby on Rails é uma boa opção para o próximo projeto porque é uma estrutura para desenvolvimento web rápido que torna as coisas simples e complexas possíveis através de recursos como metaprogramação e método missing. Além disso, Rails oferece ferramentas como Cucumber e TDD que melhoram a produtividade e qualidade do código.
22. class Carro carro = Carro.new
carro.turbo
end NoMethodError: undefined method ‘turbo’
23. class Carro carro = Carro.new
carro.turbo
end NoMethodError: undefined method ‘turbo’
class Oficina
def turbina(carro)
def carro.turbo
puts ‘turbinado!’
end
end
end
24. class Carro carro = Carro.new
carro.turbo
end NoMethodError: undefined method ‘turbo’
class Oficina
def turbina(carro)
def carro.turbo
puts ‘turbinado!’
end
end
end
25. class Carro carro = Carro.new
carro.turbo
end NoMethodError: undefined method ‘turbo’
class Oficina carro = Carro.new
def turbina(carro) oficina = Oficina.new
def carro.turbo oficina.turbina(carro)
puts ‘turbinado!’
end carro.turbo
end # turbinado!
end
26. Metaprogramação
class Carro carro = Carro.new
carro.turbo
end NoMethodError: undefined method ‘turbo’
class Oficina carro = Carro.new
def turbina(carro) oficina = Oficina.new
def carro.turbo oficina.turbina(carro)
puts ‘turbinado!’
end carro.turbo
end # turbinado!
end
30. class Carro
class Carro def method_missing(name, *args)
puts “Método #{name} .. ?”
end end
end
31. class Carro
class Carro def method_missing(name, *args)
puts “Método #{name} .. ?”
end end
end
carro = Carro.new
carro.acelera
32. class Carro
class Carro def method_missing(name, *args)
puts “Método #{name} .. ?”
end end
end
carro = Carro.new
carro.acelera
33. class Carro
class Carro def method_missing(name, *args)
puts “Método #{name} .. ?”
end end
end
carro = Carro.new
carro.acelera # Método acelera .. ?
34. Method Missing
class Carro
class Carro def method_missing(name, *args)
puts “Método #{name} .. ?”
end end
end
carro = Carro.new
carro.acelera # Método acelera .. ?
46. TDD / BDD
Funcionalidade: Controle de venda de carros
Para administrar minha loja e obter mais
lucro quero controlar a entrada e saída
de automóveis.
47. TDD / BDD
Funcionalidade: Controle de venda de carros
Para administrar minha loja e obter mais
lucro quero controlar a entrada e saída
de automóveis.
Cenário: Cadastro de carros
48. TDD / BDD
Funcionalidade: Controle de venda de carros
Para administrar minha loja e obter mais
lucro quero controlar a entrada e saída
de automóveis.
Cenário: Cadastro de carros
Dado que estou na página inicial do sistema
49. TDD / BDD
Funcionalidade: Controle de venda de carros
Para administrar minha loja e obter mais
lucro quero controlar a entrada e saída
de automóveis.
Cenário: Cadastro de carros
Dado que estou na página inicial do sistema
E clico no link “Adicionar novo carro”
50. TDD / BDD
Funcionalidade: Controle de venda de carros
Para administrar minha loja e obter mais
lucro quero controlar a entrada e saída
de automóveis.
Cenário: Cadastro de carros
Dado que estou na página inicial do sistema
E clico no link “Adicionar novo carro”
E preencho os campos do formulário
51. TDD / BDD
Funcionalidade: Controle de venda de carros
Para administrar minha loja e obter mais
lucro quero controlar a entrada e saída
de automóveis.
Cenário: Cadastro de carros
Dado que estou na página inicial do sistema
E clico no link “Adicionar novo carro”
E preencho os campos do formulário
Então o novo carro deve aparecer na home
52. TDD / BDD
Funcionalidade: Controle de venda de carros
Para administrar minha loja e obter mais
lucro quero controlar a entrada e saída
de automóveis.
Cenário: Cadastro de carros
Dado que estou na página inicial do sistema
E clico no link “Adicionar novo carro”
E preencho os campos do formulário
Então o novo carro deve aparecer na home
53. TDD / BDD
Funcionalidade: Controle de venda de carros
Para administrar minha loja e obter mais
lucro quero controlar a entrada e saída
de automóveis.
Cenário: Cadastro de carros
Dado que estou na página inicial do sistema
E clico no link “Adicionar novo carro”
E preencho os campos do formulário
Então o novo carro deve aparecer na home