2009, ano do Ruby on Rails no Brasil
Sunday, November 8, 2009
Sunday, November 8, 2009
Ruby
Sunday, November 8, 2009
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.”
Sunday, November 8, 2009
Características
Sunday, November 8, 2009
Orientada a Objetos 2.times { puts “Olá” }
Características
Sunday, November 8, 2009
Orientada a Objetos
Tipagem dinâmica
2.times { puts “Olá” }
@nome = “Cauê Guerra”
Características
Sunday, November 8, 2009
Orientada a Objetos
Tipagem dinâmica
2.times { puts “Olá” }
@nome = “Cauê Guerra”
Características
Meta-programação Código que gera código
Sunday, November 8, 2009
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
Sunday, November 8, 2009
Exemplo
Sunday, November 8, 2009
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
Sunday, November 8, 2009
Rubyclass CalculadorDeMDC def calcula(a, b) if b == 0 a else calcula(b, a % b) end endend
calculador = CalculadorDeMDC.newputs calculador.calcula(28, 7)
Sunday, November 8, 2009
Um outro exemplo
Sunday, November 8, 2009
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
Sunday, November 8, 2009
Ruby
def paraMaiuscula(palavras) palavras.map { |palavra| palavra.upcase }end
Sunday, November 8, 2009
“Tornar as coisas simples, fáceis; e as complexas,
possíveis”Filosofia Ruby
Sunday, November 8, 2009
1995Sunday, November 8, 2009
2001
Dave Thomas
Sunday, November 8, 2009
RubyConf 2001
Sunday, November 8, 2009
Thomas Enebo 2006
Sunday, November 8, 2009
Sunday, November 8, 2009
Sunday, November 8, 2009
Sunday, November 8, 2009
Sunday, November 8, 2009
WTF?!?
Sunday, November 8, 2009
WTF?!?
Sunday, November 8, 2009
Sunday, November 8, 2009
Sunday, November 8, 2009
Sunday, November 8, 2009
Sunday, November 8, 2009
Sunday, November 8, 2009
Sunday, November 8, 2009
- Busca textual- Autenticação- Autorização- Processamento assíncrono- Mensageria- WebServices...
Sunday, November 8, 2009
Pilares
Sunday, November 8, 2009
Convention over Configuration
CoCSunday, November 8, 2009
DRYDon’t Repeat Yourself
Sunday, November 8, 2009
MVCSunday, November 8, 2009
Browser
Sunday, November 8, 2009
Browser
ApplicationController
Sunday, November 8, 2009
Browser
ApplicationController
Controller
Sunday, November 8, 2009
Browser
ApplicationController
Controller Model
Sunday, November 8, 2009
Browser
ApplicationController
Controller Model DB
Sunday, November 8, 2009
Browser
ApplicationController
Controller Model DB
Sunday, November 8, 2009
Browser
ApplicationController
Controller Model DB
Sunday, November 8, 2009
Browser
ApplicationController
Controller Model DBView
Sunday, November 8, 2009
Sunday, November 8, 2009
AplicaçãoConfiguraçõesSchema evolution
Testes
Sunday, November 8, 2009
Model
View
Controller
Sunday, November 8, 2009
TestesSunday, November 8, 2009
TestesTest All The Fucking Time!
Sunday, November 8, 2009
TDDBDD
Test Driven Development
Behavior Driven Development
Sunday, November 8, 2009
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
Sunday, November 8, 2009
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
Sunday, November 8, 2009
Rails 3 = +
Sunday, November 8, 2009
Yehuda Katz
Sunday, November 8, 2009
José Valim
Sunday, November 8, 2009
Por que não aprender Rails?
Sunday, November 8, 2009
Rails não escala!
Sunday, November 8, 2009
Hoje o Redeparede.com serve 7,5 milhões de acessos por mês usando Ruby on Rails. Rails escala, depende de você!
Sunday, November 8, 2009
“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.”
Sunday, November 8, 2009
Não conheço ninguém que use Rails
Sunday, November 8, 2009
Sunday, November 8, 2009
Sunday, November 8, 2009
Sunday, November 8, 2009
Sunday, November 8, 2009
Sunday, November 8, 2009
Sunday, November 8, 2009
Sunday, November 8, 2009
Sunday, November 8, 2009
http://www.workingwithrails.com/high-profile-organisations
Sunday, November 8, 2009
Sunday, November 8, 2009
Martin Fowler
41 projetos Ruby de 2006 a 2008 - a maioria usando
Rails
Sunday, November 8, 2009
Ruby é mais produtivo?
Negativo 0 20% 50% 2X 5X 10X
1
5
13
5
3
2
1
Sunday, November 8, 2009
Ruby foi a escolha certa?
sim36
não5
Sunday, November 8, 2009
Sunday, November 8, 2009
“As empresas estão cheias de guardas,
impedindo as pessoas de mudar!”
Sunday, November 8, 2009
Sunday, November 8, 2009
Sunday, November 8, 2009
Sunday, November 8, 2009
Sunday, November 8, 2009
Sunday, November 8, 2009
Sunday, November 8, 2009
Sunday, November 8, 2009
Sunday, November 8, 2009
Sunday, November 8, 2009
Regis Pires
IFPI - Piauí
Sunday, November 8, 2009
Sunday, November 8, 2009
Sunday, November 8, 2009
Sunday, November 8, 2009
2Sunday, November 8, 2009
3Sunday, November 8, 2009
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
Sunday, November 8, 2009
0
38
75
113
150
10
72
113
2007
2008
2009
Sunday, November 8, 2009
E daí?
Sunday, November 8, 2009
http://ondetrabalhar.com/ruby+ou+rails
Sunday, November 8, 2009
Sunday, November 8, 2009
Sunday, November 8, 2009
http://slideshare.net/caueguerra
Sunday, November 8, 2009