Rails - EXATEC2009
-
Upload
caue-guerra -
Category
Technology
-
view
407 -
download
0
description
Transcript of Rails - EXATEC2009
![Page 1: Rails - EXATEC2009](https://reader034.fdocuments.us/reader034/viewer/2022051611/54b54bb44a7959fd028b4578/html5/thumbnails/1.jpg)
2009, ano do Ruby on Rails no Brasil
![Page 3: Rails - EXATEC2009](https://reader034.fdocuments.us/reader034/viewer/2022051611/54b54bb44a7959fd028b4578/html5/thumbnails/3.jpg)
![Page 4: Rails - EXATEC2009](https://reader034.fdocuments.us/reader034/viewer/2022051611/54b54bb44a7959fd028b4578/html5/thumbnails/4.jpg)
Ruby
![Page 5: Rails - EXATEC2009](https://reader034.fdocuments.us/reader034/viewer/2022051611/54b54bb44a7959fd028b4578/html5/thumbnails/5.jpg)
Yukihiro Matsumoto (Matz)
“Often people, especially computer engineers, focus on the machines. But in fact we need to focus on humans, on how humans care about doing programming or operating the application of the machines. We are the masters. They are the slaves.”
![Page 6: Rails - EXATEC2009](https://reader034.fdocuments.us/reader034/viewer/2022051611/54b54bb44a7959fd028b4578/html5/thumbnails/6.jpg)
Características
![Page 7: Rails - EXATEC2009](https://reader034.fdocuments.us/reader034/viewer/2022051611/54b54bb44a7959fd028b4578/html5/thumbnails/7.jpg)
Orientada a Objetos 2.times { puts “Olá” }
Características
![Page 8: Rails - EXATEC2009](https://reader034.fdocuments.us/reader034/viewer/2022051611/54b54bb44a7959fd028b4578/html5/thumbnails/8.jpg)
Orientada a Objetos
Tipagem dinâmica
2.times { puts “Olá” }
@nome = “Cauê Guerra”
Características
![Page 9: Rails - EXATEC2009](https://reader034.fdocuments.us/reader034/viewer/2022051611/54b54bb44a7959fd028b4578/html5/thumbnails/9.jpg)
Orientada a Objetos
Tipagem dinâmica
2.times { puts “Olá” }
@nome = “Cauê Guerra”
Características
Meta-programação Código que gera código
![Page 10: Rails - EXATEC2009](https://reader034.fdocuments.us/reader034/viewer/2022051611/54b54bb44a7959fd028b4578/html5/thumbnails/10.jpg)
Orientada a Objetos
Tipagem dinâmica
2.times { puts “Olá” }
@nome = “Cauê Guerra”
Características
Meta-programação
Programação funcional
Código que gera código
![Page 11: Rails - EXATEC2009](https://reader034.fdocuments.us/reader034/viewer/2022051611/54b54bb44a7959fd028b4578/html5/thumbnails/11.jpg)
Exemplo
![Page 12: Rails - EXATEC2009](https://reader034.fdocuments.us/reader034/viewer/2022051611/54b54bb44a7959fd028b4578/html5/thumbnails/12.jpg)
class CalculadorDeMDC { public int calcula(int a, int b) { if (b == 0) return a; else return calcula(b, a % b); }}
CalculadorDeMDC calculador = new CalculadorDeMDC();System.out.println(calculador.calcula(28, 7));
Java
![Page 13: Rails - EXATEC2009](https://reader034.fdocuments.us/reader034/viewer/2022051611/54b54bb44a7959fd028b4578/html5/thumbnails/13.jpg)
class CalculadorDeMDC { def calcula(a: Int, b: Int): Int = { if (b == 0) a else calcula(b, a % b) }}
Scala
val calculador = new CalculadorDeMDCprintln(calculador.calcula(28, 7))
![Page 14: Rails - EXATEC2009](https://reader034.fdocuments.us/reader034/viewer/2022051611/54b54bb44a7959fd028b4578/html5/thumbnails/14.jpg)
Ruby
class CalculadorDeMDC def calcula(a, b) if b == 0 a else calcula(b, a % b) end endend
calculador = CalculadorDeMDC.newputs calculador.calcula(28, 7)
![Page 15: Rails - EXATEC2009](https://reader034.fdocuments.us/reader034/viewer/2022051611/54b54bb44a7959fd028b4578/html5/thumbnails/15.jpg)
Um outro exemplo
![Page 16: Rails - EXATEC2009](https://reader034.fdocuments.us/reader034/viewer/2022051611/54b54bb44a7959fd028b4578/html5/thumbnails/16.jpg)
public String[] paraMaiuscula(String[] palavras) { String[] resposta = new String[palavras.length]; for (int i = 0; i < palavras.length; i++) resposta[i] = palavras[i].toUpperCase(); return resposta;}
Java
![Page 17: Rails - EXATEC2009](https://reader034.fdocuments.us/reader034/viewer/2022051611/54b54bb44a7959fd028b4578/html5/thumbnails/17.jpg)
Ruby
def paraMaiuscula(palavras) palavras.map { |palavra| palavra.upcase }end
![Page 18: Rails - EXATEC2009](https://reader034.fdocuments.us/reader034/viewer/2022051611/54b54bb44a7959fd028b4578/html5/thumbnails/18.jpg)
“Tornar as coisas simples, fáceis; e as complexas,
possíveis”Filosofia Ruby
![Page 19: Rails - EXATEC2009](https://reader034.fdocuments.us/reader034/viewer/2022051611/54b54bb44a7959fd028b4578/html5/thumbnails/19.jpg)
1995
![Page 20: Rails - EXATEC2009](https://reader034.fdocuments.us/reader034/viewer/2022051611/54b54bb44a7959fd028b4578/html5/thumbnails/20.jpg)
2001
Dave Thomas
![Page 22: Rails - EXATEC2009](https://reader034.fdocuments.us/reader034/viewer/2022051611/54b54bb44a7959fd028b4578/html5/thumbnails/22.jpg)
Thomas Enebo
JRuby
Ruby escrito 100% em Java
2006
![Page 23: Rails - EXATEC2009](https://reader034.fdocuments.us/reader034/viewer/2022051611/54b54bb44a7959fd028b4578/html5/thumbnails/23.jpg)
![Page 24: Rails - EXATEC2009](https://reader034.fdocuments.us/reader034/viewer/2022051611/54b54bb44a7959fd028b4578/html5/thumbnails/24.jpg)
![Page 25: Rails - EXATEC2009](https://reader034.fdocuments.us/reader034/viewer/2022051611/54b54bb44a7959fd028b4578/html5/thumbnails/25.jpg)
![Page 26: Rails - EXATEC2009](https://reader034.fdocuments.us/reader034/viewer/2022051611/54b54bb44a7959fd028b4578/html5/thumbnails/26.jpg)
![Page 27: Rails - EXATEC2009](https://reader034.fdocuments.us/reader034/viewer/2022051611/54b54bb44a7959fd028b4578/html5/thumbnails/27.jpg)
WTF?!?
![Page 28: Rails - EXATEC2009](https://reader034.fdocuments.us/reader034/viewer/2022051611/54b54bb44a7959fd028b4578/html5/thumbnails/28.jpg)
WTF?!?
![Page 29: Rails - EXATEC2009](https://reader034.fdocuments.us/reader034/viewer/2022051611/54b54bb44a7959fd028b4578/html5/thumbnails/29.jpg)
![Page 30: Rails - EXATEC2009](https://reader034.fdocuments.us/reader034/viewer/2022051611/54b54bb44a7959fd028b4578/html5/thumbnails/30.jpg)
![Page 31: Rails - EXATEC2009](https://reader034.fdocuments.us/reader034/viewer/2022051611/54b54bb44a7959fd028b4578/html5/thumbnails/31.jpg)
![Page 32: Rails - EXATEC2009](https://reader034.fdocuments.us/reader034/viewer/2022051611/54b54bb44a7959fd028b4578/html5/thumbnails/32.jpg)
![Page 33: Rails - EXATEC2009](https://reader034.fdocuments.us/reader034/viewer/2022051611/54b54bb44a7959fd028b4578/html5/thumbnails/33.jpg)
![Page 35: Rails - EXATEC2009](https://reader034.fdocuments.us/reader034/viewer/2022051611/54b54bb44a7959fd028b4578/html5/thumbnails/35.jpg)
Pilares
![Page 36: Rails - EXATEC2009](https://reader034.fdocuments.us/reader034/viewer/2022051611/54b54bb44a7959fd028b4578/html5/thumbnails/36.jpg)
Convention over Configuration
CoC
![Page 37: Rails - EXATEC2009](https://reader034.fdocuments.us/reader034/viewer/2022051611/54b54bb44a7959fd028b4578/html5/thumbnails/37.jpg)
DRYDon’t Repeat Yourself
![Page 38: Rails - EXATEC2009](https://reader034.fdocuments.us/reader034/viewer/2022051611/54b54bb44a7959fd028b4578/html5/thumbnails/38.jpg)
MVC
![Page 39: Rails - EXATEC2009](https://reader034.fdocuments.us/reader034/viewer/2022051611/54b54bb44a7959fd028b4578/html5/thumbnails/39.jpg)
Browser
![Page 40: Rails - EXATEC2009](https://reader034.fdocuments.us/reader034/viewer/2022051611/54b54bb44a7959fd028b4578/html5/thumbnails/40.jpg)
Browser
ApplicationController
![Page 41: Rails - EXATEC2009](https://reader034.fdocuments.us/reader034/viewer/2022051611/54b54bb44a7959fd028b4578/html5/thumbnails/41.jpg)
Browser
ApplicationController
Controller
![Page 42: Rails - EXATEC2009](https://reader034.fdocuments.us/reader034/viewer/2022051611/54b54bb44a7959fd028b4578/html5/thumbnails/42.jpg)
Browser
ApplicationController
Controller Model
![Page 43: Rails - EXATEC2009](https://reader034.fdocuments.us/reader034/viewer/2022051611/54b54bb44a7959fd028b4578/html5/thumbnails/43.jpg)
Browser
ApplicationController
Controller Model
DB
![Page 44: Rails - EXATEC2009](https://reader034.fdocuments.us/reader034/viewer/2022051611/54b54bb44a7959fd028b4578/html5/thumbnails/44.jpg)
Browser
ApplicationController
Controller Model
DB
![Page 45: Rails - EXATEC2009](https://reader034.fdocuments.us/reader034/viewer/2022051611/54b54bb44a7959fd028b4578/html5/thumbnails/45.jpg)
Browser
ApplicationController
Controller Model
DB
![Page 46: Rails - EXATEC2009](https://reader034.fdocuments.us/reader034/viewer/2022051611/54b54bb44a7959fd028b4578/html5/thumbnails/46.jpg)
Browser
ApplicationController
Controller Model
DBView
![Page 47: Rails - EXATEC2009](https://reader034.fdocuments.us/reader034/viewer/2022051611/54b54bb44a7959fd028b4578/html5/thumbnails/47.jpg)
![Page 48: Rails - EXATEC2009](https://reader034.fdocuments.us/reader034/viewer/2022051611/54b54bb44a7959fd028b4578/html5/thumbnails/48.jpg)
AplicaçãoConfiguraçõesSchema evolution
Testes
![Page 49: Rails - EXATEC2009](https://reader034.fdocuments.us/reader034/viewer/2022051611/54b54bb44a7959fd028b4578/html5/thumbnails/49.jpg)
Model
View
Controller
![Page 50: Rails - EXATEC2009](https://reader034.fdocuments.us/reader034/viewer/2022051611/54b54bb44a7959fd028b4578/html5/thumbnails/50.jpg)
Testes
![Page 51: Rails - EXATEC2009](https://reader034.fdocuments.us/reader034/viewer/2022051611/54b54bb44a7959fd028b4578/html5/thumbnails/51.jpg)
TestesTest All The Fucking Time!
![Page 52: Rails - EXATEC2009](https://reader034.fdocuments.us/reader034/viewer/2022051611/54b54bb44a7959fd028b4578/html5/thumbnails/52.jpg)
TDDBDD
Test Driven Development
Behavior Driven Development
![Page 53: Rails - EXATEC2009](https://reader034.fdocuments.us/reader034/viewer/2022051611/54b54bb44a7959fd028b4578/html5/thumbnails/53.jpg)
it "should require acceptance of terms of service" do @job.attributes = valid_job_attributes.except(:terms_accepted) @job.should_not be_valid @job.terms_accepted = false @job.should_not be_valid @job.terms_accepted = true @job.should be_validend
RSpec
![Page 54: Rails - EXATEC2009](https://reader034.fdocuments.us/reader034/viewer/2022051611/54b54bb44a7959fd028b4578/html5/thumbnails/54.jpg)
Feature: Job listing In order to see the job offers in my area and start working As a user I want to see a list of jobs filtered by type and location
Scenario: Listing when there is no jobs Given there is no jobs When I go to "java" Then I should see "Desculpe, não existem vagas disponíveis." And the "OndeTrabalhar.com" field should contain "java"
Cucumber
![Page 55: Rails - EXATEC2009](https://reader034.fdocuments.us/reader034/viewer/2022051611/54b54bb44a7959fd028b4578/html5/thumbnails/55.jpg)
Rails não escala!
![Page 56: Rails - EXATEC2009](https://reader034.fdocuments.us/reader034/viewer/2022051611/54b54bb44a7959fd028b4578/html5/thumbnails/56.jpg)
Hoje o Redeparede.com serve 7,5 milhões de acessos por mês usando Ruby on Rails. Rails escala, depende de você!
![Page 57: Rails - EXATEC2009](https://reader034.fdocuments.us/reader034/viewer/2022051611/54b54bb44a7959fd028b4578/html5/thumbnails/57.jpg)
“Basecamp is now handling more than 50 million Rails requests per week. We're peaking out at around 200
req/sec. Damn!”
“Basecamp's average response time is 90ms and 87% of all requests
finish in less than 200ms.”
![Page 58: Rails - EXATEC2009](https://reader034.fdocuments.us/reader034/viewer/2022051611/54b54bb44a7959fd028b4578/html5/thumbnails/58.jpg)
Não conheço ninguém que use Rails
![Page 59: Rails - EXATEC2009](https://reader034.fdocuments.us/reader034/viewer/2022051611/54b54bb44a7959fd028b4578/html5/thumbnails/59.jpg)
![Page 60: Rails - EXATEC2009](https://reader034.fdocuments.us/reader034/viewer/2022051611/54b54bb44a7959fd028b4578/html5/thumbnails/60.jpg)
![Page 61: Rails - EXATEC2009](https://reader034.fdocuments.us/reader034/viewer/2022051611/54b54bb44a7959fd028b4578/html5/thumbnails/61.jpg)
![Page 62: Rails - EXATEC2009](https://reader034.fdocuments.us/reader034/viewer/2022051611/54b54bb44a7959fd028b4578/html5/thumbnails/62.jpg)
![Page 63: Rails - EXATEC2009](https://reader034.fdocuments.us/reader034/viewer/2022051611/54b54bb44a7959fd028b4578/html5/thumbnails/63.jpg)
![Page 64: Rails - EXATEC2009](https://reader034.fdocuments.us/reader034/viewer/2022051611/54b54bb44a7959fd028b4578/html5/thumbnails/64.jpg)
![Page 65: Rails - EXATEC2009](https://reader034.fdocuments.us/reader034/viewer/2022051611/54b54bb44a7959fd028b4578/html5/thumbnails/65.jpg)
![Page 66: Rails - EXATEC2009](https://reader034.fdocuments.us/reader034/viewer/2022051611/54b54bb44a7959fd028b4578/html5/thumbnails/66.jpg)
![Page 67: Rails - EXATEC2009](https://reader034.fdocuments.us/reader034/viewer/2022051611/54b54bb44a7959fd028b4578/html5/thumbnails/67.jpg)
Rails 3 = +
![Page 68: Rails - EXATEC2009](https://reader034.fdocuments.us/reader034/viewer/2022051611/54b54bb44a7959fd028b4578/html5/thumbnails/68.jpg)
Yehuda Katz
![Page 69: Rails - EXATEC2009](https://reader034.fdocuments.us/reader034/viewer/2022051611/54b54bb44a7959fd028b4578/html5/thumbnails/69.jpg)
José Valim
![Page 70: Rails - EXATEC2009](https://reader034.fdocuments.us/reader034/viewer/2022051611/54b54bb44a7959fd028b4578/html5/thumbnails/70.jpg)
![Page 71: Rails - EXATEC2009](https://reader034.fdocuments.us/reader034/viewer/2022051611/54b54bb44a7959fd028b4578/html5/thumbnails/71.jpg)
![Page 72: Rails - EXATEC2009](https://reader034.fdocuments.us/reader034/viewer/2022051611/54b54bb44a7959fd028b4578/html5/thumbnails/72.jpg)
![Page 73: Rails - EXATEC2009](https://reader034.fdocuments.us/reader034/viewer/2022051611/54b54bb44a7959fd028b4578/html5/thumbnails/73.jpg)
![Page 74: Rails - EXATEC2009](https://reader034.fdocuments.us/reader034/viewer/2022051611/54b54bb44a7959fd028b4578/html5/thumbnails/74.jpg)
![Page 75: Rails - EXATEC2009](https://reader034.fdocuments.us/reader034/viewer/2022051611/54b54bb44a7959fd028b4578/html5/thumbnails/75.jpg)
![Page 76: Rails - EXATEC2009](https://reader034.fdocuments.us/reader034/viewer/2022051611/54b54bb44a7959fd028b4578/html5/thumbnails/76.jpg)
![Page 77: Rails - EXATEC2009](https://reader034.fdocuments.us/reader034/viewer/2022051611/54b54bb44a7959fd028b4578/html5/thumbnails/77.jpg)
![Page 78: Rails - EXATEC2009](https://reader034.fdocuments.us/reader034/viewer/2022051611/54b54bb44a7959fd028b4578/html5/thumbnails/78.jpg)
Regis Pires
IFPI - Piauí
![Page 79: Rails - EXATEC2009](https://reader034.fdocuments.us/reader034/viewer/2022051611/54b54bb44a7959fd028b4578/html5/thumbnails/79.jpg)
![Page 80: Rails - EXATEC2009](https://reader034.fdocuments.us/reader034/viewer/2022051611/54b54bb44a7959fd028b4578/html5/thumbnails/80.jpg)
![Page 81: Rails - EXATEC2009](https://reader034.fdocuments.us/reader034/viewer/2022051611/54b54bb44a7959fd028b4578/html5/thumbnails/81.jpg)
![Page 82: Rails - EXATEC2009](https://reader034.fdocuments.us/reader034/viewer/2022051611/54b54bb44a7959fd028b4578/html5/thumbnails/82.jpg)
2
![Page 83: Rails - EXATEC2009](https://reader034.fdocuments.us/reader034/viewer/2022051611/54b54bb44a7959fd028b4578/html5/thumbnails/83.jpg)
3
![Page 84: Rails - EXATEC2009](https://reader034.fdocuments.us/reader034/viewer/2022051611/54b54bb44a7959fd028b4578/html5/thumbnails/84.jpg)
Formação Rails
RR-71: Desenvolvimento Ágil para Web 2.0 com Ruby on Rails
RR-75: Ruby e Rails avançados: lidando com problemas do dia a dia
![Page 85: Rails - EXATEC2009](https://reader034.fdocuments.us/reader034/viewer/2022051611/54b54bb44a7959fd028b4578/html5/thumbnails/85.jpg)
0
38
75
113
150
10
72
113
2007
2008
2009
![Page 86: Rails - EXATEC2009](https://reader034.fdocuments.us/reader034/viewer/2022051611/54b54bb44a7959fd028b4578/html5/thumbnails/86.jpg)
E daí?
![Page 87: Rails - EXATEC2009](https://reader034.fdocuments.us/reader034/viewer/2022051611/54b54bb44a7959fd028b4578/html5/thumbnails/87.jpg)
http://ondetrabalhar.com/ruby+ou+rails
![Page 88: Rails - EXATEC2009](https://reader034.fdocuments.us/reader034/viewer/2022051611/54b54bb44a7959fd028b4578/html5/thumbnails/88.jpg)
![Page 89: Rails - EXATEC2009](https://reader034.fdocuments.us/reader034/viewer/2022051611/54b54bb44a7959fd028b4578/html5/thumbnails/89.jpg)