SlideShare uma empresa Scribd logo
1 de 45
— PSICOLOGIA DO TEMPO E PERCEPÇÃO
Alguma vez já se perguntaram por que elevadores tem espelhos?
- Uma das grandes invenções do século atual
- Permitia pessoas subirem 40 andares sem cansaço
- Quando introduzido - Pessoas encaravam a porta e ficavam
questionando a segurança enquanto
- A única coisa que pensavam era o medo de cair 40 andares, onde não
tinha nada além de cabos os segurando no meio do ar
- Além de tudo, também reclamavam que eram muito lentos
Tudo que precisava - era uma mudança de perspectiva, reduzindo a
percepção de demora.
PERDENDO
PESO NO
BROWSERBoas práticas para otimizar carregamento de sua página
PERDENDO PESO NO BROWSER - TWITTER.COM/WALLYNM
PERDENDO PESO NO BROWSER - TWITTER.COM/WALLYNM
WALLYSSON
NUNES
Frontend Manager at Tiendanube
github..com/wallynm
twitter.com/wallynm
https://tiendanube-nuvemshop.workable.com
● Performance percebida
● Pré otimização e boas práticas
● O que precisamos medir?
● Oportunidades para otimizações
Iremos abordar detalhes técnicos e de UX ao longo da Talk!
O QUE IREMOS
ABORDAR
PERDENDO PESO NO BROWSER - TWITTER.COM/WALLYNM
QUÃO RÁPIDO UM SITE
DEVE CARREGAR?
PERDENDO PESO NO BROWSER - TWITTER.COM/WALLYNM
O tamanho médio das páginas
em 2010 tinham tamanho de
467kb comparado a 1711kb de
hoje em dia de acordo com
dados coletados no HTTP
Archive
TAMANHO MÉDIO
DAS PÁGINAS
PERDENDO PESO NO BROWSER - TWITTER.COM/WALLYNM
VÍDEOS REPRESENTAM 65% DO CONTEÚDO
NOS WEBSITES - DE MODO GERAL
PERDENDO PESO NO BROWSER - TWITTER.COM/WALLYNM
PERDENDO PESO NO BROWSER - TWITTER.COM/WALLYNM
PERDENDO PESO NO BROWSER - TWITTER.COM/WALLYNM
PERDENDO PESO NO BROWSER - TWITTER.COM/WALLYNM
A forma com que apresentamos
nosso website aos usuários
pode passar uma ideia rápida
ou lenta.
Adição de animações e
placeholders mantém seus
usuários entretidos enquanto
sua aplicação carrega seus
dados.
https://uxplanet.org/how-
to-make-users-think-
your-app-loads-faster-
24052fe307bf
PERFORMANCE
PERCEBIDA
PERDENDO PESO NO BROWSER - TWITTER.COM/WALLYNM
O usuário não percebe
nenhum delay - O
carregamento é
praticamente
instantâneo0.1s.
PERDENDO PESO NO BROWSER - TWITTER.COM/WALLYNM
O delay é mais
perceptível, o usuário
sente uma pausa e
passa um sentimento
de travado.1s.
PERDENDO PESO NO BROWSER - TWITTER.COM/WALLYNM
O usuário perde
atenção e o foco, ele
provavelmente irá
trocar para outra aba
ou simplesmente
fechar seu site, salve
alguns casos10s.
O usuário pode esperar mais tempo caso
ele tenha informado dados sensitivos
como cartão de crédito em um checkout
PERDENDO PESO NO BROWSER - TWITTER.COM/WALLYNM
SIMULE ATÉ O COMPLETAR
O CARREGAMENTO
Fake it till make - https://kyusuf.com/post/fake-it-til-you-make-it-css/
Como?
● Indicadores progressivos - Loadings/Progressbars e Placeholders
● Carregamento dinâmico da cor (Pré armazenadas)
● Reserva do espaço o qual os elementos irão ocupar
● Font de fallback
PERDENDO PESO NO BROWSER - TWITTER.COM/WALLYNM
PLACEHOLDERS
PERDENDO PESO NO BROWSER - TWITTER.COM/WALLYNM
BACKGROUND PRÉ CARREGADO / RESERVA DE ESPAÇO
PERDENDO PESO NO BROWSER - TWITTER.COM/WALLYNM
FALLBACK DE FONTES
PERDENDO PESO NO BROWSER - TWITTER.COM/WALLYNM
Placeholders ajudam a dar
contexto do que será
carregado
A chance do usuário deixar
seu site diminui uma vez que
ele recebeu algum feedback
REVISANDO - OTIMIZE A PERCEPÇÃO DE SEU SITE
Uma vez com o conteúdo
carregado você pode,
carregar outros itens de
acordo com a necessidade do
usuário
PERDENDO PESO NO BROWSER - TWITTER.COM/WALLYNM
PRÉ OTIMIZAÇÃO E
BOAS PRÁTICAS
PERDENDO PESO NO BROWSER - TWITTER.COM/WALLYNM
—HIERARQUIA DE CSS/JS
"Sua aplicação deve ser otimizada
desde a primeira linha de código"
PERDENDO PESO NO BROWSER - TWITTER.COM/WALLYNM
—IMPORT COST - VSCODE PLUGIN
"Sua aplicação deve ser otimizada
desde a primeira linha de código"
PERDENDO PESO NO BROWSER - TWITTER.COM/WALLYNM
—BUNDLEPHOBIA.COM
"Sua aplicação deve ser otimizada
desde a primeira linha de código"
PERDENDO PESO NO BROWSER - TWITTER.COM/WALLYNM
—WEBPACK BUNDLE ANALYSER
"Sua aplicação deve ser otimizada
desde a primeira linha de código"
PERDENDO PESO NO BROWSER - TWITTER.COM/WALLYNM
—ROLLUP PLUGIN ANALYSER
"Sua aplicação deve ser otimizada
desde a primeira linha de código"
PERDENDO PESO NO BROWSER - TWITTER.COM/WALLYNM
2. 07/04/2019 - gzipped 360kb1. 12/07/2018 - gzipped 237kb 3. 20/09/2019 - gzipped 228kb
Project: Checkout Nuvemshop
Em nosso projeto utilizamos Webpack,
dessa forma utilizamos WebpackBundleAnalyzer
Configuramos para armazenar um arquivo de cada build
Assim podemos comparar como e por que nossa aplicação cresceu
Durante cada novo update.
PERDENDO PESO NO BROWSER - TWITTER.COM/WALLYNM
Principais ganhos de performance:
- Remoção de bibliotecas não utilizadas de forma completa (MomentJS, YUP validation,
libphonenumber
- Otimização do arquivo de CommonJS gerado pelo bundle do NextJS
- Remoção de itens duplicados
12/07/2018 - gzipped 237kb (Início do projeto - poucas funcionalidades implementadas)
07/04/2019 - gzipped 360kb
20/09/2019 - gzipped 228kb (Fase final do projeto - Maiores componentes finalizados)
Project: Checkout Nuvemshop
PERDENDO PESO NO BROWSER - TWITTER.COM/WALLYNM
MomentJS Analysis
https://medium.com/@k2u4yt/momentjs-vs-date-fns-6bddc7bfa21e
PERDENDO PESO NO BROWSER - TWITTER.COM/WALLYNM
Análise cada plugin - muitos podem ser construído
com CSS puro sem adição de muitos KB's
PERDENDO PESO NO BROWSER - TWITTER.COM/WALLYNM
O QUE PRECISAMOS
MEDIR?
Além de UX uma série de outras métricas
são importantes para metrificar e
compreender a velocidade de seu site
PERDENDO PESO NO BROWSER - TWITTER.COM/WALLYNM
TIME TO FIRST BYTE
● TTFB: Time to First Byte - seen as the time
between clicking a link and the first bit of
content coming in.
● FP: First Paint - the first time any pixel
gets becomes visible to the user.
● FCP: First Contentful Paint - the time when
requested content (article body, etc)
becomes visible.
● TTI: Time To Interactive - the time at which
a page becomes interactive (events wired
up, etc).
PERDENDO PESO NO BROWSER - TWITTER.COM/WALLYNM
FIRST PAINT
● TTFB: Time to First Byte - seen as the time
between clicking a link and the first bit of
content coming in.
● FP: First Paint - the first time any pixel
gets becomes visible to the user.
● FCP: First Contentful Paint - the time when
requested content (article body, etc)
becomes visible.
● TTI: Time To Interactive - the time at which
a page becomes interactive (events wired
up, etc).
PERDENDO PESO NO BROWSER - TWITTER.COM/WALLYNM
FIRST CONTENTFUL PAINT
● TTFB: Time to First Byte - seen as the time
between clicking a link and the first bit of
content coming in.
● FP: First Paint - the first time any pixel
gets becomes visible to the user.
● FCP: First Contentful Paint - the time when
requested content (article body, etc)
becomes visible.
● TTI: Time To Interactive - the time at which
a page becomes interactive (events wired
up, etc).
PERDENDO PESO NO BROWSER - TWITTER.COM/WALLYNM
TIME TO INTERACTIVE
● TTFB: Time to First Byte - seen as the time
between clicking a link and the first bit of
content coming in.
● FP: First Paint - the first time any pixel
gets becomes visible to the user.
● FCP: First Contentful Paint - the time when
requested content (article body, etc)
becomes visible.
● TTI: Time To Interactive - the time at which
a page becomes interactive (events wired
up, etc).
PERDENDO PESO NO BROWSER - TWITTER.COM/WALLYNM
PERDENDO PESO NO BROWSER - TWITTER.COM/WALLYNM
WEB.DEV/MEASURE
PERDENDO PESO NO BROWSER - TWITTER.COM/WALLYNM
WEB.DEV/MEASURE
Cada aplicação possui suas próprias características - Vejam esses tópicos como guias mas
tentem encontrar outros pontos para melhoria
OPORTUNIDADES
PARA OTIMIZAÇÕES
PERDENDO PESO NO BROWSER - TWITTER.COM/WALLYNM
STATIC VS SERVER RENDERED
https://twitter.com/wallynm/status/1174140662045917184
PERDENDO PESO NO BROWSER - TWITTER.COM/WALLYNM
CDN - CONTENT DELIVERY NET
PERDENDO PESO NO BROWSER - TWITTER.COM/WALLYNM
COMPRESSÃO DOS ARQUIVOS
PERDENDO PESO NO BROWSER - TWITTER.COM/WALLYNM
● Lazy load de imagens
● Tratamento de imagens para otimizar qualidade
● Carregamento de Fonts e ícones
● Carregamento de Fonts Custom do próprio domínio
● Ícones custom para adicionar apenas os ícones necessários
● Análise de requisições feitas pela aplicação para prover seus recursos
● Imagens sob demanda para resoluções menores (Lambda functions)
● Análise de queryes no banco de dados através de profiling
● Execução de requests de forma Async quando possível
● CodeSplit (Já abordamos)
● Gzip para minificação
PERDENDO PESO NO BROWSER - TWITTER.COM/WALLYNM
OBRIGADO!
twitter.com/wallynm
CRÉDITOS
◂ Presentation template by Slidesgo
◂ Icons by Flaticon
◂ Images & infographics by Freepik
◂ Reduzindo tamanho de seu website: https://wp-rocket.me/blog/best-practice-guide-reducing-website-page-weight/
◂ Performance percebida: https://wp-rocket.me/blog/perceived-performance-need-optimize/
◂ Imagem de introdução 1 slide: https://rogerwilkerson.tumblr.com/image/66312570479
◂ Boas práticas iamgem slide: https://dribbble.com/shots/5942429-PDFelement-wondershare-Partner-
Program?utm_source=Pinterest_Shot&utm_campaign=terrymota&utm_content=PDFelement/wondershare%20-
%20Partner%20Program&utm_medium=Social_Share
◂ O que medir? Imagem: https://br.pinterest.com/pin/363032419938902328/
◂ Imagem de introdução 1 slide: https://rogerwilkerson.tumblr.com/image/66312570479
◂ Imagem de introdução 1 slide: https://rogerwilkerson.tumblr.com/image/66312570479
◂ Imagem de introdução 1 slide: https://rogerwilkerson.tumblr.com/image/66312570479

Mais conteúdo relacionado

Mais procurados

Começando com WordPress: WordPress.org ou WordPress.com?
Começando com WordPress: WordPress.org ou WordPress.com?Começando com WordPress: WordPress.org ou WordPress.com?
Começando com WordPress: WordPress.org ou WordPress.com?WP 24Horas
 
Jetpack, um Canivete Suíço no seu WordPress (WordCamp São Paulo 2014)​
Jetpack, um Canivete Suíço no seu WordPress (WordCamp São Paulo 2014)​Jetpack, um Canivete Suíço no seu WordPress (WordCamp São Paulo 2014)​
Jetpack, um Canivete Suíço no seu WordPress (WordCamp São Paulo 2014)​Valério Souza
 
Dicas e truques para desenvolver projetos web utilizando WordPress
Dicas e truques para desenvolver projetos web utilizando WordPressDicas e truques para desenvolver projetos web utilizando WordPress
Dicas e truques para desenvolver projetos web utilizando WordPressLeo Baiano
 
Wordpress - Mais que um gerenciador de blogs, um CMS completo!
Wordpress - Mais que um gerenciador  de blogs, um CMS completo!Wordpress - Mais que um gerenciador  de blogs, um CMS completo!
Wordpress - Mais que um gerenciador de blogs, um CMS completo!Walter Araujo dos Santos
 
WordPress, muito além de um software para blogs
WordPress, muito além de um software para blogsWordPress, muito além de um software para blogs
WordPress, muito além de um software para blogsCayo Medeiros
 
Springpoint São Paulo 2016 - Vinícius Lourenço | WordPress for Dummies
Springpoint São Paulo 2016 - Vinícius Lourenço | WordPress for DummiesSpringpoint São Paulo 2016 - Vinícius Lourenço | WordPress for Dummies
Springpoint São Paulo 2016 - Vinícius Lourenço | WordPress for DummiesVinícius Lourenço
 
WordCamp Fortaleza 2016 - Vinícius Lourenço | tAPIoca com WooCommerce
WordCamp Fortaleza 2016 - Vinícius Lourenço | tAPIoca com WooCommerceWordCamp Fortaleza 2016 - Vinícius Lourenço | tAPIoca com WooCommerce
WordCamp Fortaleza 2016 - Vinícius Lourenço | tAPIoca com WooCommerceVinícius Lourenço
 
Seis passos para ter (e manter) um site com wordpress
Seis passos para ter (e manter) um site com wordpressSeis passos para ter (e manter) um site com wordpress
Seis passos para ter (e manter) um site com wordpressTracto Content Marketing
 
Uma breve história sobre o tempo com Socket.io e Node.js
Uma breve história sobre o tempo com Socket.io e Node.jsUma breve história sobre o tempo com Socket.io e Node.js
Uma breve história sobre o tempo com Socket.io e Node.jsGuilherme Oderdenge
 
WordPress Multisite: Desenvolvendo Portais com Sites Interligados.
WordPress Multisite: Desenvolvendo Portais com Sites Interligados.WordPress Multisite: Desenvolvendo Portais com Sites Interligados.
WordPress Multisite: Desenvolvendo Portais com Sites Interligados.Nícholas André
 
FISL17 - Vinícius Lourenço | WordPress - Como começar e o que dá para ser feito?
FISL17 - Vinícius Lourenço | WordPress - Como começar e o que dá para ser feito?FISL17 - Vinícius Lourenço | WordPress - Como começar e o que dá para ser feito?
FISL17 - Vinícius Lourenço | WordPress - Como começar e o que dá para ser feito?Vinícius Lourenço
 
WordPress SEO - SearchLabs 2010
WordPress SEO - SearchLabs 2010WordPress SEO - SearchLabs 2010
WordPress SEO - SearchLabs 2010Guga Alves
 
Fazendo milagres com WordPress
Fazendo milagres com WordPressFazendo milagres com WordPress
Fazendo milagres com WordPressRafael Funchal
 
UI Lab Experience - Criando microinterações com JavaScript
UI Lab Experience - Criando microinterações com JavaScriptUI Lab Experience - Criando microinterações com JavaScript
UI Lab Experience - Criando microinterações com JavaScriptUI Lab
 
Sua web app nao precisa ser necessariamente mais rapida, mas parecer q e
Sua web app nao precisa ser necessariamente mais rapida, mas parecer q eSua web app nao precisa ser necessariamente mais rapida, mas parecer q e
Sua web app nao precisa ser necessariamente mais rapida, mas parecer q eAlexandre Magno Teles Zimerer
 
Como eu aprendo WordPress?
Como eu aprendo WordPress?Como eu aprendo WordPress?
Como eu aprendo WordPress?Breno Alves
 
O que você precisa saber sobre Desenvolvimento Web
O que você precisa saber sobre Desenvolvimento WebO que você precisa saber sobre Desenvolvimento Web
O que você precisa saber sobre Desenvolvimento WebWilliam Calderipe
 
CMS Livres Gestao de conhecimento para web
CMS Livres   Gestao de conhecimento para webCMS Livres   Gestao de conhecimento para web
CMS Livres Gestao de conhecimento para webPaulino Michelazzo
 

Mais procurados (20)

Começando com WordPress: WordPress.org ou WordPress.com?
Começando com WordPress: WordPress.org ou WordPress.com?Começando com WordPress: WordPress.org ou WordPress.com?
Começando com WordPress: WordPress.org ou WordPress.com?
 
Jetpack, um Canivete Suíço no seu WordPress (WordCamp São Paulo 2014)​
Jetpack, um Canivete Suíço no seu WordPress (WordCamp São Paulo 2014)​Jetpack, um Canivete Suíço no seu WordPress (WordCamp São Paulo 2014)​
Jetpack, um Canivete Suíço no seu WordPress (WordCamp São Paulo 2014)​
 
Dicas e truques para desenvolver projetos web utilizando WordPress
Dicas e truques para desenvolver projetos web utilizando WordPressDicas e truques para desenvolver projetos web utilizando WordPress
Dicas e truques para desenvolver projetos web utilizando WordPress
 
Apresentacaoblog
ApresentacaoblogApresentacaoblog
Apresentacaoblog
 
Wordpress - Mais que um gerenciador de blogs, um CMS completo!
Wordpress - Mais que um gerenciador  de blogs, um CMS completo!Wordpress - Mais que um gerenciador  de blogs, um CMS completo!
Wordpress - Mais que um gerenciador de blogs, um CMS completo!
 
Renda na internet agora
Renda na internet agoraRenda na internet agora
Renda na internet agora
 
WordPress, muito além de um software para blogs
WordPress, muito além de um software para blogsWordPress, muito além de um software para blogs
WordPress, muito além de um software para blogs
 
Springpoint São Paulo 2016 - Vinícius Lourenço | WordPress for Dummies
Springpoint São Paulo 2016 - Vinícius Lourenço | WordPress for DummiesSpringpoint São Paulo 2016 - Vinícius Lourenço | WordPress for Dummies
Springpoint São Paulo 2016 - Vinícius Lourenço | WordPress for Dummies
 
WordCamp Fortaleza 2016 - Vinícius Lourenço | tAPIoca com WooCommerce
WordCamp Fortaleza 2016 - Vinícius Lourenço | tAPIoca com WooCommerceWordCamp Fortaleza 2016 - Vinícius Lourenço | tAPIoca com WooCommerce
WordCamp Fortaleza 2016 - Vinícius Lourenço | tAPIoca com WooCommerce
 
Seis passos para ter (e manter) um site com wordpress
Seis passos para ter (e manter) um site com wordpressSeis passos para ter (e manter) um site com wordpress
Seis passos para ter (e manter) um site com wordpress
 
Uma breve história sobre o tempo com Socket.io e Node.js
Uma breve história sobre o tempo com Socket.io e Node.jsUma breve história sobre o tempo com Socket.io e Node.js
Uma breve história sobre o tempo com Socket.io e Node.js
 
WordPress Multisite: Desenvolvendo Portais com Sites Interligados.
WordPress Multisite: Desenvolvendo Portais com Sites Interligados.WordPress Multisite: Desenvolvendo Portais com Sites Interligados.
WordPress Multisite: Desenvolvendo Portais com Sites Interligados.
 
FISL17 - Vinícius Lourenço | WordPress - Como começar e o que dá para ser feito?
FISL17 - Vinícius Lourenço | WordPress - Como começar e o que dá para ser feito?FISL17 - Vinícius Lourenço | WordPress - Como começar e o que dá para ser feito?
FISL17 - Vinícius Lourenço | WordPress - Como começar e o que dá para ser feito?
 
WordPress SEO - SearchLabs 2010
WordPress SEO - SearchLabs 2010WordPress SEO - SearchLabs 2010
WordPress SEO - SearchLabs 2010
 
Fazendo milagres com WordPress
Fazendo milagres com WordPressFazendo milagres com WordPress
Fazendo milagres com WordPress
 
UI Lab Experience - Criando microinterações com JavaScript
UI Lab Experience - Criando microinterações com JavaScriptUI Lab Experience - Criando microinterações com JavaScript
UI Lab Experience - Criando microinterações com JavaScript
 
Sua web app nao precisa ser necessariamente mais rapida, mas parecer q e
Sua web app nao precisa ser necessariamente mais rapida, mas parecer q eSua web app nao precisa ser necessariamente mais rapida, mas parecer q e
Sua web app nao precisa ser necessariamente mais rapida, mas parecer q e
 
Como eu aprendo WordPress?
Como eu aprendo WordPress?Como eu aprendo WordPress?
Como eu aprendo WordPress?
 
O que você precisa saber sobre Desenvolvimento Web
O que você precisa saber sobre Desenvolvimento WebO que você precisa saber sobre Desenvolvimento Web
O que você precisa saber sobre Desenvolvimento Web
 
CMS Livres Gestao de conhecimento para web
CMS Livres   Gestao de conhecimento para webCMS Livres   Gestao de conhecimento para web
CMS Livres Gestao de conhecimento para web
 

Semelhante a Tempo e percepção na psicologia do elevador

Performance Front-end
Performance Front-endPerformance Front-end
Performance Front-endDescomplica
 
InterCon 2017 - Segredos não ditos de PWA - muito além do Web App Manifest - ...
InterCon 2017 - Segredos não ditos de PWA - muito além do Web App Manifest - ...InterCon 2017 - Segredos não ditos de PWA - muito além do Web App Manifest - ...
InterCon 2017 - Segredos não ditos de PWA - muito além do Web App Manifest - ...iMasters
 
Segredos não ditos de PWA - muito além do Web App Manifest
Segredos não ditos de PWA - muito além do Web App ManifestSegredos não ditos de PWA - muito além do Web App Manifest
Segredos não ditos de PWA - muito além do Web App ManifestEduardo Matos
 
Vagner Luis Soletti apresenta monitoramento de performance no WordPress: Um e...
Vagner Luis Soletti apresenta monitoramento de performance no WordPress: Um e...Vagner Luis Soletti apresenta monitoramento de performance no WordPress: Um e...
Vagner Luis Soletti apresenta monitoramento de performance no WordPress: Um e...WordCamp Floripa
 
PHP Papa-Léguas: Performance em PHP
PHP Papa-Léguas: Performance em PHPPHP Papa-Léguas: Performance em PHP
PHP Papa-Léguas: Performance em PHPFlávio Lisboa
 
Introducao desenvolvimento-web
Introducao desenvolvimento-webIntroducao desenvolvimento-web
Introducao desenvolvimento-webMarcio Mota
 
Introdução ao Spider CPM (3)
Introdução ao Spider CPM (3)Introdução ao Spider CPM (3)
Introdução ao Spider CPM (3)Peter Mello
 
Apresentação Minas - Desenvolvendo Sites
Apresentação Minas - Desenvolvendo SitesApresentação Minas - Desenvolvendo Sites
Apresentação Minas - Desenvolvendo Sitesthiagolima
 
036 programando para-web-com-php-e-mysql
036 programando para-web-com-php-e-mysql036 programando para-web-com-php-e-mysql
036 programando para-web-com-php-e-mysqlTiago
 
Introdução ao desenvolvimento Web
Introdução ao desenvolvimento WebIntrodução ao desenvolvimento Web
Introdução ao desenvolvimento WebSérgio Souza Costa
 
AMP Roadshow SP 2019 - Web Apps Modernas
AMP Roadshow SP 2019 - Web Apps ModernasAMP Roadshow SP 2019 - Web Apps Modernas
AMP Roadshow SP 2019 - Web Apps ModernasDan Vitoriano
 
Aprendendo a criar plugins para o Wordpress - Richard Barros
Aprendendo a criar plugins para o Wordpress - Richard BarrosAprendendo a criar plugins para o Wordpress - Richard Barros
Aprendendo a criar plugins para o Wordpress - Richard BarrosRichard Barros
 
Plataforma on line serviços
Plataforma on line serviçosPlataforma on line serviços
Plataforma on line serviçosCarlos Sousa
 
Gerenciamento de Conteudo em Portais de Grande Porte
Gerenciamento de Conteudo em Portais de Grande PorteGerenciamento de Conteudo em Portais de Grande Porte
Gerenciamento de Conteudo em Portais de Grande PorteAlexandre Conte
 
Ux for Developers - Build Better Products
Ux for Developers - Build Better ProductsUx for Developers - Build Better Products
Ux for Developers - Build Better ProductsPedro Marques
 
Ligação do Flex a um backend LAMP usando AMFPHP
Ligação do Flex a um backend LAMP usando AMFPHPLigação do Flex a um backend LAMP usando AMFPHP
Ligação do Flex a um backend LAMP usando AMFPHPelliando dias
 
2290494 integrando-flex-com-php
2290494 integrando-flex-com-php2290494 integrando-flex-com-php
2290494 integrando-flex-com-phpBrenno Abreu
 

Semelhante a Tempo e percepção na psicologia do elevador (20)

Performance Front-end
Performance Front-endPerformance Front-end
Performance Front-end
 
InterCon 2017 - Segredos não ditos de PWA - muito além do Web App Manifest - ...
InterCon 2017 - Segredos não ditos de PWA - muito além do Web App Manifest - ...InterCon 2017 - Segredos não ditos de PWA - muito além do Web App Manifest - ...
InterCon 2017 - Segredos não ditos de PWA - muito além do Web App Manifest - ...
 
Segredos não ditos de PWA - muito além do Web App Manifest
Segredos não ditos de PWA - muito além do Web App ManifestSegredos não ditos de PWA - muito além do Web App Manifest
Segredos não ditos de PWA - muito além do Web App Manifest
 
Vagner Luis Soletti apresenta monitoramento de performance no WordPress: Um e...
Vagner Luis Soletti apresenta monitoramento de performance no WordPress: Um e...Vagner Luis Soletti apresenta monitoramento de performance no WordPress: Um e...
Vagner Luis Soletti apresenta monitoramento de performance no WordPress: Um e...
 
Fase de Validação - Encaixe Produto Mercado
Fase de Validação -  Encaixe Produto MercadoFase de Validação -  Encaixe Produto Mercado
Fase de Validação - Encaixe Produto Mercado
 
PHP Papa-Léguas: Performance em PHP
PHP Papa-Léguas: Performance em PHPPHP Papa-Léguas: Performance em PHP
PHP Papa-Léguas: Performance em PHP
 
Introducao desenvolvimento-web
Introducao desenvolvimento-webIntroducao desenvolvimento-web
Introducao desenvolvimento-web
 
Introdução ao Spider CPM (3)
Introdução ao Spider CPM (3)Introdução ao Spider CPM (3)
Introdução ao Spider CPM (3)
 
Apresentação Minas - Desenvolvendo Sites
Apresentação Minas - Desenvolvendo SitesApresentação Minas - Desenvolvendo Sites
Apresentação Minas - Desenvolvendo Sites
 
Debug de cabo a rabo
Debug de cabo a raboDebug de cabo a rabo
Debug de cabo a rabo
 
036 programando para-web-com-php-e-mysql
036 programando para-web-com-php-e-mysql036 programando para-web-com-php-e-mysql
036 programando para-web-com-php-e-mysql
 
Introdução ao desenvolvimento Web
Introdução ao desenvolvimento WebIntrodução ao desenvolvimento Web
Introdução ao desenvolvimento Web
 
AMP Roadshow SP 2019 - Web Apps Modernas
AMP Roadshow SP 2019 - Web Apps ModernasAMP Roadshow SP 2019 - Web Apps Modernas
AMP Roadshow SP 2019 - Web Apps Modernas
 
Aprendendo a criar plugins para o Wordpress - Richard Barros
Aprendendo a criar plugins para o Wordpress - Richard BarrosAprendendo a criar plugins para o Wordpress - Richard Barros
Aprendendo a criar plugins para o Wordpress - Richard Barros
 
Plataforma on line serviços
Plataforma on line serviçosPlataforma on line serviços
Plataforma on line serviços
 
Gerenciamento de Conteudo em Portais de Grande Porte
Gerenciamento de Conteudo em Portais de Grande PorteGerenciamento de Conteudo em Portais de Grande Porte
Gerenciamento de Conteudo em Portais de Grande Porte
 
Ux for Developers - Build Better Products
Ux for Developers - Build Better ProductsUx for Developers - Build Better Products
Ux for Developers - Build Better Products
 
Aceleracao+conteudo+dinamico
Aceleracao+conteudo+dinamicoAceleracao+conteudo+dinamico
Aceleracao+conteudo+dinamico
 
Ligação do Flex a um backend LAMP usando AMFPHP
Ligação do Flex a um backend LAMP usando AMFPHPLigação do Flex a um backend LAMP usando AMFPHP
Ligação do Flex a um backend LAMP usando AMFPHP
 
2290494 integrando-flex-com-php
2290494 integrando-flex-com-php2290494 integrando-flex-com-php
2290494 integrando-flex-com-php
 

Tempo e percepção na psicologia do elevador

  • 1. — PSICOLOGIA DO TEMPO E PERCEPÇÃO Alguma vez já se perguntaram por que elevadores tem espelhos? - Uma das grandes invenções do século atual - Permitia pessoas subirem 40 andares sem cansaço - Quando introduzido - Pessoas encaravam a porta e ficavam questionando a segurança enquanto - A única coisa que pensavam era o medo de cair 40 andares, onde não tinha nada além de cabos os segurando no meio do ar - Além de tudo, também reclamavam que eram muito lentos Tudo que precisava - era uma mudança de perspectiva, reduzindo a percepção de demora.
  • 2. PERDENDO PESO NO BROWSERBoas práticas para otimizar carregamento de sua página PERDENDO PESO NO BROWSER - TWITTER.COM/WALLYNM
  • 3. PERDENDO PESO NO BROWSER - TWITTER.COM/WALLYNM WALLYSSON NUNES Frontend Manager at Tiendanube github..com/wallynm twitter.com/wallynm
  • 5. ● Performance percebida ● Pré otimização e boas práticas ● O que precisamos medir? ● Oportunidades para otimizações Iremos abordar detalhes técnicos e de UX ao longo da Talk! O QUE IREMOS ABORDAR PERDENDO PESO NO BROWSER - TWITTER.COM/WALLYNM
  • 6. QUÃO RÁPIDO UM SITE DEVE CARREGAR? PERDENDO PESO NO BROWSER - TWITTER.COM/WALLYNM
  • 7. O tamanho médio das páginas em 2010 tinham tamanho de 467kb comparado a 1711kb de hoje em dia de acordo com dados coletados no HTTP Archive TAMANHO MÉDIO DAS PÁGINAS PERDENDO PESO NO BROWSER - TWITTER.COM/WALLYNM
  • 8. VÍDEOS REPRESENTAM 65% DO CONTEÚDO NOS WEBSITES - DE MODO GERAL PERDENDO PESO NO BROWSER - TWITTER.COM/WALLYNM
  • 9. PERDENDO PESO NO BROWSER - TWITTER.COM/WALLYNM
  • 10. PERDENDO PESO NO BROWSER - TWITTER.COM/WALLYNM
  • 11. PERDENDO PESO NO BROWSER - TWITTER.COM/WALLYNM
  • 12. A forma com que apresentamos nosso website aos usuários pode passar uma ideia rápida ou lenta. Adição de animações e placeholders mantém seus usuários entretidos enquanto sua aplicação carrega seus dados. https://uxplanet.org/how- to-make-users-think- your-app-loads-faster- 24052fe307bf PERFORMANCE PERCEBIDA PERDENDO PESO NO BROWSER - TWITTER.COM/WALLYNM
  • 13. O usuário não percebe nenhum delay - O carregamento é praticamente instantâneo0.1s. PERDENDO PESO NO BROWSER - TWITTER.COM/WALLYNM
  • 14. O delay é mais perceptível, o usuário sente uma pausa e passa um sentimento de travado.1s. PERDENDO PESO NO BROWSER - TWITTER.COM/WALLYNM
  • 15. O usuário perde atenção e o foco, ele provavelmente irá trocar para outra aba ou simplesmente fechar seu site, salve alguns casos10s. O usuário pode esperar mais tempo caso ele tenha informado dados sensitivos como cartão de crédito em um checkout PERDENDO PESO NO BROWSER - TWITTER.COM/WALLYNM
  • 16. SIMULE ATÉ O COMPLETAR O CARREGAMENTO Fake it till make - https://kyusuf.com/post/fake-it-til-you-make-it-css/ Como? ● Indicadores progressivos - Loadings/Progressbars e Placeholders ● Carregamento dinâmico da cor (Pré armazenadas) ● Reserva do espaço o qual os elementos irão ocupar ● Font de fallback PERDENDO PESO NO BROWSER - TWITTER.COM/WALLYNM
  • 17. PLACEHOLDERS PERDENDO PESO NO BROWSER - TWITTER.COM/WALLYNM
  • 18. BACKGROUND PRÉ CARREGADO / RESERVA DE ESPAÇO PERDENDO PESO NO BROWSER - TWITTER.COM/WALLYNM
  • 19. FALLBACK DE FONTES PERDENDO PESO NO BROWSER - TWITTER.COM/WALLYNM
  • 20. Placeholders ajudam a dar contexto do que será carregado A chance do usuário deixar seu site diminui uma vez que ele recebeu algum feedback REVISANDO - OTIMIZE A PERCEPÇÃO DE SEU SITE Uma vez com o conteúdo carregado você pode, carregar outros itens de acordo com a necessidade do usuário PERDENDO PESO NO BROWSER - TWITTER.COM/WALLYNM
  • 21. PRÉ OTIMIZAÇÃO E BOAS PRÁTICAS PERDENDO PESO NO BROWSER - TWITTER.COM/WALLYNM
  • 22. —HIERARQUIA DE CSS/JS "Sua aplicação deve ser otimizada desde a primeira linha de código" PERDENDO PESO NO BROWSER - TWITTER.COM/WALLYNM
  • 23. —IMPORT COST - VSCODE PLUGIN "Sua aplicação deve ser otimizada desde a primeira linha de código" PERDENDO PESO NO BROWSER - TWITTER.COM/WALLYNM
  • 24. —BUNDLEPHOBIA.COM "Sua aplicação deve ser otimizada desde a primeira linha de código" PERDENDO PESO NO BROWSER - TWITTER.COM/WALLYNM
  • 25. —WEBPACK BUNDLE ANALYSER "Sua aplicação deve ser otimizada desde a primeira linha de código" PERDENDO PESO NO BROWSER - TWITTER.COM/WALLYNM
  • 26. —ROLLUP PLUGIN ANALYSER "Sua aplicação deve ser otimizada desde a primeira linha de código" PERDENDO PESO NO BROWSER - TWITTER.COM/WALLYNM
  • 27.
  • 28. 2. 07/04/2019 - gzipped 360kb1. 12/07/2018 - gzipped 237kb 3. 20/09/2019 - gzipped 228kb Project: Checkout Nuvemshop Em nosso projeto utilizamos Webpack, dessa forma utilizamos WebpackBundleAnalyzer Configuramos para armazenar um arquivo de cada build Assim podemos comparar como e por que nossa aplicação cresceu Durante cada novo update. PERDENDO PESO NO BROWSER - TWITTER.COM/WALLYNM
  • 29. Principais ganhos de performance: - Remoção de bibliotecas não utilizadas de forma completa (MomentJS, YUP validation, libphonenumber - Otimização do arquivo de CommonJS gerado pelo bundle do NextJS - Remoção de itens duplicados 12/07/2018 - gzipped 237kb (Início do projeto - poucas funcionalidades implementadas) 07/04/2019 - gzipped 360kb 20/09/2019 - gzipped 228kb (Fase final do projeto - Maiores componentes finalizados) Project: Checkout Nuvemshop PERDENDO PESO NO BROWSER - TWITTER.COM/WALLYNM
  • 31. Análise cada plugin - muitos podem ser construído com CSS puro sem adição de muitos KB's PERDENDO PESO NO BROWSER - TWITTER.COM/WALLYNM
  • 32. O QUE PRECISAMOS MEDIR? Além de UX uma série de outras métricas são importantes para metrificar e compreender a velocidade de seu site PERDENDO PESO NO BROWSER - TWITTER.COM/WALLYNM
  • 33. TIME TO FIRST BYTE ● TTFB: Time to First Byte - seen as the time between clicking a link and the first bit of content coming in. ● FP: First Paint - the first time any pixel gets becomes visible to the user. ● FCP: First Contentful Paint - the time when requested content (article body, etc) becomes visible. ● TTI: Time To Interactive - the time at which a page becomes interactive (events wired up, etc). PERDENDO PESO NO BROWSER - TWITTER.COM/WALLYNM
  • 34. FIRST PAINT ● TTFB: Time to First Byte - seen as the time between clicking a link and the first bit of content coming in. ● FP: First Paint - the first time any pixel gets becomes visible to the user. ● FCP: First Contentful Paint - the time when requested content (article body, etc) becomes visible. ● TTI: Time To Interactive - the time at which a page becomes interactive (events wired up, etc). PERDENDO PESO NO BROWSER - TWITTER.COM/WALLYNM
  • 35. FIRST CONTENTFUL PAINT ● TTFB: Time to First Byte - seen as the time between clicking a link and the first bit of content coming in. ● FP: First Paint - the first time any pixel gets becomes visible to the user. ● FCP: First Contentful Paint - the time when requested content (article body, etc) becomes visible. ● TTI: Time To Interactive - the time at which a page becomes interactive (events wired up, etc). PERDENDO PESO NO BROWSER - TWITTER.COM/WALLYNM
  • 36. TIME TO INTERACTIVE ● TTFB: Time to First Byte - seen as the time between clicking a link and the first bit of content coming in. ● FP: First Paint - the first time any pixel gets becomes visible to the user. ● FCP: First Contentful Paint - the time when requested content (article body, etc) becomes visible. ● TTI: Time To Interactive - the time at which a page becomes interactive (events wired up, etc). PERDENDO PESO NO BROWSER - TWITTER.COM/WALLYNM
  • 37. PERDENDO PESO NO BROWSER - TWITTER.COM/WALLYNM WEB.DEV/MEASURE
  • 38. PERDENDO PESO NO BROWSER - TWITTER.COM/WALLYNM WEB.DEV/MEASURE
  • 39. Cada aplicação possui suas próprias características - Vejam esses tópicos como guias mas tentem encontrar outros pontos para melhoria OPORTUNIDADES PARA OTIMIZAÇÕES PERDENDO PESO NO BROWSER - TWITTER.COM/WALLYNM
  • 40. STATIC VS SERVER RENDERED https://twitter.com/wallynm/status/1174140662045917184 PERDENDO PESO NO BROWSER - TWITTER.COM/WALLYNM
  • 41. CDN - CONTENT DELIVERY NET PERDENDO PESO NO BROWSER - TWITTER.COM/WALLYNM
  • 42. COMPRESSÃO DOS ARQUIVOS PERDENDO PESO NO BROWSER - TWITTER.COM/WALLYNM
  • 43. ● Lazy load de imagens ● Tratamento de imagens para otimizar qualidade ● Carregamento de Fonts e ícones ● Carregamento de Fonts Custom do próprio domínio ● Ícones custom para adicionar apenas os ícones necessários ● Análise de requisições feitas pela aplicação para prover seus recursos ● Imagens sob demanda para resoluções menores (Lambda functions) ● Análise de queryes no banco de dados através de profiling ● Execução de requests de forma Async quando possível ● CodeSplit (Já abordamos) ● Gzip para minificação PERDENDO PESO NO BROWSER - TWITTER.COM/WALLYNM
  • 45. CRÉDITOS ◂ Presentation template by Slidesgo ◂ Icons by Flaticon ◂ Images & infographics by Freepik ◂ Reduzindo tamanho de seu website: https://wp-rocket.me/blog/best-practice-guide-reducing-website-page-weight/ ◂ Performance percebida: https://wp-rocket.me/blog/perceived-performance-need-optimize/ ◂ Imagem de introdução 1 slide: https://rogerwilkerson.tumblr.com/image/66312570479 ◂ Boas práticas iamgem slide: https://dribbble.com/shots/5942429-PDFelement-wondershare-Partner- Program?utm_source=Pinterest_Shot&utm_campaign=terrymota&utm_content=PDFelement/wondershare%20- %20Partner%20Program&utm_medium=Social_Share ◂ O que medir? Imagem: https://br.pinterest.com/pin/363032419938902328/ ◂ Imagem de introdução 1 slide: https://rogerwilkerson.tumblr.com/image/66312570479 ◂ Imagem de introdução 1 slide: https://rogerwilkerson.tumblr.com/image/66312570479 ◂ Imagem de introdução 1 slide: https://rogerwilkerson.tumblr.com/image/66312570479

Notas do Editor

  1. Desenvolvendo desde 2009 e fazendo todo tipo de hacks necessários quando IE6 ainda reinava na web. Sempre apaixonado por desenvolvimento e design. Apaixonado por web e por JS, trabalhei bons anos como fullstack mas agora tenho focado minha carreira como frontend.