105
A apresentação já vai começar ... Wednesday, April 14, 2010

Edted 2010 Dicas de Web

Embed Size (px)

DESCRIPTION

Algumas Dicas de Desenvolvimento Web com um pouco de Ruby. Mostrando YSlow! e Solr. EDTED, Rio de Janeiro.

Citation preview

Page 1: Edted 2010 Dicas de Web

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

Wednesday, April 14, 2010

Page 2: Edted 2010 Dicas de Web

AkitaOnRails.com

Wednesday, April 14, 2010

Page 3: Edted 2010 Dicas de Web

~ 30 min~ 70 slides

Wednesday, April 14, 2010

Page 5: Edted 2010 Dicas de Web

Entendendo a WebDicas sobre Desenvolvimento Web com Ruby

Fabio Akita

Wednesday, April 14, 2010

Page 6: Edted 2010 Dicas de Web

Recapitulando ...

Wednesday, April 14, 2010

Page 7: Edted 2010 Dicas de Web

Ruby é Lento(TM)

Wednesday, April 14, 2010

Page 8: Edted 2010 Dicas de Web

Existem mentiras, mentiras malditas e

estatísticas.

Wednesday, April 14, 2010

Page 9: Edted 2010 Dicas de Web

Existem mentiras, mentiras malditas e

estatísticas.

Wednesday, April 14, 2010

Page 10: Edted 2010 Dicas de Web

Existem mentiras, mentiras malditas e

estatísticas.

Wednesday, April 14, 2010

Page 11: Edted 2010 Dicas de Web

Wednesday, April 14, 2010

Page 12: Edted 2010 Dicas de Web

x mais lento que C++

Wednesday, April 14, 2010

Page 13: Edted 2010 Dicas de Web

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++

Wednesday, April 14, 2010

Page 14: Edted 2010 Dicas de Web

Homepage: 331 ms

Wednesday, April 14, 2010

Page 15: Edted 2010 Dicas de Web

Homepage: 331 ms

Total: 5.45 s

Wednesday, April 14, 2010

Page 16: Edted 2010 Dicas de Web

Exemplo

Wednesday, April 14, 2010

Page 17: Edted 2010 Dicas de Web

Wednesday, April 14, 2010

Page 18: Edted 2010 Dicas de Web

Wednesday, April 14, 2010

Page 19: Edted 2010 Dicas de Web

Wednesday, April 14, 2010

Page 20: Edted 2010 Dicas de Web

Wednesday, April 14, 2010

Page 21: Edted 2010 Dicas de Web

Wednesday, April 14, 2010

Page 22: Edted 2010 Dicas de Web

Wednesday, April 14, 2010

Page 23: Edted 2010 Dicas de Web

Wednesday, April 14, 2010

Page 24: Edted 2010 Dicas de Web

Wednesday, April 14, 2010

Page 25: Edted 2010 Dicas de Web

Wednesday, April 14, 2010

Page 26: Edted 2010 Dicas de Web

6Técnicas

Wednesday, April 14, 2010

Page 27: Edted 2010 Dicas de Web

Menos Requisições

Wednesday, April 14, 2010

Page 28: Edted 2010 Dicas de Web

Mini!que CSS e Javascript

Wednesday, April 14, 2010

Page 29: Edted 2010 Dicas de Web

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

Wednesday, April 14, 2010

Page 30: Edted 2010 Dicas de Web

gem install juicer

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

Wednesday, April 14, 2010

Page 31: Edted 2010 Dicas de Web

gem install juicer

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

Wednesday, April 14, 2010

Page 32: Edted 2010 Dicas de Web

juicer install yuicompressor

juicer install jslint

juicer install closure_compiler

Wednesday, April 14, 2010

Page 33: Edted 2010 Dicas de Web

juicer install yuicompressor

juicer install jslint

juicer install closure_compiler

Wednesday, April 14, 2010

Page 34: Edted 2010 Dicas de Web

juicer install yuicompressor

juicer install jslint

juicer install closure_compiler

Wednesday, April 14, 2010

Page 35: Edted 2010 Dicas de Web

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

</head><body>

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

</body>

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

Wednesday, April 14, 2010

Page 36: Edted 2010 Dicas de Web

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

</head><body>

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

</body>

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

Wednesday, April 14, 2010

Page 37: Edted 2010 Dicas de Web

@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

Wednesday, April 14, 2010

Page 38: Edted 2010 Dicas de Web

@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

Wednesday, April 14, 2010

Page 39: Edted 2010 Dicas de Web

juicer merge public/stylesheets/application.css

public/stylesheets/application.min.css

juicer merge -i public/javascripts/application.js

public/javascripts/application.min.js

Wednesday, April 14, 2010

Page 40: Edted 2010 Dicas de Web

juicer merge public/stylesheets/application.css

public/stylesheets/application.min.css

juicer merge -i public/javascripts/application.js

public/javascripts/application.min.js

Wednesday, April 14, 2010

Page 41: Edted 2010 Dicas de Web

juicer merge public/stylesheets/application.css

public/stylesheets/application.min.css

juicer merge -i public/javascripts/application.js

public/javascripts/application.min.js

Wednesday, April 14, 2010

Page 42: Edted 2010 Dicas de Web

juicer merge public/stylesheets/application.css

public/stylesheets/application.min.css

juicer merge -i public/javascripts/application.js

public/javascripts/application.min.js

Wednesday, April 14, 2010

Page 43: Edted 2010 Dicas de Web

DEVELOPMENT

Wednesday, April 14, 2010

Page 44: Edted 2010 Dicas de Web

PRODUCTION

Wednesday, April 14, 2010

Page 45: Edted 2010 Dicas de Web

Asset HostsNavegadores abrem poucas conexões

simultâneas por domínio

Wednesday, April 14, 2010

Page 46: Edted 2010 Dicas de Web

Wednesday, April 14, 2010

Page 47: Edted 2010 Dicas de Web

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

Wednesday, April 14, 2010

Page 48: Edted 2010 Dicas de Web

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 -%>

Wednesday, April 14, 2010

Page 49: Edted 2010 Dicas de Web

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 -%>

Wednesday, April 14, 2010

Page 50: Edted 2010 Dicas de Web

DEVELOPMENT

Wednesday, April 14, 2010

Page 51: Edted 2010 Dicas de Web

DEVELOPMENT

Wednesday, April 14, 2010

Page 52: Edted 2010 Dicas de Web

/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

Wednesday, April 14, 2010

Page 53: Edted 2010 Dicas de Web

/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

Wednesday, April 14, 2010

Page 54: Edted 2010 Dicas de Web

### 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

Wednesday, April 14, 2010

Page 55: Edted 2010 Dicas de Web

PRODUCTION

Wednesday, April 14, 2010

Page 56: Edted 2010 Dicas de Web

PRODUCTION

Wednesday, April 14, 2010

Page 57: Edted 2010 Dicas de Web

Javascript embaixo!

Wednesday, April 14, 2010

Page 58: Edted 2010 Dicas de Web

<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

Wednesday, April 14, 2010

Page 59: Edted 2010 Dicas de Web

<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

Wednesday, April 14, 2010

Page 60: Edted 2010 Dicas de Web

... <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

Wednesday, April 14, 2010

Page 61: Edted 2010 Dicas de Web

... <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

Wednesday, April 14, 2010

Page 62: Edted 2010 Dicas de Web

Gzip

Wednesday, April 14, 2010

Page 63: Edted 2010 Dicas de Web

a2enmod de"ate

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

Wednesday, April 14, 2010

Page 64: Edted 2010 Dicas de Web

a2enmod de"ate

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

Wednesday, April 14, 2010

Page 65: Edted 2010 Dicas de Web

<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

Wednesday, April 14, 2010

Page 66: Edted 2010 Dicas de Web

Cabeçalhos de Expiração

Wednesday, April 14, 2010

Page 67: Edted 2010 Dicas de Web

a2enmod expires

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

Wednesday, April 14, 2010

Page 68: Edted 2010 Dicas de Web

a2enmod expires

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

Wednesday, April 14, 2010

Page 69: Edted 2010 Dicas de Web

<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

Wednesday, April 14, 2010

Page 70: Edted 2010 Dicas de Web

Cache Busters

Wednesday, April 14, 2010

Page 71: Edted 2010 Dicas de Web

<%= stylesheet_link_tag 'application' %>

<%= javascript_include_tag 'application' %>

<%= image_tag "logo.png" %>

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

Wednesday, April 14, 2010

Page 72: Edted 2010 Dicas de Web

<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

Wednesday, April 14, 2010

Page 73: Edted 2010 Dicas de Web

<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

Wednesday, April 14, 2010

Page 74: Edted 2010 Dicas de Web

Use CDNs

Wednesday, April 14, 2010

Page 75: Edted 2010 Dicas de Web

<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

Wednesday, April 14, 2010

Page 76: Edted 2010 Dicas de Web

<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

Wednesday, April 14, 2010

Page 77: Edted 2010 Dicas de Web

<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

Wednesday, April 14, 2010

Page 78: Edted 2010 Dicas de Web

Search

Wednesday, April 14, 2010

Page 79: Edted 2010 Dicas de Web

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

Wednesday, April 14, 2010

Page 80: Edted 2010 Dicas de Web

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

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

Wednesday, April 14, 2010

Page 81: Edted 2010 Dicas de Web

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

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

Wednesday, April 14, 2010

Page 82: Edted 2010 Dicas de Web

Wednesday, April 14, 2010

Page 83: Edted 2010 Dicas de Web

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)

Wednesday, April 14, 2010

Page 84: Edted 2010 Dicas de Web

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)

Wednesday, April 14, 2010

Page 85: Edted 2010 Dicas de Web

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)

Wednesday, April 14, 2010

Page 86: Edted 2010 Dicas de Web

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)

Wednesday, April 14, 2010

Page 87: Edted 2010 Dicas de Web

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)

Wednesday, April 14, 2010

Page 88: Edted 2010 Dicas de Web

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)

Wednesday, April 14, 2010

Page 89: Edted 2010 Dicas de Web

Wednesday, April 14, 2010

Page 90: Edted 2010 Dicas de Web

Wednesday, April 14, 2010

Page 91: Edted 2010 Dicas de Web

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

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

Wednesday, April 14, 2010

Page 92: Edted 2010 Dicas de Web

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

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

Wednesday, April 14, 2010

Page 93: Edted 2010 Dicas de Web

Aprendendo Mais

Wednesday, April 14, 2010

Page 94: Edted 2010 Dicas de Web

RAILS LABS

Wednesday, April 14, 2010

Page 95: Edted 2010 Dicas de Web

RAILSCASTS.com

Wednesday, April 14, 2010

Page 96: Edted 2010 Dicas de Web

caelum.com.br

Wednesday, April 14, 2010

Page 97: Edted 2010 Dicas de Web

egenial.com.br

Wednesday, April 14, 2010

Page 98: Edted 2010 Dicas de Web

Wednesday, April 14, 2010

Page 99: Edted 2010 Dicas de Web

Entenda os browsers

Entenda HTTP

Arquiteturas

Mundo Assíncrono

Mundo não Relacional

Wednesday, April 14, 2010

Page 100: Edted 2010 Dicas de Web

Entenda os browsers

Entenda HTTP

Arquiteturas

Mundo Assíncrono

Mundo não Relacional

Wednesday, April 14, 2010

Page 101: Edted 2010 Dicas de Web

Entenda os browsers

Entenda HTTP

Arquiteturas

Mundo Assíncrono

Mundo não Relacional

Wednesday, April 14, 2010

Page 102: Edted 2010 Dicas de Web

Entenda os browsers

Entenda HTTP

Arquiteturas

Mundo Assíncrono

Mundo não Relacional

Wednesday, April 14, 2010

Page 103: Edted 2010 Dicas de Web

Entenda os browsers

Entenda HTTP

Arquiteturas

Mundo Assíncrono

Mundo não Relacional

Wednesday, April 14, 2010

Page 104: Edted 2010 Dicas de Web

Wednesday, April 14, 2010