Download - NET Architects Day - DNAD 2011
![Page 1: NET Architects Day - DNAD 2011](https://reader033.vdocuments.pub/reader033/viewer/2022052823/5555a65ed8b42a8e1f8b546d/html5/thumbnails/1.jpg)
Discutindo Railse Arquiteturas
a apresentação já vai começar ...
![Page 2: NET Architects Day - DNAD 2011](https://reader033.vdocuments.pub/reader033/viewer/2022052823/5555a65ed8b42a8e1f8b546d/html5/thumbnails/2.jpg)
Discutindo Railse Arquiteturas
![Page 3: NET Architects Day - DNAD 2011](https://reader033.vdocuments.pub/reader033/viewer/2022052823/5555a65ed8b42a8e1f8b546d/html5/thumbnails/3.jpg)
Fabio Akitawww.akitaonrails.com
@akitaonrails
![Page 4: NET Architects Day - DNAD 2011](https://reader033.vdocuments.pub/reader033/viewer/2022052823/5555a65ed8b42a8e1f8b546d/html5/thumbnails/4.jpg)
Fabio Akitawww.akitaonrails.com
@akitaonrails
1990
![Page 5: NET Architects Day - DNAD 2011](https://reader033.vdocuments.pub/reader033/viewer/2022052823/5555a65ed8b42a8e1f8b546d/html5/thumbnails/5.jpg)
Anos 80 Fim Anos 90 Século XXI
![Page 6: NET Architects Day - DNAD 2011](https://reader033.vdocuments.pub/reader033/viewer/2022052823/5555a65ed8b42a8e1f8b546d/html5/thumbnails/6.jpg)
Perl
C
Anos 80 Fim Anos 90 Século XXI
Basic
dBase III
Clipper
Pascal
Delphi
ASP
PHP
Python
.NET
Java
ABAP
Ruby
ObjCVB6
![Page 7: NET Architects Day - DNAD 2011](https://reader033.vdocuments.pub/reader033/viewer/2022052823/5555a65ed8b42a8e1f8b546d/html5/thumbnails/7.jpg)
![Page 8: NET Architects Day - DNAD 2011](https://reader033.vdocuments.pub/reader033/viewer/2022052823/5555a65ed8b42a8e1f8b546d/html5/thumbnails/8.jpg)
![Page 9: NET Architects Day - DNAD 2011](https://reader033.vdocuments.pub/reader033/viewer/2022052823/5555a65ed8b42a8e1f8b546d/html5/thumbnails/9.jpg)
![Page 10: NET Architects Day - DNAD 2011](https://reader033.vdocuments.pub/reader033/viewer/2022052823/5555a65ed8b42a8e1f8b546d/html5/thumbnails/10.jpg)
![Page 11: NET Architects Day - DNAD 2011](https://reader033.vdocuments.pub/reader033/viewer/2022052823/5555a65ed8b42a8e1f8b546d/html5/thumbnails/11.jpg)
![Page 12: NET Architects Day - DNAD 2011](https://reader033.vdocuments.pub/reader033/viewer/2022052823/5555a65ed8b42a8e1f8b546d/html5/thumbnails/12.jpg)
<prólogo>
![Page 13: NET Architects Day - DNAD 2011](https://reader033.vdocuments.pub/reader033/viewer/2022052823/5555a65ed8b42a8e1f8b546d/html5/thumbnails/13.jpg)
![Page 14: NET Architects Day - DNAD 2011](https://reader033.vdocuments.pub/reader033/viewer/2022052823/5555a65ed8b42a8e1f8b546d/html5/thumbnails/14.jpg)
![Page 15: NET Architects Day - DNAD 2011](https://reader033.vdocuments.pub/reader033/viewer/2022052823/5555a65ed8b42a8e1f8b546d/html5/thumbnails/15.jpg)
Como o cliente explicou
Como o Líder de Projeto entendeu
Como o Analista desenhou
Como o Programador escreveu
Como o Consultor de Negócios descreveu
Como o projeto foi documentado
Como Operações instalou
Como o cliente foi cobrado Como foi o suporte
O que o cliente realmente queria
![Page 16: NET Architects Day - DNAD 2011](https://reader033.vdocuments.pub/reader033/viewer/2022052823/5555a65ed8b42a8e1f8b546d/html5/thumbnails/16.jpg)
Requerimentos:ENTENDIDO!
![Page 17: NET Architects Day - DNAD 2011](https://reader033.vdocuments.pub/reader033/viewer/2022052823/5555a65ed8b42a8e1f8b546d/html5/thumbnails/17.jpg)
![Page 18: NET Architects Day - DNAD 2011](https://reader033.vdocuments.pub/reader033/viewer/2022052823/5555a65ed8b42a8e1f8b546d/html5/thumbnails/18.jpg)
LOL
![Page 19: NET Architects Day - DNAD 2011](https://reader033.vdocuments.pub/reader033/viewer/2022052823/5555a65ed8b42a8e1f8b546d/html5/thumbnails/19.jpg)
DESIGN
![Page 20: NET Architects Day - DNAD 2011](https://reader033.vdocuments.pub/reader033/viewer/2022052823/5555a65ed8b42a8e1f8b546d/html5/thumbnails/20.jpg)
DESIGN
![Page 21: NET Architects Day - DNAD 2011](https://reader033.vdocuments.pub/reader033/viewer/2022052823/5555a65ed8b42a8e1f8b546d/html5/thumbnails/21.jpg)
![Page 22: NET Architects Day - DNAD 2011](https://reader033.vdocuments.pub/reader033/viewer/2022052823/5555a65ed8b42a8e1f8b546d/html5/thumbnails/22.jpg)
![Page 23: NET Architects Day - DNAD 2011](https://reader033.vdocuments.pub/reader033/viewer/2022052823/5555a65ed8b42a8e1f8b546d/html5/thumbnails/23.jpg)
Pattern PADRÃO
![Page 24: NET Architects Day - DNAD 2011](https://reader033.vdocuments.pub/reader033/viewer/2022052823/5555a65ed8b42a8e1f8b546d/html5/thumbnails/24.jpg)
Pattern PADRÃO
Default
STANDARD
![Page 25: NET Architects Day - DNAD 2011](https://reader033.vdocuments.pub/reader033/viewer/2022052823/5555a65ed8b42a8e1f8b546d/html5/thumbnails/25.jpg)
“Pattern”
![Page 26: NET Architects Day - DNAD 2011](https://reader033.vdocuments.pub/reader033/viewer/2022052823/5555a65ed8b42a8e1f8b546d/html5/thumbnails/26.jpg)
![Page 27: NET Architects Day - DNAD 2011](https://reader033.vdocuments.pub/reader033/viewer/2022052823/5555a65ed8b42a8e1f8b546d/html5/thumbnails/27.jpg)
![Page 28: NET Architects Day - DNAD 2011](https://reader033.vdocuments.pub/reader033/viewer/2022052823/5555a65ed8b42a8e1f8b546d/html5/thumbnails/28.jpg)
NÃO é “Standard”!
![Page 29: NET Architects Day - DNAD 2011](https://reader033.vdocuments.pub/reader033/viewer/2022052823/5555a65ed8b42a8e1f8b546d/html5/thumbnails/29.jpg)
Christopher Alexander
![Page 30: NET Architects Day - DNAD 2011](https://reader033.vdocuments.pub/reader033/viewer/2022052823/5555a65ed8b42a8e1f8b546d/html5/thumbnails/30.jpg)
![Page 31: NET Architects Day - DNAD 2011](https://reader033.vdocuments.pub/reader033/viewer/2022052823/5555a65ed8b42a8e1f8b546d/html5/thumbnails/31.jpg)
![Page 32: NET Architects Day - DNAD 2011](https://reader033.vdocuments.pub/reader033/viewer/2022052823/5555a65ed8b42a8e1f8b546d/html5/thumbnails/32.jpg)
![Page 33: NET Architects Day - DNAD 2011](https://reader033.vdocuments.pub/reader033/viewer/2022052823/5555a65ed8b42a8e1f8b546d/html5/thumbnails/33.jpg)
![Page 34: NET Architects Day - DNAD 2011](https://reader033.vdocuments.pub/reader033/viewer/2022052823/5555a65ed8b42a8e1f8b546d/html5/thumbnails/34.jpg)
cada padrão (“pattern”)representa nosso melhor chute agora ...
os padrões ainda são hipóteses, ... e portanto todos são tentativas, todos livres para evoluir sob o impacto de novas experiências e observações."
Christopher Alexander
![Page 35: NET Architects Day - DNAD 2011](https://reader033.vdocuments.pub/reader033/viewer/2022052823/5555a65ed8b42a8e1f8b546d/html5/thumbnails/35.jpg)
![Page 36: NET Architects Day - DNAD 2011](https://reader033.vdocuments.pub/reader033/viewer/2022052823/5555a65ed8b42a8e1f8b546d/html5/thumbnails/36.jpg)
2 + 2 = 5!
![Page 37: NET Architects Day - DNAD 2011](https://reader033.vdocuments.pub/reader033/viewer/2022052823/5555a65ed8b42a8e1f8b546d/html5/thumbnails/37.jpg)
2 + 2 = 5!
![Page 38: NET Architects Day - DNAD 2011](https://reader033.vdocuments.pub/reader033/viewer/2022052823/5555a65ed8b42a8e1f8b546d/html5/thumbnails/38.jpg)
2 + 2 = 4!
![Page 39: NET Architects Day - DNAD 2011](https://reader033.vdocuments.pub/reader033/viewer/2022052823/5555a65ed8b42a8e1f8b546d/html5/thumbnails/39.jpg)
![Page 40: NET Architects Day - DNAD 2011](https://reader033.vdocuments.pub/reader033/viewer/2022052823/5555a65ed8b42a8e1f8b546d/html5/thumbnails/40.jpg)
![Page 41: NET Architects Day - DNAD 2011](https://reader033.vdocuments.pub/reader033/viewer/2022052823/5555a65ed8b42a8e1f8b546d/html5/thumbnails/41.jpg)
![Page 42: NET Architects Day - DNAD 2011](https://reader033.vdocuments.pub/reader033/viewer/2022052823/5555a65ed8b42a8e1f8b546d/html5/thumbnails/42.jpg)
![Page 43: NET Architects Day - DNAD 2011](https://reader033.vdocuments.pub/reader033/viewer/2022052823/5555a65ed8b42a8e1f8b546d/html5/thumbnails/43.jpg)
![Page 44: NET Architects Day - DNAD 2011](https://reader033.vdocuments.pub/reader033/viewer/2022052823/5555a65ed8b42a8e1f8b546d/html5/thumbnails/44.jpg)
Aqui estão os fatos. Que conclusões podemos
chegar com eles?
Aqui está a conclusão. Que fatos podemos suportar com eles?
![Page 45: NET Architects Day - DNAD 2011](https://reader033.vdocuments.pub/reader033/viewer/2022052823/5555a65ed8b42a8e1f8b546d/html5/thumbnails/45.jpg)
![Page 46: NET Architects Day - DNAD 2011](https://reader033.vdocuments.pub/reader033/viewer/2022052823/5555a65ed8b42a8e1f8b546d/html5/thumbnails/46.jpg)
![Page 47: NET Architects Day - DNAD 2011](https://reader033.vdocuments.pub/reader033/viewer/2022052823/5555a65ed8b42a8e1f8b546d/html5/thumbnails/47.jpg)
![Page 48: NET Architects Day - DNAD 2011](https://reader033.vdocuments.pub/reader033/viewer/2022052823/5555a65ed8b42a8e1f8b546d/html5/thumbnails/48.jpg)
![Page 49: NET Architects Day - DNAD 2011](https://reader033.vdocuments.pub/reader033/viewer/2022052823/5555a65ed8b42a8e1f8b546d/html5/thumbnails/49.jpg)
![Page 50: NET Architects Day - DNAD 2011](https://reader033.vdocuments.pub/reader033/viewer/2022052823/5555a65ed8b42a8e1f8b546d/html5/thumbnails/50.jpg)
![Page 51: NET Architects Day - DNAD 2011](https://reader033.vdocuments.pub/reader033/viewer/2022052823/5555a65ed8b42a8e1f8b546d/html5/thumbnails/51.jpg)
![Page 52: NET Architects Day - DNAD 2011](https://reader033.vdocuments.pub/reader033/viewer/2022052823/5555a65ed8b42a8e1f8b546d/html5/thumbnails/52.jpg)
![Page 53: NET Architects Day - DNAD 2011](https://reader033.vdocuments.pub/reader033/viewer/2022052823/5555a65ed8b42a8e1f8b546d/html5/thumbnails/53.jpg)
![Page 54: NET Architects Day - DNAD 2011](https://reader033.vdocuments.pub/reader033/viewer/2022052823/5555a65ed8b42a8e1f8b546d/html5/thumbnails/54.jpg)
![Page 55: NET Architects Day - DNAD 2011](https://reader033.vdocuments.pub/reader033/viewer/2022052823/5555a65ed8b42a8e1f8b546d/html5/thumbnails/55.jpg)
![Page 56: NET Architects Day - DNAD 2011](https://reader033.vdocuments.pub/reader033/viewer/2022052823/5555a65ed8b42a8e1f8b546d/html5/thumbnails/56.jpg)
80
![Page 57: NET Architects Day - DNAD 2011](https://reader033.vdocuments.pub/reader033/viewer/2022052823/5555a65ed8b42a8e1f8b546d/html5/thumbnails/57.jpg)
20
80
![Page 58: NET Architects Day - DNAD 2011](https://reader033.vdocuments.pub/reader033/viewer/2022052823/5555a65ed8b42a8e1f8b546d/html5/thumbnails/58.jpg)
20
80“Long Tail”
![Page 59: NET Architects Day - DNAD 2011](https://reader033.vdocuments.pub/reader033/viewer/2022052823/5555a65ed8b42a8e1f8b546d/html5/thumbnails/59.jpg)
![Page 60: NET Architects Day - DNAD 2011](https://reader033.vdocuments.pub/reader033/viewer/2022052823/5555a65ed8b42a8e1f8b546d/html5/thumbnails/60.jpg)
</prólogo>
![Page 61: NET Architects Day - DNAD 2011](https://reader033.vdocuments.pub/reader033/viewer/2022052823/5555a65ed8b42a8e1f8b546d/html5/thumbnails/61.jpg)
![Page 62: NET Architects Day - DNAD 2011](https://reader033.vdocuments.pub/reader033/viewer/2022052823/5555a65ed8b42a8e1f8b546d/html5/thumbnails/62.jpg)
Pequenos(Startups?)
Grandes(Enterprisey?)
![Page 63: NET Architects Day - DNAD 2011](https://reader033.vdocuments.pub/reader033/viewer/2022052823/5555a65ed8b42a8e1f8b546d/html5/thumbnails/63.jpg)
Pequenos(Startups?)
Grandes(Enterprisey?)
DDD
![Page 64: NET Architects Day - DNAD 2011](https://reader033.vdocuments.pub/reader033/viewer/2022052823/5555a65ed8b42a8e1f8b546d/html5/thumbnails/64.jpg)
Pequenos(Startups?)
Grandes(Enterprisey?)
DDD
“Light”
![Page 65: NET Architects Day - DNAD 2011](https://reader033.vdocuments.pub/reader033/viewer/2022052823/5555a65ed8b42a8e1f8b546d/html5/thumbnails/65.jpg)
Pequenos(Startups?)
Grandes(Enterprisey?)
![Page 66: NET Architects Day - DNAD 2011](https://reader033.vdocuments.pub/reader033/viewer/2022052823/5555a65ed8b42a8e1f8b546d/html5/thumbnails/66.jpg)
![Page 67: NET Architects Day - DNAD 2011](https://reader033.vdocuments.pub/reader033/viewer/2022052823/5555a65ed8b42a8e1f8b546d/html5/thumbnails/67.jpg)
Complexidade Acidental
![Page 68: NET Architects Day - DNAD 2011](https://reader033.vdocuments.pub/reader033/viewer/2022052823/5555a65ed8b42a8e1f8b546d/html5/thumbnails/68.jpg)
![Page 69: NET Architects Day - DNAD 2011](https://reader033.vdocuments.pub/reader033/viewer/2022052823/5555a65ed8b42a8e1f8b546d/html5/thumbnails/69.jpg)
Ruby on Rails é a melhor forma de desenvolver qualquer aplicação Web.
![Page 70: NET Architects Day - DNAD 2011](https://reader033.vdocuments.pub/reader033/viewer/2022052823/5555a65ed8b42a8e1f8b546d/html5/thumbnails/70.jpg)
![Page 71: NET Architects Day - DNAD 2011](https://reader033.vdocuments.pub/reader033/viewer/2022052823/5555a65ed8b42a8e1f8b546d/html5/thumbnails/71.jpg)
Todas as outras formas de desenvolver aplicações Web são inferiores a Ruby on Rails.
![Page 72: NET Architects Day - DNAD 2011](https://reader033.vdocuments.pub/reader033/viewer/2022052823/5555a65ed8b42a8e1f8b546d/html5/thumbnails/72.jpg)
![Page 73: NET Architects Day - DNAD 2011](https://reader033.vdocuments.pub/reader033/viewer/2022052823/5555a65ed8b42a8e1f8b546d/html5/thumbnails/73.jpg)
Ruby on Rails é uma das maneiras competentes de se desenvolver aplicações Web em alguns cenários.
![Page 74: NET Architects Day - DNAD 2011](https://reader033.vdocuments.pub/reader033/viewer/2022052823/5555a65ed8b42a8e1f8b546d/html5/thumbnails/74.jpg)
(linguagem)
1994
(framework web)
2004
![Page 75: NET Architects Day - DNAD 2011](https://reader033.vdocuments.pub/reader033/viewer/2022052823/5555a65ed8b42a8e1f8b546d/html5/thumbnails/75.jpg)
1.8.71.9.2
1.9.3-dev2.3.113.0.7
3.1-RC1
![Page 76: NET Architects Day - DNAD 2011](https://reader033.vdocuments.pub/reader033/viewer/2022052823/5555a65ed8b42a8e1f8b546d/html5/thumbnails/76.jpg)
1.8.71.9.2
1.9.3-dev2.3.113.0.7
3.1-RC1
![Page 77: NET Architects Day - DNAD 2011](https://reader033.vdocuments.pub/reader033/viewer/2022052823/5555a65ed8b42a8e1f8b546d/html5/thumbnails/77.jpg)
1.8.71.9.2
1.9.3-dev2.3.113.0.7
3.1-RC1
![Page 78: NET Architects Day - DNAD 2011](https://reader033.vdocuments.pub/reader033/viewer/2022052823/5555a65ed8b42a8e1f8b546d/html5/thumbnails/78.jpg)
1.8.71.9.2
1.9.3-dev2.3.113.0.7
3.1-RC1
![Page 79: NET Architects Day - DNAD 2011](https://reader033.vdocuments.pub/reader033/viewer/2022052823/5555a65ed8b42a8e1f8b546d/html5/thumbnails/79.jpg)
![Page 80: NET Architects Day - DNAD 2011](https://reader033.vdocuments.pub/reader033/viewer/2022052823/5555a65ed8b42a8e1f8b546d/html5/thumbnails/80.jpg)
gem install rails
rails new nome_do_projeto
![Page 81: NET Architects Day - DNAD 2011](https://reader033.vdocuments.pub/reader033/viewer/2022052823/5555a65ed8b42a8e1f8b546d/html5/thumbnails/81.jpg)
gem install rails
rails new nome_do_projeto
![Page 82: NET Architects Day - DNAD 2011](https://reader033.vdocuments.pub/reader033/viewer/2022052823/5555a65ed8b42a8e1f8b546d/html5/thumbnails/82.jpg)
gem install rails
rails new nome_do_projeto
SIM! Via CLI! :-P
![Page 83: NET Architects Day - DNAD 2011](https://reader033.vdocuments.pub/reader033/viewer/2022052823/5555a65ed8b42a8e1f8b546d/html5/thumbnails/83.jpg)
Web Server
Rack Middlewares
Routes
Controller
ModelView
Request
![Page 84: NET Architects Day - DNAD 2011](https://reader033.vdocuments.pub/reader033/viewer/2022052823/5555a65ed8b42a8e1f8b546d/html5/thumbnails/84.jpg)
Web Server
Rack Middlewares
Routes
Controller
ModelView
Request
![Page 85: NET Architects Day - DNAD 2011](https://reader033.vdocuments.pub/reader033/viewer/2022052823/5555a65ed8b42a8e1f8b546d/html5/thumbnails/85.jpg)
Web Server
Rack Middlewares
Routes
Controller
ModelView
Request
![Page 86: NET Architects Day - DNAD 2011](https://reader033.vdocuments.pub/reader033/viewer/2022052823/5555a65ed8b42a8e1f8b546d/html5/thumbnails/86.jpg)
Web Server
Rack Middlewares
Routes
Controller
ModelView
Request
![Page 87: NET Architects Day - DNAD 2011](https://reader033.vdocuments.pub/reader033/viewer/2022052823/5555a65ed8b42a8e1f8b546d/html5/thumbnails/87.jpg)
Web Server
Rack Middlewares
Routes
Controller
ModelView
Request
![Page 88: NET Architects Day - DNAD 2011](https://reader033.vdocuments.pub/reader033/viewer/2022052823/5555a65ed8b42a8e1f8b546d/html5/thumbnails/88.jpg)
Web Server
Rack Middlewares
Routes
Controller
ModelView
Request
![Page 89: NET Architects Day - DNAD 2011](https://reader033.vdocuments.pub/reader033/viewer/2022052823/5555a65ed8b42a8e1f8b546d/html5/thumbnails/89.jpg)
Web Server
Rack Middlewares
Routes
Controller
ModelView
Request
![Page 90: NET Architects Day - DNAD 2011](https://reader033.vdocuments.pub/reader033/viewer/2022052823/5555a65ed8b42a8e1f8b546d/html5/thumbnails/90.jpg)
Web Server
Rack Middlewares
Routes
Controller
ModelView
Request
![Page 91: NET Architects Day - DNAD 2011](https://reader033.vdocuments.pub/reader033/viewer/2022052823/5555a65ed8b42a8e1f8b546d/html5/thumbnails/91.jpg)
Web Server
Rack Middlewares
Routes
Controller
ModelView
Request
![Page 92: NET Architects Day - DNAD 2011](https://reader033.vdocuments.pub/reader033/viewer/2022052823/5555a65ed8b42a8e1f8b546d/html5/thumbnails/92.jpg)
Web Server
Rack Middlewares
Routes
Controller
ModelView
Request
![Page 93: NET Architects Day - DNAD 2011](https://reader033.vdocuments.pub/reader033/viewer/2022052823/5555a65ed8b42a8e1f8b546d/html5/thumbnails/93.jpg)
Web Server
Rack Middlewares
Routes
Controller
ModelView
Response Request
![Page 94: NET Architects Day - DNAD 2011](https://reader033.vdocuments.pub/reader033/viewer/2022052823/5555a65ed8b42a8e1f8b546d/html5/thumbnails/94.jpg)
![Page 95: NET Architects Day - DNAD 2011](https://reader033.vdocuments.pub/reader033/viewer/2022052823/5555a65ed8b42a8e1f8b546d/html5/thumbnails/95.jpg)
![Page 96: NET Architects Day - DNAD 2011](https://reader033.vdocuments.pub/reader033/viewer/2022052823/5555a65ed8b42a8e1f8b546d/html5/thumbnails/96.jpg)
~30 mil gems
~15 GB
![Page 97: NET Architects Day - DNAD 2011](https://reader033.vdocuments.pub/reader033/viewer/2022052823/5555a65ed8b42a8e1f8b546d/html5/thumbnails/97.jpg)
![Page 98: NET Architects Day - DNAD 2011](https://reader033.vdocuments.pub/reader033/viewer/2022052823/5555a65ed8b42a8e1f8b546d/html5/thumbnails/98.jpg)
bundle install
![Page 99: NET Architects Day - DNAD 2011](https://reader033.vdocuments.pub/reader033/viewer/2022052823/5555a65ed8b42a8e1f8b546d/html5/thumbnails/99.jpg)
RubyGems Library Assembly (DLL)
Rake MSBuild
Bundler NuGet
![Page 100: NET Architects Day - DNAD 2011](https://reader033.vdocuments.pub/reader033/viewer/2022052823/5555a65ed8b42a8e1f8b546d/html5/thumbnails/100.jpg)
> bundle list
Gems included by the bundle: * abstract (1.0.0) * actionmailer (3.0.7) * actionpack (3.0.7) * activemodel (3.0.7) * activerecord (3.0.7) * activeresource (3.0.7) * activesupport (3.0.7) * arel (2.0.9) * builder (2.1.2) * bundler (1.0.13) * erubis (2.6.6) * i18n (0.5.0)
* mail (2.2.19) * mime-types (1.16) * polyglot (0.3.1) * rack (1.2.2) * rack-mount (0.6.14) * rack-test (0.5.7) * rails (3.0.7) * railties (3.0.7) * rake (0.8.7) * sqlite3 (1.3.3) * thor (0.14.6) * treetop (1.4.9) * tzinfo (0.3.27)
![Page 101: NET Architects Day - DNAD 2011](https://reader033.vdocuments.pub/reader033/viewer/2022052823/5555a65ed8b42a8e1f8b546d/html5/thumbnails/101.jpg)
> bundle list
Gems included by the bundle: * abstract (1.0.0) * actionmailer (3.0.7) * actionpack (3.0.7) * activemodel (3.0.7) * activerecord (3.0.7) * activeresource (3.0.7) * activesupport (3.0.7) * arel (2.0.9) * builder (2.1.2) * bundler (1.0.13) * erubis (2.6.6) * i18n (0.5.0)
* mail (2.2.19) * mime-types (1.16) * polyglot (0.3.1) * rack (1.2.2) * rack-mount (0.6.14) * rack-test (0.5.7) * rails (3.0.7) * railties (3.0.7) * rake (0.8.7) * sqlite3 (1.3.3) * thor (0.14.6) * treetop (1.4.9) * tzinfo (0.3.27)
![Page 102: NET Architects Day - DNAD 2011](https://reader033.vdocuments.pub/reader033/viewer/2022052823/5555a65ed8b42a8e1f8b546d/html5/thumbnails/102.jpg)
> rake -T
rake about rake db:create rake db:drop rake db:fixtures:load rake db:migrate rake db:migrate:status rake db:rollback rake db:schema:dump rake db:schema:load rake db:seed rake db:setup rake db:structure:dump rake db:versionrake doc:app
rake log:clear rake middleware rake notes rake notes:custom rake rails:template rake rails:update rake routes rake secret rake stats rake test rake test:recent rake test:uncommitted rake time:zones:all rake tmp:clear rake tmp:create
![Page 103: NET Architects Day - DNAD 2011](https://reader033.vdocuments.pub/reader033/viewer/2022052823/5555a65ed8b42a8e1f8b546d/html5/thumbnails/103.jpg)
> rails generateUsage: rails generate GENERATOR [args] [options]
General options: -h, [--help] # Print generator's options and usage -p, [--pretend] # Run but do not make any changes -f, [--force] # Overwrite files that already exist -s, [--skip] # Skip files that already exist -q, [--quiet] # Suppress status output
Please choose a generator below.
Rails: controller generator helper integration_test mailer migration model
observer performance_test plugin resource scaffold scaffold_controller session_migration stylesheets
![Page 104: NET Architects Day - DNAD 2011](https://reader033.vdocuments.pub/reader033/viewer/2022052823/5555a65ed8b42a8e1f8b546d/html5/thumbnails/104.jpg)
> rake middleware
use ActionDispatch::Staticuse Rack::Lockuse ActiveSupport::Cache::Strategy::LocalCacheuse Rack::Runtimeuse Rails::Rack::Loggeruse ActionDispatch::ShowExceptionsuse ActionDispatch::RemoteIpuse Rack::Sendfileuse ActionDispatch::Callbacksuse ActiveRecord::ConnectionAdapters::ConnectionManagementuse ActiveRecord::QueryCacheuse ActionDispatch::Cookiesuse ActionDispatch::Session::CookieStoreuse ActionDispatch::Flashuse ActionDispatch::ParamsParseruse Rack::MethodOverrideuse ActionDispatch::Headuse ActionDispatch::BestStandardsSupportrun Demo::Application.routes
Rack Middlewares
![Page 105: NET Architects Day - DNAD 2011](https://reader033.vdocuments.pub/reader033/viewer/2022052823/5555a65ed8b42a8e1f8b546d/html5/thumbnails/105.jpg)
Web Server
Rack Middlewares
Routes
Controller
ModelView
Response Request
![Page 106: NET Architects Day - DNAD 2011](https://reader033.vdocuments.pub/reader033/viewer/2022052823/5555a65ed8b42a8e1f8b546d/html5/thumbnails/106.jpg)
Web Server
Rack Middlewares
Routes
Controller
ModelView
Response Request
![Page 107: NET Architects Day - DNAD 2011](https://reader033.vdocuments.pub/reader033/viewer/2022052823/5555a65ed8b42a8e1f8b546d/html5/thumbnails/107.jpg)
Web Server
Rack Middlewares
Routes
Controller
ModelView
Response Request
Application Server Rack:
Mongrel,Thin,
Passenger,Unicorn
![Page 108: NET Architects Day - DNAD 2011](https://reader033.vdocuments.pub/reader033/viewer/2022052823/5555a65ed8b42a8e1f8b546d/html5/thumbnails/108.jpg)
Web Server
Rack Middlewares
Routes
Controller
ModelView
Response Request
Web Server:NginX
Apache
Application Server Rack:
Mongrel,Thin,
Passenger,Unicorn
![Page 109: NET Architects Day - DNAD 2011](https://reader033.vdocuments.pub/reader033/viewer/2022052823/5555a65ed8b42a8e1f8b546d/html5/thumbnails/109.jpg)
NginX, Apache, Lighty, IIS
Mongrel, Thin, Unicorn, Passenger
Reverse Proxy
ActiveRecord/DataMapper
RDBMS/NoSQL
![Page 110: NET Architects Day - DNAD 2011](https://reader033.vdocuments.pub/reader033/viewer/2022052823/5555a65ed8b42a8e1f8b546d/html5/thumbnails/110.jpg)
NginX, Apache, Lighty, IIS
Mongrel, Thin, Unicorn, Passenger
Reverse Proxy
ActiveRecord/DataMapper
RDBMS/NoSQL
TidyTDS
SQL ServerSQL Azure
![Page 111: NET Architects Day - DNAD 2011](https://reader033.vdocuments.pub/reader033/viewer/2022052823/5555a65ed8b42a8e1f8b546d/html5/thumbnails/111.jpg)
NginX, Apache, Lighty, IIS
Mongrel, Thin, Unicorn, Passenger
Reverse Proxy
ActiveRecord/DataMapper
RDBMS/NoSQLWeb Services (REST, SOAP)
ActiveResource/RestClient/Savon
WCF
![Page 112: NET Architects Day - DNAD 2011](https://reader033.vdocuments.pub/reader033/viewer/2022052823/5555a65ed8b42a8e1f8b546d/html5/thumbnails/112.jpg)
NginX, Apache, Lighty, IIS
Mongrel, Thin, Unicorn, Passenger
Reverse Proxy
ActiveRecord/DataMapper
RDBMS/NoSQLWeb Services (REST, SOAP)
ActiveResource/RestClient/Savon
HAProxy
![Page 113: NET Architects Day - DNAD 2011](https://reader033.vdocuments.pub/reader033/viewer/2022052823/5555a65ed8b42a8e1f8b546d/html5/thumbnails/113.jpg)
NginX, Apache, Lighty, IIS
Mongrel, Thin, Unicorn, Passenger
Reverse Proxy
ActiveRecord/DataMapper
RDBMS/NoSQLWeb Services (REST, SOAP)
ActiveResource/RestClient/Savon
HAProxy
Varnish
![Page 114: NET Architects Day - DNAD 2011](https://reader033.vdocuments.pub/reader033/viewer/2022052823/5555a65ed8b42a8e1f8b546d/html5/thumbnails/114.jpg)
NginX, Apache, Lighty, IIS
Mongrel, Thin, Unicorn, Passenger
Reverse Proxy
ActiveRecord/DataMapper
RDBMS/NoSQLWeb Services (REST, SOAP)
ActiveResource/RestClient/Savon
HAProxy
Memcache
Varnish
![Page 115: NET Architects Day - DNAD 2011](https://reader033.vdocuments.pub/reader033/viewer/2022052823/5555a65ed8b42a8e1f8b546d/html5/thumbnails/115.jpg)
HTTPD
Request Request Request Request Request Request
RailsApp
RailsApp
RailsApp
RailsApp
RailsApp
RailsApp
RDBMS
HTTPD HTTPD HTTPD HTTPD HTTPD
![Page 116: NET Architects Day - DNAD 2011](https://reader033.vdocuments.pub/reader033/viewer/2022052823/5555a65ed8b42a8e1f8b546d/html5/thumbnails/116.jpg)
HTTPD
Request Request Request Request Request Request
RailsApp
RailsApp
RailsApp
RailsApp
RailsApp
RailsApp
RDBMS
HTTPD HTTPD HTTPD HTTPD HTTPD
![Page 117: NET Architects Day - DNAD 2011](https://reader033.vdocuments.pub/reader033/viewer/2022052823/5555a65ed8b42a8e1f8b546d/html5/thumbnails/117.jpg)
HTTPD
Request Request Request Request Request Request
RailsApp
RailsApp
RailsApp
RailsApp
RailsApp
RailsApp
RDBMS
HTTPD HTTPD HTTPD HTTPD HTTPD
Mais curto possível!
![Page 118: NET Architects Day - DNAD 2011](https://reader033.vdocuments.pub/reader033/viewer/2022052823/5555a65ed8b42a8e1f8b546d/html5/thumbnails/118.jpg)
Thread Context Switch
![Page 119: NET Architects Day - DNAD 2011](https://reader033.vdocuments.pub/reader033/viewer/2022052823/5555a65ed8b42a8e1f8b546d/html5/thumbnails/119.jpg)
Thread Context Switch
![Page 120: NET Architects Day - DNAD 2011](https://reader033.vdocuments.pub/reader033/viewer/2022052823/5555a65ed8b42a8e1f8b546d/html5/thumbnails/120.jpg)
![Page 121: NET Architects Day - DNAD 2011](https://reader033.vdocuments.pub/reader033/viewer/2022052823/5555a65ed8b42a8e1f8b546d/html5/thumbnails/121.jpg)
![Page 122: NET Architects Day - DNAD 2011](https://reader033.vdocuments.pub/reader033/viewer/2022052823/5555a65ed8b42a8e1f8b546d/html5/thumbnails/122.jpg)
$(':checkbox').map(function() { return this.id;}).get().join(',');
![Page 123: NET Architects Day - DNAD 2011](https://reader033.vdocuments.pub/reader033/viewer/2022052823/5555a65ed8b42a8e1f8b546d/html5/thumbnails/123.jpg)
![Page 124: NET Architects Day - DNAD 2011](https://reader033.vdocuments.pub/reader033/viewer/2022052823/5555a65ed8b42a8e1f8b546d/html5/thumbnails/124.jpg)
![Page 125: NET Architects Day - DNAD 2011](https://reader033.vdocuments.pub/reader033/viewer/2022052823/5555a65ed8b42a8e1f8b546d/html5/thumbnails/125.jpg)
Request RailsApp
![Page 126: NET Architects Day - DNAD 2011](https://reader033.vdocuments.pub/reader033/viewer/2022052823/5555a65ed8b42a8e1f8b546d/html5/thumbnails/126.jpg)
![Page 127: NET Architects Day - DNAD 2011](https://reader033.vdocuments.pub/reader033/viewer/2022052823/5555a65ed8b42a8e1f8b546d/html5/thumbnails/127.jpg)
![Page 128: NET Architects Day - DNAD 2011](https://reader033.vdocuments.pub/reader033/viewer/2022052823/5555a65ed8b42a8e1f8b546d/html5/thumbnails/128.jpg)
![Page 129: NET Architects Day - DNAD 2011](https://reader033.vdocuments.pub/reader033/viewer/2022052823/5555a65ed8b42a8e1f8b546d/html5/thumbnails/129.jpg)
![Page 130: NET Architects Day - DNAD 2011](https://reader033.vdocuments.pub/reader033/viewer/2022052823/5555a65ed8b42a8e1f8b546d/html5/thumbnails/130.jpg)
![Page 131: NET Architects Day - DNAD 2011](https://reader033.vdocuments.pub/reader033/viewer/2022052823/5555a65ed8b42a8e1f8b546d/html5/thumbnails/131.jpg)
![Page 132: NET Architects Day - DNAD 2011](https://reader033.vdocuments.pub/reader033/viewer/2022052823/5555a65ed8b42a8e1f8b546d/html5/thumbnails/132.jpg)
Eventos AssíncronosEnvio de mensagens
![Page 133: NET Architects Day - DNAD 2011](https://reader033.vdocuments.pub/reader033/viewer/2022052823/5555a65ed8b42a8e1f8b546d/html5/thumbnails/133.jpg)
HTTPD
Request Request Request Request Request Request
RailsApp
RailsApp
RailsApp
RailsApp
RailsApp
RailsApp
RDBMS
HTTPD HTTPD HTTPD HTTPD HTTPD
![Page 134: NET Architects Day - DNAD 2011](https://reader033.vdocuments.pub/reader033/viewer/2022052823/5555a65ed8b42a8e1f8b546d/html5/thumbnails/134.jpg)
NginX
Request Request Request Request Request Request
RDBMS
EventMachine
![Page 135: NET Architects Day - DNAD 2011](https://reader033.vdocuments.pub/reader033/viewer/2022052823/5555a65ed8b42a8e1f8b546d/html5/thumbnails/135.jpg)
NginX
Request Request Request Request Request Request
RDBMS
EventMachine “Look Ma!
No Threads!”
![Page 136: NET Architects Day - DNAD 2011](https://reader033.vdocuments.pub/reader033/viewer/2022052823/5555a65ed8b42a8e1f8b546d/html5/thumbnails/136.jpg)
NginX
Request Request Request Request Request Request
RDBMS
EventMachine “Look Ma!
No Threads!”
5k ~ 10kconexões
![Page 137: NET Architects Day - DNAD 2011](https://reader033.vdocuments.pub/reader033/viewer/2022052823/5555a65ed8b42a8e1f8b546d/html5/thumbnails/137.jpg)
NginX
Request Request Request Request Request Request
RDBMS
EventMachine “Look Ma!
No Threads!”
5k ~ 10kconexões
ConexõesLongas
![Page 138: NET Architects Day - DNAD 2011](https://reader033.vdocuments.pub/reader033/viewer/2022052823/5555a65ed8b42a8e1f8b546d/html5/thumbnails/138.jpg)
![Page 139: NET Architects Day - DNAD 2011](https://reader033.vdocuments.pub/reader033/viewer/2022052823/5555a65ed8b42a8e1f8b546d/html5/thumbnails/139.jpg)
<script src="http://js.pusherapp.com/1.8/pusher.min.js"></script>
<script>var pusher = new Pusher('API_KEY');var myChannel = pusher.subscribe('MEU_CANAL');</script>
![Page 140: NET Architects Day - DNAD 2011](https://reader033.vdocuments.pub/reader033/viewer/2022052823/5555a65ed8b42a8e1f8b546d/html5/thumbnails/140.jpg)
<script src="http://js.pusherapp.com/1.8/pusher.min.js"></script>
<script>var pusher = new Pusher('API_KEY');var myChannel = pusher.subscribe('MEU_CANAL');</script>
![Page 141: NET Architects Day - DNAD 2011](https://reader033.vdocuments.pub/reader033/viewer/2022052823/5555a65ed8b42a8e1f8b546d/html5/thumbnails/141.jpg)
<script src="http://js.pusherapp.com/1.8/pusher.min.js"></script>
<script>var pusher = new Pusher('API_KEY');var myChannel = pusher.subscribe('MEU_CANAL');</script>
![Page 142: NET Architects Day - DNAD 2011](https://reader033.vdocuments.pub/reader033/viewer/2022052823/5555a65ed8b42a8e1f8b546d/html5/thumbnails/142.jpg)
myChannel.bind('coisa-criada', function(thing) { alert('Uma coisa foi criada: ' + thing.name);});
![Page 143: NET Architects Day - DNAD 2011](https://reader033.vdocuments.pub/reader033/viewer/2022052823/5555a65ed8b42a8e1f8b546d/html5/thumbnails/143.jpg)
myChannel.bind('coisa-criada', function(thing) { alert('Uma coisa foi criada: ' + thing.name);});
![Page 144: NET Architects Day - DNAD 2011](https://reader033.vdocuments.pub/reader033/viewer/2022052823/5555a65ed8b42a8e1f8b546d/html5/thumbnails/144.jpg)
myChannel.bind('coisa-criada', function(thing) { alert('Uma coisa foi criada: ' + thing.name);});
![Page 145: NET Architects Day - DNAD 2011](https://reader033.vdocuments.pub/reader033/viewer/2022052823/5555a65ed8b42a8e1f8b546d/html5/thumbnails/145.jpg)
require 'pusher'
Pusher.app_id = 'APP_ID'Pusher.key = 'API_KEY'Pusher.secret = 'SECRET_KEY'
class ThingsController < ApplicationController def create @thing = Thing.new(params[:thing])
if @thing.save Pusher['MEU_CANAL'].trigger('coisa-criada', @thing.attributes) end endend
![Page 146: NET Architects Day - DNAD 2011](https://reader033.vdocuments.pub/reader033/viewer/2022052823/5555a65ed8b42a8e1f8b546d/html5/thumbnails/146.jpg)
require 'pusher'
Pusher.app_id = 'APP_ID'Pusher.key = 'API_KEY'Pusher.secret = 'SECRET_KEY'
class ThingsController < ApplicationController def create @thing = Thing.new(params[:thing])
if @thing.save Pusher['MEU_CANAL'].trigger('coisa-criada', @thing.attributes) end endend
![Page 147: NET Architects Day - DNAD 2011](https://reader033.vdocuments.pub/reader033/viewer/2022052823/5555a65ed8b42a8e1f8b546d/html5/thumbnails/147.jpg)
require 'pusher'
Pusher.app_id = 'APP_ID'Pusher.key = 'API_KEY'Pusher.secret = 'SECRET_KEY'
class ThingsController < ApplicationController def create @thing = Thing.new(params[:thing])
if @thing.save Pusher['MEU_CANAL'].trigger('coisa-criada', @thing.attributes) end endend
![Page 148: NET Architects Day - DNAD 2011](https://reader033.vdocuments.pub/reader033/viewer/2022052823/5555a65ed8b42a8e1f8b546d/html5/thumbnails/148.jpg)
require 'pusher'
Pusher.app_id = 'APP_ID'Pusher.key = 'API_KEY'Pusher.secret = 'SECRET_KEY'
class ThingsController < ApplicationController def create @thing = Thing.new(params[:thing])
if @thing.save Pusher['MEU_CANAL'].trigger('coisa-criada', @thing.attributes) end endend
![Page 149: NET Architects Day - DNAD 2011](https://reader033.vdocuments.pub/reader033/viewer/2022052823/5555a65ed8b42a8e1f8b546d/html5/thumbnails/149.jpg)
Arquitetura de Altíssima Concorrência
![Page 150: NET Architects Day - DNAD 2011](https://reader033.vdocuments.pub/reader033/viewer/2022052823/5555a65ed8b42a8e1f8b546d/html5/thumbnails/150.jpg)
(
![Page 151: NET Architects Day - DNAD 2011](https://reader033.vdocuments.pub/reader033/viewer/2022052823/5555a65ed8b42a8e1f8b546d/html5/thumbnails/151.jpg)
W. Edward Deming
![Page 152: NET Architects Day - DNAD 2011](https://reader033.vdocuments.pub/reader033/viewer/2022052823/5555a65ed8b42a8e1f8b546d/html5/thumbnails/152.jpg)
![Page 153: NET Architects Day - DNAD 2011](https://reader033.vdocuments.pub/reader033/viewer/2022052823/5555a65ed8b42a8e1f8b546d/html5/thumbnails/153.jpg)
IN GOD WE TRUST
Todos os outros devem trazer dados
![Page 154: NET Architects Day - DNAD 2011](https://reader033.vdocuments.pub/reader033/viewer/2022052823/5555a65ed8b42a8e1f8b546d/html5/thumbnails/154.jpg)
![Page 155: NET Architects Day - DNAD 2011](https://reader033.vdocuments.pub/reader033/viewer/2022052823/5555a65ed8b42a8e1f8b546d/html5/thumbnails/155.jpg)
EXPERIENCE BY ITSELF BRINGSNOTHING
![Page 156: NET Architects Day - DNAD 2011](https://reader033.vdocuments.pub/reader033/viewer/2022052823/5555a65ed8b42a8e1f8b546d/html5/thumbnails/156.jpg)
ACD
P
Ciclo “Plan-Do-Check-Act”(melhoria contínua)
![Page 157: NET Architects Day - DNAD 2011](https://reader033.vdocuments.pub/reader033/viewer/2022052823/5555a65ed8b42a8e1f8b546d/html5/thumbnails/157.jpg)
ACD
P
STANDARD
Ciclo “Plan-Do-Check-Act”(melhoria contínua)
![Page 158: NET Architects Day - DNAD 2011](https://reader033.vdocuments.pub/reader033/viewer/2022052823/5555a65ed8b42a8e1f8b546d/html5/thumbnails/158.jpg)
ACD
P
Ciclo “Plan-Do-Check-Act”(melhoria contínua)
![Page 159: NET Architects Day - DNAD 2011](https://reader033.vdocuments.pub/reader033/viewer/2022052823/5555a65ed8b42a8e1f8b546d/html5/thumbnails/159.jpg)
ACD
P
Ciclo “Plan-Do-Check-Act”(melhoria contínua)
![Page 160: NET Architects Day - DNAD 2011](https://reader033.vdocuments.pub/reader033/viewer/2022052823/5555a65ed8b42a8e1f8b546d/html5/thumbnails/160.jpg)
ACD
P
Ciclo “Plan-Do-Check-Act”(melhoria contínua)
![Page 161: NET Architects Day - DNAD 2011](https://reader033.vdocuments.pub/reader033/viewer/2022052823/5555a65ed8b42a8e1f8b546d/html5/thumbnails/161.jpg)
ACD
P
Ciclo “Plan-Do-Check-Act”(melhoria contínua)
![Page 162: NET Architects Day - DNAD 2011](https://reader033.vdocuments.pub/reader033/viewer/2022052823/5555a65ed8b42a8e1f8b546d/html5/thumbnails/162.jpg)
)
![Page 163: NET Architects Day - DNAD 2011](https://reader033.vdocuments.pub/reader033/viewer/2022052823/5555a65ed8b42a8e1f8b546d/html5/thumbnails/163.jpg)
![Page 164: NET Architects Day - DNAD 2011](https://reader033.vdocuments.pub/reader033/viewer/2022052823/5555a65ed8b42a8e1f8b546d/html5/thumbnails/164.jpg)
![Page 165: NET Architects Day - DNAD 2011](https://reader033.vdocuments.pub/reader033/viewer/2022052823/5555a65ed8b42a8e1f8b546d/html5/thumbnails/165.jpg)
![Page 166: NET Architects Day - DNAD 2011](https://reader033.vdocuments.pub/reader033/viewer/2022052823/5555a65ed8b42a8e1f8b546d/html5/thumbnails/166.jpg)
![Page 167: NET Architects Day - DNAD 2011](https://reader033.vdocuments.pub/reader033/viewer/2022052823/5555a65ed8b42a8e1f8b546d/html5/thumbnails/167.jpg)
![Page 168: NET Architects Day - DNAD 2011](https://reader033.vdocuments.pub/reader033/viewer/2022052823/5555a65ed8b42a8e1f8b546d/html5/thumbnails/168.jpg)
![Page 169: NET Architects Day - DNAD 2011](https://reader033.vdocuments.pub/reader033/viewer/2022052823/5555a65ed8b42a8e1f8b546d/html5/thumbnails/169.jpg)
![Page 170: NET Architects Day - DNAD 2011](https://reader033.vdocuments.pub/reader033/viewer/2022052823/5555a65ed8b42a8e1f8b546d/html5/thumbnails/170.jpg)
Perl
![Page 171: NET Architects Day - DNAD 2011](https://reader033.vdocuments.pub/reader033/viewer/2022052823/5555a65ed8b42a8e1f8b546d/html5/thumbnails/171.jpg)
![Page 172: NET Architects Day - DNAD 2011](https://reader033.vdocuments.pub/reader033/viewer/2022052823/5555a65ed8b42a8e1f8b546d/html5/thumbnails/172.jpg)
Python
![Page 173: NET Architects Day - DNAD 2011](https://reader033.vdocuments.pub/reader033/viewer/2022052823/5555a65ed8b42a8e1f8b546d/html5/thumbnails/173.jpg)
![Page 174: NET Architects Day - DNAD 2011](https://reader033.vdocuments.pub/reader033/viewer/2022052823/5555a65ed8b42a8e1f8b546d/html5/thumbnails/174.jpg)
PHP
![Page 175: NET Architects Day - DNAD 2011](https://reader033.vdocuments.pub/reader033/viewer/2022052823/5555a65ed8b42a8e1f8b546d/html5/thumbnails/175.jpg)
![Page 176: NET Architects Day - DNAD 2011](https://reader033.vdocuments.pub/reader033/viewer/2022052823/5555a65ed8b42a8e1f8b546d/html5/thumbnails/176.jpg)
Ruby
![Page 177: NET Architects Day - DNAD 2011](https://reader033.vdocuments.pub/reader033/viewer/2022052823/5555a65ed8b42a8e1f8b546d/html5/thumbnails/177.jpg)
OMG!
![Page 178: NET Architects Day - DNAD 2011](https://reader033.vdocuments.pub/reader033/viewer/2022052823/5555a65ed8b42a8e1f8b546d/html5/thumbnails/178.jpg)
2007
2008
2009
2010
2011
Ruby on Rails
![Page 179: NET Architects Day - DNAD 2011](https://reader033.vdocuments.pub/reader033/viewer/2022052823/5555a65ed8b42a8e1f8b546d/html5/thumbnails/179.jpg)
2.0.0
2.0.5
2007
2008
2009
2010
2011
6Ruby on Rails
![Page 180: NET Architects Day - DNAD 2011](https://reader033.vdocuments.pub/reader033/viewer/2022052823/5555a65ed8b42a8e1f8b546d/html5/thumbnails/180.jpg)
2.0.0
2.1.02.0.5
2.1.2
2007
2008
2009
2010
2011
6
3
Ruby on Rails
![Page 181: NET Architects Day - DNAD 2011](https://reader033.vdocuments.pub/reader033/viewer/2022052823/5555a65ed8b42a8e1f8b546d/html5/thumbnails/181.jpg)
2.0.0
2.1.0
2.2.0
2.0.5
2.1.2
2.2.3
2007
2008
2009
2010
2011
6
3
4
Ruby on Rails
![Page 182: NET Architects Day - DNAD 2011](https://reader033.vdocuments.pub/reader033/viewer/2022052823/5555a65ed8b42a8e1f8b546d/html5/thumbnails/182.jpg)
2.0.0
2.1.0
2.2.0
2.3.0
2.0.5
2.1.2
2.2.3
2.3.11
2007
2008
2009
2010
2011
6
3
4
12
Ruby on Rails
![Page 183: NET Architects Day - DNAD 2011](https://reader033.vdocuments.pub/reader033/viewer/2022052823/5555a65ed8b42a8e1f8b546d/html5/thumbnails/183.jpg)
2.0.0
2.1.0
2.2.0
2.3.0
3.0.0
2.0.5
2.1.2
2.2.3
2.3.11
3.0.7
2007
2008
2009
2010
2011
6
3
4
12
8
Ruby on Rails
![Page 184: NET Architects Day - DNAD 2011](https://reader033.vdocuments.pub/reader033/viewer/2022052823/5555a65ed8b42a8e1f8b546d/html5/thumbnails/184.jpg)
2.0.0
2.1.0
2.2.0
2.3.0
3.0.0
2.0.5
2.1.2
2.2.3
2.3.11
3.0.7
2007
2008
2009
2010
2011
Ruby on Rails
31Versões!
![Page 185: NET Architects Day - DNAD 2011](https://reader033.vdocuments.pub/reader033/viewer/2022052823/5555a65ed8b42a8e1f8b546d/html5/thumbnails/185.jpg)
![Page 186: NET Architects Day - DNAD 2011](https://reader033.vdocuments.pub/reader033/viewer/2022052823/5555a65ed8b42a8e1f8b546d/html5/thumbnails/186.jpg)
Web Server
Request
RailsApp
/public/stylesheets
![Page 187: NET Architects Day - DNAD 2011](https://reader033.vdocuments.pub/reader033/viewer/2022052823/5555a65ed8b42a8e1f8b546d/html5/thumbnails/187.jpg)
Web Server
Request
RailsApp
ArquivosEstáticos
/public/stylesheets
![Page 188: NET Architects Day - DNAD 2011](https://reader033.vdocuments.pub/reader033/viewer/2022052823/5555a65ed8b42a8e1f8b546d/html5/thumbnails/188.jpg)
![Page 189: NET Architects Day - DNAD 2011](https://reader033.vdocuments.pub/reader033/viewer/2022052823/5555a65ed8b42a8e1f8b546d/html5/thumbnails/189.jpg)
Variáveis/* CSS */
.content-navigation { border-color: #3bbfce; color: #2b9eab;}
.border { padding: 8px; margin: 8px; border-color: #3bbfce;}
$blue: #3bbfce;$margin: 16px;
.content-navigation { border-color: $blue; color: darken($blue, 9%);}
.border { padding: $margin / 2; margin: $margin / 2; border-color: $blue;}
![Page 190: NET Architects Day - DNAD 2011](https://reader033.vdocuments.pub/reader033/viewer/2022052823/5555a65ed8b42a8e1f8b546d/html5/thumbnails/190.jpg)
Nestingtable.hl { margin: 2em 0; td.ln { text-align: right; }}
li { font: { family: serif; weight: bold; size: 1.2em; }}
/* CSS */
table.hl { margin: 2em 0;}table.hl td.ln { text-align: right;}
li { font-family: serif; font-weight: bold; font-size: 1.2em;}
![Page 191: NET Architects Day - DNAD 2011](https://reader033.vdocuments.pub/reader033/viewer/2022052823/5555a65ed8b42a8e1f8b546d/html5/thumbnails/191.jpg)
Mixins@mixin table-base { th { text-align: center; font-weight: bold; } td, th {padding: 2px}}
@mixin left($dist) { float: left; margin-left: $dist;}
#data { @include left(10px); @include table-base;}
/* CSS */
#data { float: left; margin-left: 10px;}#data th { text-align: center; font-weight: bold;}#data td, #data th { padding: 2px;}
![Page 192: NET Architects Day - DNAD 2011](https://reader033.vdocuments.pub/reader033/viewer/2022052823/5555a65ed8b42a8e1f8b546d/html5/thumbnails/192.jpg)
Selector Inheritance.error { border: 1px #f00; background: #fdd;}.error.intrusion { font-size: 1.3em; font-weight: bold;}
.badError { @extend .error; border-width: 3px;}
/* CSS */
.error, .badError { border: 1px #f00; background: #fdd;}
.error.intrusion,
.badError.intrusion { font-size: 1.3em; font-weight: bold;}
.badError { border-width: 3px;}
![Page 193: NET Architects Day - DNAD 2011](https://reader033.vdocuments.pub/reader033/viewer/2022052823/5555a65ed8b42a8e1f8b546d/html5/thumbnails/193.jpg)
![Page 194: NET Architects Day - DNAD 2011](https://reader033.vdocuments.pub/reader033/viewer/2022052823/5555a65ed8b42a8e1f8b546d/html5/thumbnails/194.jpg)
class Animal constructor: (@name) ->
move: (meters) -> alert @name + " moved " + meters + "m."
class Snake extends Animal move: -> alert "Slithering..." super 5
class Horse extends Animal move: -> alert "Galloping..." super 45
sam = new Snake "Sammy the Python"tom = new Horse "Tommy the Palomino"
sam.move()tom.move()
![Page 195: NET Architects Day - DNAD 2011](https://reader033.vdocuments.pub/reader033/viewer/2022052823/5555a65ed8b42a8e1f8b546d/html5/thumbnails/195.jpg)
class Animal constructor: (@name) ->
move: (meters) -> alert @name + " moved " + meters + "m."
class Snake extends Animal move: -> alert "Slithering..." super 5
class Horse extends Animal move: -> alert "Galloping..." super 45
sam = new Snake "Sammy the Python"tom = new Horse "Tommy the Palomino"
sam.move()tom.move()
var Animal, Horse, Snake, sam, tom;var __hasProp = Object.prototype.hasOwnProperty, __extends = function(child, parent) { for (var key in parent) { if (__hasProp.call(parent, key)) child[key] = parent[key]; } function ctor() { this.constructor = child; } ctor.prototype = parent.prototype; child.prototype = new ctor; child.__super__ = parent.prototype; return child;};Animal = (function() { function Animal(name) { this.name = name; } Animal.prototype.move = function(meters) { return alert(this.name + " moved " + meters + "m."); }; return Animal;})();Snake = (function() { __extends(Snake, Animal); function Snake() { Snake.__super__.constructor.apply(this, arguments); } Snake.prototype.move = function() { alert("Slithering..."); return Snake.__super__.move.call(this, 5); }; return Snake;})();Horse = (function() { __extends(Horse, Animal); function Horse() { Horse.__super__.constructor.apply(this, arguments); } Horse.prototype.move = function() { alert("Galloping..."); return Horse.__super__.move.call(this, 45); }; return Horse;})();sam = new Snake("Sammy the Python");tom = new Horse("Tommy the Palomino");sam.move();tom.move();loadrun
![Page 196: NET Architects Day - DNAD 2011](https://reader033.vdocuments.pub/reader033/viewer/2022052823/5555a65ed8b42a8e1f8b546d/html5/thumbnails/196.jpg)
![Page 197: NET Architects Day - DNAD 2011](https://reader033.vdocuments.pub/reader033/viewer/2022052823/5555a65ed8b42a8e1f8b546d/html5/thumbnails/197.jpg)
![Page 198: NET Architects Day - DNAD 2011](https://reader033.vdocuments.pub/reader033/viewer/2022052823/5555a65ed8b42a8e1f8b546d/html5/thumbnails/198.jpg)
102
![Page 199: NET Architects Day - DNAD 2011](https://reader033.vdocuments.pub/reader033/viewer/2022052823/5555a65ed8b42a8e1f8b546d/html5/thumbnails/199.jpg)
Web Server(Produção)
Request
RailsApp
/app/assets
Web Server(Desenvolvimento)
Request
/public
![Page 200: NET Architects Day - DNAD 2011](https://reader033.vdocuments.pub/reader033/viewer/2022052823/5555a65ed8b42a8e1f8b546d/html5/thumbnails/200.jpg)
Web Server(Produção)
Request
RailsApp
/app/assets
Web Server(Desenvolvimento)
Request
Sprockets
/public
![Page 201: NET Architects Day - DNAD 2011](https://reader033.vdocuments.pub/reader033/viewer/2022052823/5555a65ed8b42a8e1f8b546d/html5/thumbnails/201.jpg)
Web Server(Produção)
Request
RailsApp
/app/assets
Web Server(Desenvolvimento)
Request
Sprockets
Tilt
/public
![Page 202: NET Architects Day - DNAD 2011](https://reader033.vdocuments.pub/reader033/viewer/2022052823/5555a65ed8b42a8e1f8b546d/html5/thumbnails/202.jpg)
Web Server(Produção)
Request
RailsApp
/app/assets
Web Server(Desenvolvimento)
Request
Sprockets
Tilt
Ugli!er
/public
![Page 203: NET Architects Day - DNAD 2011](https://reader033.vdocuments.pub/reader033/viewer/2022052823/5555a65ed8b42a8e1f8b546d/html5/thumbnails/203.jpg)
ENGINE FILE EXTENSIONS REQUIRED LIBRARIES
ERB .erb, .rhtmlnone
Interpolated String .strnone
Erubis .erb, .rhtml, .erubis erubis
Haml .haml haml
Sass .sasssass
Scss .scsssass
Less CSS .less less
Builder .builder builder
Liquid .liquid liquid
RDiscount
.markdown, .mkd, .md
rdiscount
Redcarpet
.markdown, .mkd, .md
redcarpet
BlueCloth .markdown, .mkd, .md bluecloth
Kramdown
.markdown, .mkd, .md
kramdown
Maruku
.markdown, .mkd, .md
maruku
RedCloth .textile redcloth
RDoc .rdoc rdoc
Radius .radius radius
Markaby .mab markaby
Nokogiri .nokogiri nokogiri
CoffeeScript .coffee coffee-script
Creole (Wiki markup) .creole creole
![Page 204: NET Architects Day - DNAD 2011](https://reader033.vdocuments.pub/reader033/viewer/2022052823/5555a65ed8b42a8e1f8b546d/html5/thumbnails/204.jpg)
Rails 3.1:Release Candidate
(may 2011)
![Page 205: NET Architects Day - DNAD 2011](https://reader033.vdocuments.pub/reader033/viewer/2022052823/5555a65ed8b42a8e1f8b546d/html5/thumbnails/205.jpg)
![Page 206: NET Architects Day - DNAD 2011](https://reader033.vdocuments.pub/reader033/viewer/2022052823/5555a65ed8b42a8e1f8b546d/html5/thumbnails/206.jpg)
![Page 207: NET Architects Day - DNAD 2011](https://reader033.vdocuments.pub/reader033/viewer/2022052823/5555a65ed8b42a8e1f8b546d/html5/thumbnails/207.jpg)
![Page 208: NET Architects Day - DNAD 2011](https://reader033.vdocuments.pub/reader033/viewer/2022052823/5555a65ed8b42a8e1f8b546d/html5/thumbnails/208.jpg)
![Page 209: NET Architects Day - DNAD 2011](https://reader033.vdocuments.pub/reader033/viewer/2022052823/5555a65ed8b42a8e1f8b546d/html5/thumbnails/209.jpg)
![Page 210: NET Architects Day - DNAD 2011](https://reader033.vdocuments.pub/reader033/viewer/2022052823/5555a65ed8b42a8e1f8b546d/html5/thumbnails/210.jpg)
RubyConfBrasil
3 e 4 de Novembrowww.rubyconf.com.br
![Page 211: NET Architects Day - DNAD 2011](https://reader033.vdocuments.pub/reader033/viewer/2022052823/5555a65ed8b42a8e1f8b546d/html5/thumbnails/211.jpg)
<epílogo>
![Page 212: NET Architects Day - DNAD 2011](https://reader033.vdocuments.pub/reader033/viewer/2022052823/5555a65ed8b42a8e1f8b546d/html5/thumbnails/212.jpg)
@pedroh96
Pedro Franceschi
![Page 213: NET Architects Day - DNAD 2011](https://reader033.vdocuments.pub/reader033/viewer/2022052823/5555a65ed8b42a8e1f8b546d/html5/thumbnails/213.jpg)
15 anos
@pedroh96
Pedro Franceschi
![Page 214: NET Architects Day - DNAD 2011](https://reader033.vdocuments.pub/reader033/viewer/2022052823/5555a65ed8b42a8e1f8b546d/html5/thumbnails/214.jpg)
9 anos
@pedroh96
Pedro Franceschi
![Page 215: NET Architects Day - DNAD 2011](https://reader033.vdocuments.pub/reader033/viewer/2022052823/5555a65ed8b42a8e1f8b546d/html5/thumbnails/215.jpg)
6 anos
@pedroh96
Pedro Franceschi
![Page 216: NET Architects Day - DNAD 2011](https://reader033.vdocuments.pub/reader033/viewer/2022052823/5555a65ed8b42a8e1f8b546d/html5/thumbnails/216.jpg)
@pedroh96
Pedro Franceschi
![Page 217: NET Architects Day - DNAD 2011](https://reader033.vdocuments.pub/reader033/viewer/2022052823/5555a65ed8b42a8e1f8b546d/html5/thumbnails/217.jpg)
![Page 218: NET Architects Day - DNAD 2011](https://reader033.vdocuments.pub/reader033/viewer/2022052823/5555a65ed8b42a8e1f8b546d/html5/thumbnails/218.jpg)
![Page 219: NET Architects Day - DNAD 2011](https://reader033.vdocuments.pub/reader033/viewer/2022052823/5555a65ed8b42a8e1f8b546d/html5/thumbnails/219.jpg)
![Page 220: NET Architects Day - DNAD 2011](https://reader033.vdocuments.pub/reader033/viewer/2022052823/5555a65ed8b42a8e1f8b546d/html5/thumbnails/220.jpg)
![Page 221: NET Architects Day - DNAD 2011](https://reader033.vdocuments.pub/reader033/viewer/2022052823/5555a65ed8b42a8e1f8b546d/html5/thumbnails/221.jpg)
</epílogo>
![Page 222: NET Architects Day - DNAD 2011](https://reader033.vdocuments.pub/reader033/viewer/2022052823/5555a65ed8b42a8e1f8b546d/html5/thumbnails/222.jpg)
Obrigado!www.akitaonrails.com
.com.br
u.akita.ws/dnad11