caelum dicas web 2010

141
A apresentação já vai começar ... Friday, April 16, 2010

Upload: fabio-akita

Post on 08-May-2015

2.287 views

Category:

Technology


0 download

DESCRIPTION

Palestra sobre Dicas de desenvolvimento Web na Caelum, em Abril de 2010.

TRANSCRIPT

Page 1: Caelum dicas web 2010

A apresentação já vai começar ...

Friday, April 16, 2010

Page 2: Caelum dicas web 2010

AkitaOnRails.com

Friday, April 16, 2010

Page 3: Caelum dicas web 2010

~ 50 min~ 85 slides

Friday, April 16, 2010

Page 5: Caelum dicas web 2010

Entendendo a WebDicas sobre Desenvolvimento Web com Ruby

Fabio Akita

Friday, April 16, 2010

Page 6: Caelum dicas web 2010

Friday, April 16, 2010

Page 7: Caelum dicas web 2010

Recapitulando ...

Friday, April 16, 2010

Page 8: Caelum dicas web 2010

Rails não Escala

Friday, April 16, 2010

Page 9: Caelum dicas web 2010

Rails não Escala(TM)

Friday, April 16, 2010

Page 10: Caelum dicas web 2010

Friday, April 16, 2010

Page 11: Caelum dicas web 2010

Friday, April 16, 2010

Page 13: Caelum dicas web 2010

Para colocar as coisas em perspectiva, o Friendster foi

escrito em Java e eles mudaram para PHP. MySpace foi escrito

em ColdFusion e eles mudaram para ASP.NET.

Blaine Cook

http://www.akitaonrails.com/2008/6/17/chatting-with-blaine-cook-twitter

Friday, April 16, 2010

Page 14: Caelum dicas web 2010

Para colocar as coisas em perspectiva, o Friendster foi

escrito em Java e eles mudaram para PHP. MySpace foi escrito

em ColdFusion e eles mudaram para ASP.NET.

Blaine Cook

http://www.akitaonrails.com/2008/6/17/chatting-with-blaine-cook-twitter

Quando as pessoas caem em problemas de escalabilidade, normalmente acham que a

linguagem é o problema, mas eu acho que isso raramente é a

realidade.

Friday, April 16, 2010

Page 15: Caelum dicas web 2010

http://www.computerworld.com.au/article/268003/ruby_rails_rolls_into_enterprise?fp=16&fpid=1

“O The New York Times usou Ruby on Rails para agregar, analizar e mostrar os resultados das

eleições em quase tempo real em um de seus sites mais acessados de todos os tempos.”

Friday, April 16, 2010

Page 16: Caelum dicas web 2010

http://www.computerworld.com.au/article/268003/ruby_rails_rolls_into_enterprise?fp=16&fpid=1

“O The New York Times usou Ruby on Rails para agregar, analizar e mostrar os resultados das

eleições em quase tempo real em um de seus sites mais acessados de todos os tempos.”

Friday, April 16, 2010

Page 17: Caelum dicas web 2010

Web Server

MySQL

Browser

Friday, April 16, 2010

Page 18: Caelum dicas web 2010

Web Server

MySQL

Browser

Varnish/HAProxy

Friday, April 16, 2010

Page 19: Caelum dicas web 2010

Web Server

MySQL

Browser

Varnish/HAProxy

Memcached

Friday, April 16, 2010

Page 20: Caelum dicas web 2010

Web Server

MySQL

Browser

Varnish/HAProxy

Memcached

CouchDB/MongoDB

Friday, April 16, 2010

Page 21: Caelum dicas web 2010

Ruby é Lento

Friday, April 16, 2010

Page 22: Caelum dicas web 2010

Ruby é Lento(TM)

Friday, April 16, 2010

Page 23: Caelum dicas web 2010

Existem mentiras, mentiras malditas e

estatísticas.

Friday, April 16, 2010

Page 24: Caelum dicas web 2010

Existem mentiras, mentiras malditas e

estatísticas.

Friday, April 16, 2010

Page 25: Caelum dicas web 2010

Existem mentiras, mentiras malditas e

estatísticas.

Friday, April 16, 2010

Page 26: Caelum dicas web 2010

Friday, April 16, 2010

Page 27: Caelum dicas web 2010

x mais lento que C++

Friday, April 16, 2010

Page 28: Caelum dicas web 2010

0 32.5 65 97.5 130

Python 2

Ruby 1.9

JRuby

Perl

Python 3

PHP

Ruby 1.8

x mais lento que C++

Friday, April 16, 2010

Page 29: Caelum dicas web 2010

Homepage: 331 ms

Friday, April 16, 2010

Page 30: Caelum dicas web 2010

Homepage: 331 ms

Total: 5.45 s

Friday, April 16, 2010

Page 31: Caelum dicas web 2010

Performance!=

Escalabilidade

Friday, April 16, 2010

Page 32: Caelum dicas web 2010

Exemplo

Friday, April 16, 2010

Page 33: Caelum dicas web 2010

Friday, April 16, 2010

Page 34: Caelum dicas web 2010

Friday, April 16, 2010

Page 35: Caelum dicas web 2010

Friday, April 16, 2010

Page 36: Caelum dicas web 2010

Friday, April 16, 2010

Page 37: Caelum dicas web 2010

Friday, April 16, 2010

Page 38: Caelum dicas web 2010

Friday, April 16, 2010

Page 39: Caelum dicas web 2010

Friday, April 16, 2010

Page 40: Caelum dicas web 2010

Friday, April 16, 2010

Page 41: Caelum dicas web 2010

Friday, April 16, 2010

Page 42: Caelum dicas web 2010

6Técnicas

Friday, April 16, 2010

Page 43: Caelum dicas web 2010

Menos Requisições

Friday, April 16, 2010

Page 44: Caelum dicas web 2010

Mini!que CSS e Javascript

Friday, April 16, 2010

Page 45: Caelum dicas web 2010

Juicerhttp://github.com/cjohansen/juicer/

Friday, April 16, 2010

Page 46: Caelum dicas web 2010

gem install juicer

script/plugin install git://github.com/ktheory/juicer-rails.git

Friday, April 16, 2010

Page 47: Caelum dicas web 2010

gem install juicer

script/plugin install git://github.com/ktheory/juicer-rails.git

Friday, April 16, 2010

Page 48: Caelum dicas web 2010

juicer install yuicompressor

juicer install jslint

juicer install closure_compiler

Friday, April 16, 2010

Page 49: Caelum dicas web 2010

juicer install yuicompressor

juicer install jslint

juicer install closure_compiler

Friday, April 16, 2010

Page 50: Caelum dicas web 2010

juicer install yuicompressor

juicer install jslint

juicer install closure_compiler

Friday, April 16, 2010

Page 51: Caelum dicas web 2010

<%= juiced_tag '/stylesheets/application.css' %> <%= yield(:head) %>

</head><body>

... <%= juiced_tag '/javascripts/application.js' %>

</body>

/app/views/layouts/application.html.erb

Friday, April 16, 2010

Page 52: Caelum dicas web 2010

<%= juiced_tag '/stylesheets/application.css' %> <%= yield(:head) %>

</head><body>

... <%= juiced_tag '/javascripts/application.js' %>

</body>

/app/views/layouts/application.html.erb

Friday, April 16, 2010

Page 53: Caelum dicas web 2010

@import url("reset.css");@import url("base.css");@import url("fonts.css");

...

/* @depends jquery-1.4.min.js @depends jquery.edit_in_place.js @depends jqueryamail.js*/

...

/public/stylesheets/application.css

/public/javascripts/application.js

Friday, April 16, 2010

Page 54: Caelum dicas web 2010

@import url("reset.css");@import url("base.css");@import url("fonts.css");

...

/* @depends jquery-1.4.min.js @depends jquery.edit_in_place.js @depends jqueryamail.js*/

...

/public/stylesheets/application.css

/public/javascripts/application.js

Friday, April 16, 2010

Page 55: Caelum dicas web 2010

juicer merge public/stylesheets/application.css

public/stylesheets/application.min.css

juicer merge -i public/javascripts/application.js

public/javascripts/application.min.js

Friday, April 16, 2010

Page 56: Caelum dicas web 2010

juicer merge public/stylesheets/application.css

public/stylesheets/application.min.css

juicer merge -i public/javascripts/application.js

public/javascripts/application.min.js

Friday, April 16, 2010

Page 57: Caelum dicas web 2010

juicer merge public/stylesheets/application.css

public/stylesheets/application.min.css

juicer merge -i public/javascripts/application.js

public/javascripts/application.min.js

Friday, April 16, 2010

Page 58: Caelum dicas web 2010

juicer merge public/stylesheets/application.css

public/stylesheets/application.min.css

juicer merge -i public/javascripts/application.js

public/javascripts/application.min.js

Friday, April 16, 2010

Page 59: Caelum dicas web 2010

DEVELOPMENT

Friday, April 16, 2010

Page 60: Caelum dicas web 2010

PRODUCTION

Friday, April 16, 2010

Page 61: Caelum dicas web 2010

Asset HostsNavegadores abrem poucas conexões

simultâneas por domínio

Friday, April 16, 2010

Page 62: Caelum dicas web 2010

Friday, April 16, 2010

Page 63: Caelum dicas web 2010

def gallery gallery_path = File.join(Rails.root, "public/images/gallery/")

@images = Dir.glob(gallery_path + "*").map{ |f| f.gsub(gallery_path, "") }

end

/app/controllers/hello_controller.rb

Friday, April 16, 2010

Page 64: Caelum dicas web 2010

def gallery gallery_path = File.join(Rails.root, "public/images/gallery/")

@images = Dir.glob(gallery_path + "*").map{ |f| f.gsub(gallery_path, "") }

end

/app/controllers/hello_controller.rb

/app/views/hello/gallery.html.erb

<% title "Gallery" %>

<% @images.each do |image| -%> <%= image_tag "gallery/#{image}" %>

<% end -%>

Friday, April 16, 2010

Page 65: Caelum dicas web 2010

def gallery gallery_path = File.join(Rails.root, "public/images/gallery/")

@images = Dir.glob(gallery_path + "*").map{ |f| f.gsub(gallery_path, "") }

end

/app/controllers/hello_controller.rb

/app/views/hello/gallery.html.erb

<% title "Gallery" %>

<% @images.each do |image| -%> <%= image_tag "gallery/#{image}" %>

<% end -%>

Friday, April 16, 2010

Page 66: Caelum dicas web 2010

DEVELOPMENT

Friday, April 16, 2010

Page 67: Caelum dicas web 2010

DEVELOPMENT

Friday, April 16, 2010

Page 68: Caelum dicas web 2010

/con!g/environments/production.rb

config.action_controller.asset_host = Proc.new do |source, request| protocol = if request.ssl?

request.headers["USER_AGENT"] =~ /(Safari)/ ? "http" : "https" else

"http" end

"#{protocol}://asset#{rand(6) + 1}.akitaonrails.local:3000"end

Friday, April 16, 2010

Page 69: Caelum dicas web 2010

/con!g/environments/production.rb

config.action_controller.asset_host = Proc.new do |source, request| protocol = if request.ssl?

request.headers["USER_AGENT"] =~ /(Safari)/ ? "http" : "https" else

"http" end

"#{protocol}://asset#{rand(6) + 1}.akitaonrails.local:3000"end

Friday, April 16, 2010

Page 70: Caelum dicas web 2010

### Host Database## localhost is used to configure the loopback interface# when the system is booting. Do not change this entry.##127.0.0.1 localhost255.255.255.255 broadcasthost::1 localhost fe80::1%lo0 localhost127.0.0.1 asset1.akitaonrails.local asset2.akitaonrails.local asset3.akitaonrails.local asset4.akitaonrails.local asset5.akitaonrails.local asset6.akitaonrails.local www.akitaonrails.local

/etc/hosts

Friday, April 16, 2010

Page 71: Caelum dicas web 2010

PRODUCTION

Friday, April 16, 2010

Page 72: Caelum dicas web 2010

PRODUCTION

Friday, April 16, 2010

Page 73: Caelum dicas web 2010

Javascript embaixo!

Friday, April 16, 2010

Page 74: Caelum dicas web 2010

<head> <title><%= h(yield(:title) || "Untitled") %></title> <%= stylesheet_link_tag 'application' %> <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.4.0/jquery.min.js" type="text/javascript"></script> <script src="http://ajax.googleapis.com/ajax/libs/jqueryui/1.7.2/jquery-ui.min.js" type="text/javascript"></script> <script src="http://ajax.googleapis.com/ajax/libs/swfobject/2.2/swfobject.js" type="text/javascript"></script> <script src="http://ajax.googleapis.com/ajax/libs/chrome-frame/1.0.2/CFInstall.min.js" type="text/javascript"></script> <%= yield(:head) %></head><body>...

/app/views/layouts/application.html.erb

Friday, April 16, 2010

Page 75: Caelum dicas web 2010

<head> <title><%= h(yield(:title) || "Untitled") %></title> <%= stylesheet_link_tag 'application' %> <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.4.0/jquery.min.js" type="text/javascript"></script> <script src="http://ajax.googleapis.com/ajax/libs/jqueryui/1.7.2/jquery-ui.min.js" type="text/javascript"></script> <script src="http://ajax.googleapis.com/ajax/libs/swfobject/2.2/swfobject.js" type="text/javascript"></script> <script src="http://ajax.googleapis.com/ajax/libs/chrome-frame/1.0.2/CFInstall.min.js" type="text/javascript"></script> <%= yield(:head) %></head><body>...

/app/views/layouts/application.html.erb

Friday, April 16, 2010

Page 76: Caelum dicas web 2010

... <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.4.0/jquery.min.js" type="text/javascript"></script> <script src="http://ajax.googleapis.com/ajax/libs/jqueryui/1.7.2/jquery-ui.min.js" type="text/javascript"></script> <script src="http://ajax.googleapis.com/ajax/libs/swfobject/2.2/swfobject.js" type="text/javascript"></script> <script src="http://ajax.googleapis.com/ajax/libs/chrome-frame/1.0.2/CFInstall.min.js" type="text/javascript"></script> <script type="text/javascript"> // meu javascript customizado ... </script> </body></html>

/app/views/layouts/application.html.erb

Friday, April 16, 2010

Page 77: Caelum dicas web 2010

... <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.4.0/jquery.min.js" type="text/javascript"></script> <script src="http://ajax.googleapis.com/ajax/libs/jqueryui/1.7.2/jquery-ui.min.js" type="text/javascript"></script> <script src="http://ajax.googleapis.com/ajax/libs/swfobject/2.2/swfobject.js" type="text/javascript"></script> <script src="http://ajax.googleapis.com/ajax/libs/chrome-frame/1.0.2/CFInstall.min.js" type="text/javascript"></script> <script type="text/javascript"> // meu javascript customizado ... </script> </body></html>

/app/views/layouts/application.html.erb

Friday, April 16, 2010

Page 78: Caelum dicas web 2010

Gzip

Friday, April 16, 2010

Page 79: Caelum dicas web 2010

a2enmod de"ate

editar/etc/apache2/mods-available/de"ate.conf

Friday, April 16, 2010

Page 80: Caelum dicas web 2010

a2enmod de"ate

editar/etc/apache2/mods-available/de"ate.conf

Friday, April 16, 2010

Page 81: Caelum dicas web 2010

<IfModule mod_deflate.c> AddOutputFilterByType DEFLATE text/plain AddOutputFilterByType DEFLATE text/html AddOutputFilterByType DEFLATE text/xml AddOutputFilterByType DEFLATE text/css AddOutputFilterByType DEFLATE image/svg+xml AddOutputFilterByType DEFLATE image/x-icon AddOutputFilterByType DEFLATE application/xml AddOutputFilterByType DEFLATE application/xhtml+xml AddOutputFilterByType DEFLATE application/rss+xml AddOutputFilterByType DEFLATE application/javascript AddOutputFilterByType DEFLATE application/x-javascript

AddOutputFilterByType DEFLATE application/x-httpd-php AddOutputFilterByType DEFLATE application/x-httpd-fastphp AddOutputFilterByType DEFLATE application/x-httpd-eruby

DeflateCompressionLevel 9

# Netscape 4.X has some problems BrowserMatch ^Mozilla/4 gzip-only-text/html

# Netscape 4.06-4.08 have some more problems BrowserMatch ^Mozilla/4\.0[678] no-gzip

# MSIE masquerades as Netscape, but it is fine BrowserMatch \bMSIE !no-gzip !gzip-only-text/html</IfModule>

/etc/apache2/mods-available/de"ate.conf

Friday, April 16, 2010

Page 82: Caelum dicas web 2010

Cabeçalhos de Expiração

Friday, April 16, 2010

Page 83: Caelum dicas web 2010

a2enmod expires

editar/etc/apache2/mods-available/expires.conf

Friday, April 16, 2010

Page 84: Caelum dicas web 2010

a2enmod expires

editar/etc/apache2/mods-available/expires.conf

Friday, April 16, 2010

Page 85: Caelum dicas web 2010

<IfModule mod_expires.c> ExpiresByType image/x-icon "access plus 1 year" ExpiresByType image/png "access plus 1 year" ExpiresByType image/jpg "access plus 1 year" ExpiresByType image/gif "access plus 1 year" ExpiresByType image/jpeg "access plus 1 year" ExpiresByType application/pdf "access plus 1 year" ExpiresByType audio/x-wav "access plus 1 year" ExpiresByType audio/mpeg "access plus 1 year" ExpiresByType video/mpeg "access plus 1 year" ExpiresByType video/mp4 "access plus 1 year" ExpiresByType video/quicktime "access plus 1 year" ExpiresByType video/x-ms-wmv "access plus 1 year" ExpiresByType application/x-shockwave-flash "access 1 month" ExpiresByType text/css "access plus 1 year" ExpiresByType text/javascript "access plus 1 year"</IfModule>

/etc/apache2/mods-available/expires.conf

Friday, April 16, 2010

Page 86: Caelum dicas web 2010

Cache Busters

Friday, April 16, 2010

Page 87: Caelum dicas web 2010

<%= stylesheet_link_tag 'application' %>

<%= javascript_include_tag 'application' %>

<%= image_tag "logo.png" %>

/app/views/layouts/application.html.erb

Friday, April 16, 2010

Page 88: Caelum dicas web 2010

<link href="/stylesheets/application.css?1264345891" media="screen" rel="stylesheet" type="text/css" />

<script src="/javascripts/application.js?1264345058"

type="text/javascript"></script>

<img alt="Logo" src="/images/logo.png?1268943058" />

/app/views/layouts/application.html.erb

Friday, April 16, 2010

Page 89: Caelum dicas web 2010

<link href="/stylesheets/application.css?1264345891" media="screen" rel="stylesheet" type="text/css" />

<script src="/javascripts/application.js?1264345058"

type="text/javascript"></script>

<img alt="Logo" src="/images/logo.png?1268943058" />

/app/views/layouts/application.html.erb

Friday, April 16, 2010

Page 90: Caelum dicas web 2010

Use CDNs

Friday, April 16, 2010

Page 91: Caelum dicas web 2010

<script src="/javascripts/jquery-1.4.min.js" type="text/javascript"></script><script src="/javascripts/jquery-ui-1.7.2.min.js" type="text/javascript"></script><script src="/javascripts/swfobject-2.2.js" type="text/javascript"></script><script src="/javascripts/CFInstall-1.0.2.min.js" type="text/javascript"></script>

/app/views/layouts/application.html.erb

Friday, April 16, 2010

Page 92: Caelum dicas web 2010

<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.4.0/jquery.min.js" type="text/javascript"></script><script src="http://ajax.googleapis.com/ajax/libs/jqueryui/1.7.2/jquery-ui.min.js" type="text/javascript"></script><script src="http://ajax.googleapis.com/ajax/libs/swfobject/2.2/swfobject.js" type="text/javascript"></script><script src="http://ajax.googleapis.com/ajax/libs/chrome-frame/1.0.2/CFInstall.min.js" type="text/javascript"></script>

/app/views/layouts/application.html.erb

Friday, April 16, 2010

Page 93: Caelum dicas web 2010

<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.4.0/jquery.min.js" type="text/javascript"></script><script src="http://ajax.googleapis.com/ajax/libs/jqueryui/1.7.2/jquery-ui.min.js" type="text/javascript"></script><script src="http://ajax.googleapis.com/ajax/libs/swfobject/2.2/swfobject.js" type="text/javascript"></script><script src="http://ajax.googleapis.com/ajax/libs/chrome-frame/1.0.2/CFInstall.min.js" type="text/javascript"></script>

/app/views/layouts/application.html.erb

Friday, April 16, 2010

Page 94: Caelum dicas web 2010

Search

Friday, April 16, 2010

Page 95: Caelum dicas web 2010

select * from ... where ... like “%...%”

Friday, April 16, 2010

Page 96: Caelum dicas web 2010

select * from ... where ... like “%...%”

or ... like “%...%”or ... like “%...%”or ... like “%...%”or ... like “%...%”

Friday, April 16, 2010

Page 97: Caelum dicas web 2010

select * from ... where ... like “%...%”

or ... like “%...%”or ... like “%...%”or ... like “%...%”or ... like “%...%”

Friday, April 16, 2010

Page 98: Caelum dicas web 2010

Friday, April 16, 2010

Page 99: Caelum dicas web 2010

Open Source Enterprise Search Platform

Baseado no famoso Lucene

Full Text Search, com relevância

Indexa documentos (Word, PDF, etc)

Interface REST

Roda em containers de Servlet (Tomcat)

Friday, April 16, 2010

Page 100: Caelum dicas web 2010

Open Source Enterprise Search Platform

Baseado no famoso Lucene

Full Text Search, com relevância

Indexa documentos (Word, PDF, etc)

Interface REST

Roda em containers de Servlet (Tomcat)

Friday, April 16, 2010

Page 101: Caelum dicas web 2010

Open Source Enterprise Search Platform

Baseado no famoso Lucene

Full Text Search, com relevância

Indexa documentos (Word, PDF, etc)

Interface REST

Roda em containers de Servlet (Tomcat)

Friday, April 16, 2010

Page 102: Caelum dicas web 2010

Open Source Enterprise Search Platform

Baseado no famoso Lucene

Full Text Search, com relevância

Indexa documentos (Word, PDF, etc)

Interface REST

Roda em containers de Servlet (Tomcat)

Friday, April 16, 2010

Page 103: Caelum dicas web 2010

Open Source Enterprise Search Platform

Baseado no famoso Lucene

Full Text Search, com relevância

Indexa documentos (Word, PDF, etc)

Interface REST

Roda em containers de Servlet (Tomcat)

Friday, April 16, 2010

Page 104: Caelum dicas web 2010

Open Source Enterprise Search Platform

Baseado no famoso Lucene

Full Text Search, com relevância

Indexa documentos (Word, PDF, etc)

Interface REST

Roda em containers de Servlet (Tomcat)

Friday, April 16, 2010

Page 105: Caelum dicas web 2010

Friday, April 16, 2010

Page 106: Caelum dicas web 2010

Friday, April 16, 2010

Page 107: Caelum dicas web 2010

select * from ... where ... like “%...%”

or ... like “%...%”or ... like “%...%”or ... like “%...%”or ... like “%...%”

Friday, April 16, 2010

Page 108: Caelum dicas web 2010

select * from ... where ... like “%...%”

or ... like “%...%”or ... like “%...%”or ... like “%...%”or ... like “%...%”

Friday, April 16, 2010

Page 109: Caelum dicas web 2010

Tarefas Assíncronas

Friday, April 16, 2010

Page 110: Caelum dicas web 2010

Friday, April 16, 2010

Page 111: Caelum dicas web 2010

Requisição

Friday, April 16, 2010

Page 112: Caelum dicas web 2010

ProcessamentoRequisição

Friday, April 16, 2010

Page 113: Caelum dicas web 2010

Resposta

ProcessamentoRequisição

Friday, April 16, 2010

Page 114: Caelum dicas web 2010

Crontab

Friday, April 16, 2010

Page 115: Caelum dicas web 2010

Friday, April 16, 2010

Page 116: Caelum dicas web 2010

RMagick

Friday, April 16, 2010

Page 117: Caelum dicas web 2010

Friday, April 16, 2010

Page 118: Caelum dicas web 2010

Friday, April 16, 2010

Page 119: Caelum dicas web 2010

RedisWorkers

Resque-Web

Friday, April 16, 2010

Page 120: Caelum dicas web 2010

Friday, April 16, 2010

Page 121: Caelum dicas web 2010

Friday, April 16, 2010

Page 122: Caelum dicas web 2010

ProcessamentoRequisição

291 s

Friday, April 16, 2010

Page 123: Caelum dicas web 2010

Resposta

Processamento

Requisição

32 s

Worker

Friday, April 16, 2010

Page 124: Caelum dicas web 2010

Friday, April 16, 2010

Page 125: Caelum dicas web 2010

Imagens

Relatórios

Web Services

Transações

Friday, April 16, 2010

Page 126: Caelum dicas web 2010

Imagens

Relatórios

Web Services

Transações

Friday, April 16, 2010

Page 127: Caelum dicas web 2010

Imagens

Relatórios

Web Services

Transações

Friday, April 16, 2010

Page 128: Caelum dicas web 2010

Imagens

Relatórios

Web Services

Transações

Friday, April 16, 2010

Page 129: Caelum dicas web 2010

Aprendendo Mais

Friday, April 16, 2010

Page 130: Caelum dicas web 2010

RAILS LABS

Friday, April 16, 2010

Page 131: Caelum dicas web 2010

RAILSCASTS.com

Friday, April 16, 2010

Page 132: Caelum dicas web 2010

caelum.com.br

Friday, April 16, 2010

Page 133: Caelum dicas web 2010

egenial.com.br

Friday, April 16, 2010

Page 134: Caelum dicas web 2010

Friday, April 16, 2010

Page 135: Caelum dicas web 2010

Entenda os browsers

Entenda HTTP

Arquiteturas

Mundo Assíncrono

Mundo não Relacional

Friday, April 16, 2010

Page 136: Caelum dicas web 2010

Entenda os browsers

Entenda HTTP

Arquiteturas

Mundo Assíncrono

Mundo não Relacional

Friday, April 16, 2010

Page 137: Caelum dicas web 2010

Entenda os browsers

Entenda HTTP

Arquiteturas

Mundo Assíncrono

Mundo não Relacional

Friday, April 16, 2010

Page 138: Caelum dicas web 2010

Entenda os browsers

Entenda HTTP

Arquiteturas

Mundo Assíncrono

Mundo não Relacional

Friday, April 16, 2010

Page 139: Caelum dicas web 2010

Entenda os browsers

Entenda HTTP

Arquiteturas

Mundo Assíncrono

Mundo não Relacional

Friday, April 16, 2010

Page 140: Caelum dicas web 2010

Friday, April 16, 2010