SlideShare uma empresa Scribd logo
1 de 44
apoio
Otimizando Frontend



apoio
Otimizando Frontend
        Ruby on Rails




apoio
PERFORMANCE?!
80% a 90%
80% a 90%
no front-end
YSLOW   PAGESPEED
Full-Stack Web
 Framework
•   Page Cache
•   Action Cache
•   Fragment Cache
•   Cache de consultas do AR
•   Memoize
•   Page Cache
      •
              EN D
          Action Cache



    AC
      •
       K  Fragment Cache


B     •
      •
          Cache de consultas do AR
          Memoize
14
regras para frontend



                       *22
RESOLVENDO
  1º FAÇA MENOS REQUISIÇÕES
     Css sprites http://urele.com/yj6
         Unificar JS e CSS

    8º CSS e JS EXTERNOS

     10º MINIMIZE JS E CSS

12º REMOVA SCRIPTS DUPLICADOS
DEMO
ASSET PACKAGER
ASSET PACKAGER
DEMO
RESOLVENDO

  5º CSS NO TOPO

6º SCRIPTS NO FINAL
DEMO
RESOLVENDO

3º CACHE OTIMIZADO

 4º COMPACTAÇÃO
DEMO
RESOLVENDO

2º CDN
  • Amazon CloudFront
  • Akamai, LimeLight, Mirror Image, etc
  • SubDomínios ou outros Hosts
DEMO
RESOLVENDO

  13º E-TAGS
DEMO
O QUE FIZEMOS ?
1.    FAÇA MENOS REQUISIÇÕES
2.    REDE DE DISTRIBUIÇÃO DE CONTEÚDO (CDN)
3.    CACHE OTIMIZADO
4.    COMPACTAÇÃO
5.    CSS NO TOPO
6.    SCRIPTS NO FINAL
7.    EVITE EXPRESSÕES CSS
8.    CSS E JS EXTERNOS
9.    REDUZA PESQUISAS DNS
10.   MINIZE JAVASCRIPT
11.   EVITE REDIRECIONAMENTOS
12.   REMOVA SCRIPTS DUPLICADOS
13.   CONFIGURE E-TAGS
14.   AJAX CACHE
FALTARAM
• REDUZA PESQUISAS DNS
 Menos hosts e KeepAlive (default)

• EVITE REDIRECIONAMENTOS
• AJAX CACHE
 Max-age e cache-control

 URL GET com ID ou identifcador único
GRADE A
CONSIDERAÇÕES

•   Exemplo com Jammit no meu github

•   Capistrano e Jammit

•   Capistrano com CDN

•   RackCache

•   AutoSprite
• twitter.com/danielvlopes
• danielvlopes@areacriacoes.com.br
• areacriacoes.com.br
• cifrascash.com
• pomodo.areacriacoes.com.br
• github.com/danielvlopes
• egenial.com.br/cursorails
APOIO

Mais conteúdo relacionado

Mais procurados

TDC2016SP - Trilha Frameworks JavaScript
TDC2016SP - Trilha Frameworks JavaScriptTDC2016SP - Trilha Frameworks JavaScript
TDC2016SP - Trilha Frameworks JavaScripttdc-globalcode
 
Workflow WordPress + JavaScript - WordCamp Rio
Workflow WordPress + JavaScript  - WordCamp RioWorkflow WordPress + JavaScript  - WordCamp Rio
Workflow WordPress + JavaScript - WordCamp RioFellyph Cintra
 
IIS - Uma questão de arquitetura
IIS - Uma questão de arquiteturaIIS - Uma questão de arquitetura
IIS - Uma questão de arquiteturasidneyfilho
 
Frontline - Rails3.1
Frontline - Rails3.1Frontline - Rails3.1
Frontline - Rails3.1Daniel Lopes
 
Frontend (Rails For Kids)
Frontend (Rails For Kids)Frontend (Rails For Kids)
Frontend (Rails For Kids)Daniel Lopes
 
Cloud PostgreSQL em alta performance
Cloud PostgreSQL em alta performanceCloud PostgreSQL em alta performance
Cloud PostgreSQL em alta performanceSaveincloud
 
Java Escalável e com Alta Disponibilidade na Nuvem
Java Escalável e com Alta Disponibilidade na NuvemJava Escalável e com Alta Disponibilidade na Nuvem
Java Escalável e com Alta Disponibilidade na NuvemSaveincloud
 
Preparando seu e-commerce para a Black Friday
Preparando seu e-commerce para a Black FridayPreparando seu e-commerce para a Black Friday
Preparando seu e-commerce para a Black FridayUmbler
 
DevCommerce Conference 2016 - Workshop: Planejamento de infra do e-commerce p...
DevCommerce Conference 2016 - Workshop: Planejamento de infra do e-commerce p...DevCommerce Conference 2016 - Workshop: Planejamento de infra do e-commerce p...
DevCommerce Conference 2016 - Workshop: Planejamento de infra do e-commerce p...iMasters
 
Application Servers e Ruby
Application Servers e RubyApplication Servers e Ruby
Application Servers e RubyRafael Soares
 
Drupal Performance - Dicas e técnicas para levar seu Drupal às nuvens
Drupal Performance - Dicas e técnicas para levar seu Drupal às nuvensDrupal Performance - Dicas e técnicas para levar seu Drupal às nuvens
Drupal Performance - Dicas e técnicas para levar seu Drupal às nuvensPaulino Michelazzo
 
Alta Performance com Java
Alta Performance com JavaAlta Performance com Java
Alta Performance com JavaAlisson Pedrina
 
Palestra: Otimização de websites
Palestra: Otimização de websitesPalestra: Otimização de websites
Palestra: Otimização de websitesIntrus
 
Migre seu banco de dados para a nuvem. Pergunte-me como!
Migre seu banco de dados para a nuvem. Pergunte-me como!Migre seu banco de dados para a nuvem. Pergunte-me como!
Migre seu banco de dados para a nuvem. Pergunte-me como!Fabio Telles Rodriguez
 
Apresentacao zabbix
Apresentacao zabbixApresentacao zabbix
Apresentacao zabbixDaniel Peres
 
Conhecendo o mongodb e clusterização de dados - ReplicaSet
Conhecendo o mongodb e clusterização de dados - ReplicaSetConhecendo o mongodb e clusterização de dados - ReplicaSet
Conhecendo o mongodb e clusterização de dados - ReplicaSetJhonathan de Souza Soares
 
Otimizações de Performance Web: Desafios do Mundo Mobile
Otimizações de Performance Web: Desafios do Mundo MobileOtimizações de Performance Web: Desafios do Mundo Mobile
Otimizações de Performance Web: Desafios do Mundo MobileCaelum
 

Mais procurados (19)

TDC2016SP - Trilha Frameworks JavaScript
TDC2016SP - Trilha Frameworks JavaScriptTDC2016SP - Trilha Frameworks JavaScript
TDC2016SP - Trilha Frameworks JavaScript
 
Workflow WordPress + JavaScript - WordCamp Rio
Workflow WordPress + JavaScript  - WordCamp RioWorkflow WordPress + JavaScript  - WordCamp Rio
Workflow WordPress + JavaScript - WordCamp Rio
 
IIS - Uma questão de arquitetura
IIS - Uma questão de arquiteturaIIS - Uma questão de arquitetura
IIS - Uma questão de arquitetura
 
Rails nas Nuvens
Rails nas NuvensRails nas Nuvens
Rails nas Nuvens
 
Frontline - Rails3.1
Frontline - Rails3.1Frontline - Rails3.1
Frontline - Rails3.1
 
Frontend (Rails For Kids)
Frontend (Rails For Kids)Frontend (Rails For Kids)
Frontend (Rails For Kids)
 
Cloud PostgreSQL em alta performance
Cloud PostgreSQL em alta performanceCloud PostgreSQL em alta performance
Cloud PostgreSQL em alta performance
 
Java Escalável e com Alta Disponibilidade na Nuvem
Java Escalável e com Alta Disponibilidade na NuvemJava Escalável e com Alta Disponibilidade na Nuvem
Java Escalável e com Alta Disponibilidade na Nuvem
 
Preparando seu e-commerce para a Black Friday
Preparando seu e-commerce para a Black FridayPreparando seu e-commerce para a Black Friday
Preparando seu e-commerce para a Black Friday
 
DevCommerce Conference 2016 - Workshop: Planejamento de infra do e-commerce p...
DevCommerce Conference 2016 - Workshop: Planejamento de infra do e-commerce p...DevCommerce Conference 2016 - Workshop: Planejamento de infra do e-commerce p...
DevCommerce Conference 2016 - Workshop: Planejamento de infra do e-commerce p...
 
Application Servers e Ruby
Application Servers e RubyApplication Servers e Ruby
Application Servers e Ruby
 
Drupal Performance - Dicas e técnicas para levar seu Drupal às nuvens
Drupal Performance - Dicas e técnicas para levar seu Drupal às nuvensDrupal Performance - Dicas e técnicas para levar seu Drupal às nuvens
Drupal Performance - Dicas e técnicas para levar seu Drupal às nuvens
 
Alta Performance com Java
Alta Performance com JavaAlta Performance com Java
Alta Performance com Java
 
CSS
CSSCSS
CSS
 
Palestra: Otimização de websites
Palestra: Otimização de websitesPalestra: Otimização de websites
Palestra: Otimização de websites
 
Migre seu banco de dados para a nuvem. Pergunte-me como!
Migre seu banco de dados para a nuvem. Pergunte-me como!Migre seu banco de dados para a nuvem. Pergunte-me como!
Migre seu banco de dados para a nuvem. Pergunte-me como!
 
Apresentacao zabbix
Apresentacao zabbixApresentacao zabbix
Apresentacao zabbix
 
Conhecendo o mongodb e clusterização de dados - ReplicaSet
Conhecendo o mongodb e clusterização de dados - ReplicaSetConhecendo o mongodb e clusterização de dados - ReplicaSet
Conhecendo o mongodb e clusterização de dados - ReplicaSet
 
Otimizações de Performance Web: Desafios do Mundo Mobile
Otimizações de Performance Web: Desafios do Mundo MobileOtimizações de Performance Web: Desafios do Mundo Mobile
Otimizações de Performance Web: Desafios do Mundo Mobile
 

Destaque

2015.2.4 pizza day communication
2015.2.4 pizza day  communication2015.2.4 pizza day  communication
2015.2.4 pizza day communicationChenChang Shih
 
葉永青 “Og Mitt Liv”
葉永青 “Og Mitt Liv”葉永青 “Og Mitt Liv”
葉永青 “Og Mitt Liv”ChenChang Shih
 
ICD-10-CM : Learning from icd10data.com
ICD-10-CM : Learning from icd10data.comICD-10-CM : Learning from icd10data.com
ICD-10-CM : Learning from icd10data.comChenChang Shih
 
מסיבת סוף שנה2011
מסיבת סוף שנה2011מסיבת סוף שנה2011
מסיבת סוף שנה2011margak
 
Filosofia Ruby e Rails (UFOP e Inforuso 2010)
Filosofia Ruby e Rails (UFOP e Inforuso 2010)Filosofia Ruby e Rails (UFOP e Inforuso 2010)
Filosofia Ruby e Rails (UFOP e Inforuso 2010)Daniel Lopes
 
BDD e TDD (Café Ágil)
BDD e TDD (Café Ágil)BDD e TDD (Café Ágil)
BDD e TDD (Café Ágil)Daniel Lopes
 
Adobe Air e HTML (FlexForKids)
Adobe Air e HTML (FlexForKids)Adobe Air e HTML (FlexForKids)
Adobe Air e HTML (FlexForKids)Daniel Lopes
 
Seguranca em APP Rails
Seguranca em APP RailsSeguranca em APP Rails
Seguranca em APP RailsDaniel Lopes
 
Ecossistema Ruby e Rails (Serpro BH)
Ecossistema Ruby e Rails (Serpro BH)Ecossistema Ruby e Rails (Serpro BH)
Ecossistema Ruby e Rails (Serpro BH)Daniel Lopes
 

Destaque (15)

TEDxNYMU
TEDxNYMUTEDxNYMU
TEDxNYMU
 
Yona
YonaYona
Yona
 
2015.2.4 pizza day communication
2015.2.4 pizza day  communication2015.2.4 pizza day  communication
2015.2.4 pizza day communication
 
姬望的故事
姬望的故事姬望的故事
姬望的故事
 
葉永青 “Og Mitt Liv”
葉永青 “Og Mitt Liv”葉永青 “Og Mitt Liv”
葉永青 “Og Mitt Liv”
 
雨水滋潤之地
雨水滋潤之地雨水滋潤之地
雨水滋潤之地
 
ICD-10-CM : Learning from icd10data.com
ICD-10-CM : Learning from icd10data.comICD-10-CM : Learning from icd10data.com
ICD-10-CM : Learning from icd10data.com
 
מסיבת סוף שנה2011
מסיבת סוף שנה2011מסיבת סוף שנה2011
מסיבת סוף שנה2011
 
重複領藥
重複領藥重複領藥
重複領藥
 
2014.9.28 小故事
2014.9.28 小故事2014.9.28 小故事
2014.9.28 小故事
 
Filosofia Ruby e Rails (UFOP e Inforuso 2010)
Filosofia Ruby e Rails (UFOP e Inforuso 2010)Filosofia Ruby e Rails (UFOP e Inforuso 2010)
Filosofia Ruby e Rails (UFOP e Inforuso 2010)
 
BDD e TDD (Café Ágil)
BDD e TDD (Café Ágil)BDD e TDD (Café Ágil)
BDD e TDD (Café Ágil)
 
Adobe Air e HTML (FlexForKids)
Adobe Air e HTML (FlexForKids)Adobe Air e HTML (FlexForKids)
Adobe Air e HTML (FlexForKids)
 
Seguranca em APP Rails
Seguranca em APP RailsSeguranca em APP Rails
Seguranca em APP Rails
 
Ecossistema Ruby e Rails (Serpro BH)
Ecossistema Ruby e Rails (Serpro BH)Ecossistema Ruby e Rails (Serpro BH)
Ecossistema Ruby e Rails (Serpro BH)
 

Semelhante a Frontend (RailsMG)

Redis um banco chave valor
Redis um banco chave valorRedis um banco chave valor
Redis um banco chave valorKinn Julião
 
ClusterizaçãO De AplicaçõEs Php
ClusterizaçãO De AplicaçõEs PhpClusterizaçãO De AplicaçõEs Php
ClusterizaçãO De AplicaçõEs PhpCampus Party Brasil
 
Best pratices para desenvolvimento mobile
Best pratices para desenvolvimento mobileBest pratices para desenvolvimento mobile
Best pratices para desenvolvimento mobilenipjc
 
Curso de Node.js e MongoDB - 01
Curso de Node.js e MongoDB - 01Curso de Node.js e MongoDB - 01
Curso de Node.js e MongoDB - 01Luiz Duarte
 
Web Seminário sobre Varnish+Nginx+Apache
Web Seminário sobre Varnish+Nginx+ApacheWeb Seminário sobre Varnish+Nginx+Apache
Web Seminário sobre Varnish+Nginx+ApacheDell Technologies
 
Webstandards - Melhores práticas para construção de páginas web
Webstandards - Melhores práticas para construção de páginas webWebstandards - Melhores práticas para construção de páginas web
Webstandards - Melhores práticas para construção de páginas webCleo Morgause
 
O novo ASP.NET - Stone Tech Saturday - Março/2017
O novo ASP.NET - Stone Tech Saturday - Março/2017O novo ASP.NET - Stone Tech Saturday - Março/2017
O novo ASP.NET - Stone Tech Saturday - Março/2017Renato Groff
 
Dicas para Workflow WordPress + JavaScript - WordCamp Salvador
Dicas para Workflow WordPress + JavaScript - WordCamp SalvadorDicas para Workflow WordPress + JavaScript - WordCamp Salvador
Dicas para Workflow WordPress + JavaScript - WordCamp SalvadorFellyph Cintra
 
LABjs e JQuery Templates
LABjs e JQuery TemplatesLABjs e JQuery Templates
LABjs e JQuery TemplatesCleber Dantas
 
FreeBsd com Alta Disponibilidade
FreeBsd com Alta DisponibilidadeFreeBsd com Alta Disponibilidade
FreeBsd com Alta DisponibilidadeBoteco 4Linux
 
Desenvolvendo Sistema Cloud e Web Full-stack Developer
Desenvolvendo Sistema Cloud e Web Full-stack DeveloperDesenvolvendo Sistema Cloud e Web Full-stack Developer
Desenvolvendo Sistema Cloud e Web Full-stack DeveloperCesar Romero
 
ASP.NET Core - iMasters - Março/2016
ASP.NET Core - iMasters - Março/2016ASP.NET Core - iMasters - Março/2016
ASP.NET Core - iMasters - Março/2016Renato Groff
 
Escalando API's com NodeJS, Docker e RabbitMQ
Escalando API's com NodeJS, Docker e RabbitMQEscalando API's com NodeJS, Docker e RabbitMQ
Escalando API's com NodeJS, Docker e RabbitMQMatheus Fidelis
 

Semelhante a Frontend (RailsMG) (20)

Performance Web com ASP.NET MVC
Performance Web com ASP.NET MVCPerformance Web com ASP.NET MVC
Performance Web com ASP.NET MVC
 
Redis um banco chave valor
Redis um banco chave valorRedis um banco chave valor
Redis um banco chave valor
 
ClusterizaçãO De AplicaçõEs Php
ClusterizaçãO De AplicaçõEs PhpClusterizaçãO De AplicaçõEs Php
ClusterizaçãO De AplicaçõEs Php
 
Clusterização de Aplicações PHP
Clusterização de Aplicações PHPClusterização de Aplicações PHP
Clusterização de Aplicações PHP
 
Best pratices para desenvolvimento mobile
Best pratices para desenvolvimento mobileBest pratices para desenvolvimento mobile
Best pratices para desenvolvimento mobile
 
Web seminario varnish
Web seminario varnishWeb seminario varnish
Web seminario varnish
 
Curso de Node.js e MongoDB - 01
Curso de Node.js e MongoDB - 01Curso de Node.js e MongoDB - 01
Curso de Node.js e MongoDB - 01
 
Web Seminário sobre Varnish+Nginx+Apache
Web Seminário sobre Varnish+Nginx+ApacheWeb Seminário sobre Varnish+Nginx+Apache
Web Seminário sobre Varnish+Nginx+Apache
 
Webstandards - Melhores práticas para construção de páginas web
Webstandards - Melhores práticas para construção de páginas webWebstandards - Melhores práticas para construção de páginas web
Webstandards - Melhores práticas para construção de páginas web
 
Desempenho web
Desempenho webDesempenho web
Desempenho web
 
O novo ASP.NET - Stone Tech Saturday - Março/2017
O novo ASP.NET - Stone Tech Saturday - Março/2017O novo ASP.NET - Stone Tech Saturday - Março/2017
O novo ASP.NET - Stone Tech Saturday - Março/2017
 
Dicas para Workflow WordPress + JavaScript - WordCamp Salvador
Dicas para Workflow WordPress + JavaScript - WordCamp SalvadorDicas para Workflow WordPress + JavaScript - WordCamp Salvador
Dicas para Workflow WordPress + JavaScript - WordCamp Salvador
 
Web Performance Client Side
Web Performance Client SideWeb Performance Client Side
Web Performance Client Side
 
LABjs e JQuery Templates
LABjs e JQuery TemplatesLABjs e JQuery Templates
LABjs e JQuery Templates
 
FreeBsd com Alta Disponibilidade
FreeBsd com Alta DisponibilidadeFreeBsd com Alta Disponibilidade
FreeBsd com Alta Disponibilidade
 
Desenvolvendo Sistema Cloud e Web Full-stack Developer
Desenvolvendo Sistema Cloud e Web Full-stack DeveloperDesenvolvendo Sistema Cloud e Web Full-stack Developer
Desenvolvendo Sistema Cloud e Web Full-stack Developer
 
ASP.NET Core - iMasters - Março/2016
ASP.NET Core - iMasters - Março/2016ASP.NET Core - iMasters - Março/2016
ASP.NET Core - iMasters - Março/2016
 
MySQL - the database
MySQL - the databaseMySQL - the database
MySQL - the database
 
Escalando API's com NodeJS, Docker e RabbitMQ
Escalando API's com NodeJS, Docker e RabbitMQEscalando API's com NodeJS, Docker e RabbitMQ
Escalando API's com NodeJS, Docker e RabbitMQ
 
React nos Trilhos
React nos TrilhosReact nos Trilhos
React nos Trilhos
 

Frontend (RailsMG)