Top Banner
Isomorfismo Pra quê? Fernanda Bernardo
128

Isomorfismo pra quê?

Feb 15, 2017

Download

Technology

Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: Isomorfismo pra quê?

IsomorfismoPra quê?

Fernanda Bernardo

Page 2: Isomorfismo pra quê?

Voltando no tempo…

Page 3: Isomorfismo pra quê?

1993 Páginas estáticas

Page 4: Isomorfismo pra quê?
Page 5: Isomorfismo pra quê?
Page 6: Isomorfismo pra quê?

1993 Páginas estáticas

1995Javascript

Page 7: Isomorfismo pra quê?
Page 8: Isomorfismo pra quê?

E se fosse possível rodar JS no servidor e no cliente?

Page 9: Isomorfismo pra quê?
Page 10: Isomorfismo pra quê?
Page 11: Isomorfismo pra quê?

UX

Page 12: Isomorfismo pra quê?

Server / Client

Page 13: Isomorfismo pra quê?

1993 Páginas estáticas

200X SPA

1995Javascript

Page 14: Isomorfismo pra quê?

SPA

● Single Page Application● Modelo de desenvolvimento● Sem reload ● Dados assíncronos

Page 15: Isomorfismo pra quê?
Page 16: Isomorfismo pra quê?

SEO / JS

Page 17: Isomorfismo pra quê?

E se fosse possível rodar JS no servidor e no cliente?

Page 18: Isomorfismo pra quê?

1993 Páginas estáticas

2009Node JS

200X SPA

1995Javascript

Page 19: Isomorfismo pra quê?

E se fosse possível rodar um mesmo JS no servidor e no

cliente?

Page 20: Isomorfismo pra quê?

1993 Páginas estáticas

2009Node JS

200X SPA

1995Javascript

2011 Javascript Isomórfico

Page 21: Isomorfismo pra quê?

O que é Isomorfismo?

Page 22: Isomorfismo pra quê?

isomorfismo

i.so.mor.fis.mo

sm (iso+morfo1+ismo)

substantivo masculino1. álg correspondência biunívoca entre os elementos de dois grupos, que

preserva as operações de ambos; homomorfismo.2. miner fenômeno pelo qual duas ou mais substâncias de composição

química diferente se apresentam com a mesma estrutura cristalina.3. bio similaridade superficial entre indivíduos de diferentes espécies ou

raças.

Page 23: Isomorfismo pra quê?

isomorfismo

i.so.mor.fis.mo

sm (iso+morfo1+ismo)

substantivo masculino1. álg correspondência biunívoca entre os elementos de dois grupos, que

preserva as operações de ambos; homomorfismo.2. miner fenômeno pelo qual duas ou mais substâncias de composição

química diferente se apresentam com a mesma estrutura cristalina.3. bio similaridade superficial entre indivíduos de diferentes espécies ou

raças.

Page 24: Isomorfismo pra quê?

JAVASCRIPTJAVASCRIPT

Page 25: Isomorfismo pra quê?
Page 26: Isomorfismo pra quê?
Page 27: Isomorfismo pra quê?
Page 28: Isomorfismo pra quê?
Page 29: Isomorfismo pra quê?

E no código?

Page 30: Isomorfismo pra quê?
Page 31: Isomorfismo pra quê?

It's Show Time!

Page 32: Isomorfismo pra quê?

pessoa.js

Page 33: Isomorfismo pra quê?

pessoa_parser.js

Page 34: Isomorfismo pra quê?

pessoa_parser.js

Page 35: Isomorfismo pra quê?

pessoa_parser.js

Page 36: Isomorfismo pra quê?

main.js

Page 37: Isomorfismo pra quê?

main.js

Page 38: Isomorfismo pra quê?

main.js

Page 39: Isomorfismo pra quê?
Page 40: Isomorfismo pra quê?

index.html

Page 41: Isomorfismo pra quê?
Page 42: Isomorfismo pra quê?
Page 43: Isomorfismo pra quê?
Page 44: Isomorfismo pra quê?

main.js

Page 45: Isomorfismo pra quê?

main.js

Page 46: Isomorfismo pra quê?

main.js

Page 47: Isomorfismo pra quê?

pessoa_parser.js

Page 48: Isomorfismo pra quê?
Page 49: Isomorfismo pra quê?
Page 50: Isomorfismo pra quê?
Page 51: Isomorfismo pra quê?

Rotas

Renderização

View Models

Persistência

Log

Eventos UI

Rotas

Renderização

View Models

i18n

i18n

Sessão

Local Storage

Page 52: Isomorfismo pra quê?

Rotas

Renderização

View Models

Persistência

i18n

Log

Sessão

Eventos UI

Local Storage

isomórfico

Page 53: Isomorfismo pra quê?

Quem usa?

Page 54: Isomorfismo pra quê?
Page 55: Isomorfismo pra quê?

Charlie Robbins

Page 56: Isomorfismo pra quê?

● 2011

● Arquitetura isomórfica

● Adoção lenta

Page 57: Isomorfismo pra quê?

Spike Brehm

Page 58: Isomorfismo pra quê?

We really want a hybrid of the new and old approaches: we want to serve fully-formed HTML from the server for performance and SEO, but we want the speed and flexibility of client-side application logic.

Spike Brehm

Page 59: Isomorfismo pra quê?
Page 60: Isomorfismo pra quê?
Page 61: Isomorfismo pra quê?

● Reconstrução site mobile web

● Diminuir tempo carregamento da página

● Melhorar UX para o usuário

Page 62: Isomorfismo pra quê?

Kristofer Baxter

Page 63: Isomorfismo pra quê?

JavaStrutsTiles

JavascriptJQuery

Page 64: Isomorfismo pra quê?

JavaStrutsTiles

JavascriptJQuery

Page 65: Isomorfismo pra quê?

Prototipação

Page 66: Isomorfismo pra quê?

JavaStrutsTiles

JavascriptJQuery

Page 67: Isomorfismo pra quê?

JavaStrutsTiles

JavascriptJQuery

Page 68: Isomorfismo pra quê?
Page 69: Isomorfismo pra quê?

Servidor de Componentes

Page 70: Isomorfismo pra quê?
Page 71: Isomorfismo pra quê?

Requisição

1ª requisição

Page 72: Isomorfismo pra quê?

JSONRequisição

1ª requisição

Page 73: Isomorfismo pra quê?

Compo-nente

JSONRequisição

1ª requisição

Page 74: Isomorfismo pra quê?

Compo-nente

PáginaJSON

Requisição

1ª requisição

Page 75: Isomorfismo pra quê?

2ª requisição

Requisição

Requisição

Page 76: Isomorfismo pra quê?

JSONRequisição

RequisiçãoComponente

2ª requisição

Page 77: Isomorfismo pra quê?
Page 78: Isomorfismo pra quê?
Page 79: Isomorfismo pra quê?
Page 80: Isomorfismo pra quê?

Prós / Contras

Page 81: Isomorfismo pra quê?
Page 82: Isomorfismo pra quê?

Menos duplicação de códigoMais fácil de dar manutenção

Page 83: Isomorfismo pra quê?

Menos tempo gasto para escrever código no servidor e no cliente.

Page 84: Isomorfismo pra quê?

Levar em conta onde o código será executado

Page 85: Isomorfismo pra quê?

Primeiro request é rápido e os outros ainda mais.

Page 86: Isomorfismo pra quê?

Mais simples de funcionar sem JS, servidor retorna o HTML.

Page 87: Isomorfismo pra quê?

Debug é mais complicado

Page 88: Isomorfismo pra quê?

Evitar expor dados sensíveis

Page 89: Isomorfismo pra quê?

Os frameworks mudam muito rápido

Page 90: Isomorfismo pra quê?

Se sua página não tiver muita atualização dinâmica, você irá implementar muito código para pouco benefício

Page 91: Isomorfismo pra quê?

Frameworks / Libs

Page 92: Isomorfismo pra quê?
Page 93: Isomorfismo pra quê?
Page 94: Isomorfismo pra quê?

● Primeira lib isomórfica open source

● Yahoo!

● Abril 2012

● Dependência do YUI

Page 95: Isomorfismo pra quê?

● Primeira lib isomórfica open source

● Yahoo!

● Abril 2012

● Dependência do YUI

Page 96: Isomorfismo pra quê?

● Primeira lib isomórfica open source

● Yahoo!

● Abril 2012

● Dependência do YUI

Page 97: Isomorfismo pra quê?
Page 98: Isomorfismo pra quê?
Page 99: Isomorfismo pra quê?

Real Time

Page 100: Isomorfismo pra quê?

Configurações

Page 101: Isomorfismo pra quê?

Configurações

Page 102: Isomorfismo pra quê?

Configurações

Page 103: Isomorfismo pra quê?

Configurações

Page 104: Isomorfismo pra quê?
Page 105: Isomorfismo pra quê?

53 scripts

Page 106: Isomorfismo pra quê?

Projeto básico muito pesado

Page 107: Isomorfismo pra quê?

Projeto básico muito pesado

Load: 3.01 s

Page 108: Isomorfismo pra quê?

Não funciona sem JS

Page 109: Isomorfismo pra quê?

Documentação

Page 110: Isomorfismo pra quê?

Componentes

Page 111: Isomorfismo pra quê?
Page 112: Isomorfismo pra quê?

● Oferece uma linguagem de templates para renderizar HTML (só view).

● Não pode ser comparado com Angular, Ember, Backbone...

Page 113: Isomorfismo pra quê?

Aplicação Simples Load: 343 ms

Page 114: Isomorfismo pra quê?

Aplicação com Router Load: 793 ms

Page 115: Isomorfismo pra quê?
Page 116: Isomorfismo pra quê?
Page 117: Isomorfismo pra quê?

Não suporta < IE8

Page 118: Isomorfismo pra quê?
Page 119: Isomorfismo pra quê?

Marko faz o HTML ser mais parecido com JavaScript

JSX faz o JavaScript ser mais parecido com HTML

Page 120: Isomorfismo pra quê?
Page 121: Isomorfismo pra quê?

Support Libs

Page 122: Isomorfismo pra quê?
Page 123: Isomorfismo pra quê?

Faz o browser suportar require(‘modules’)

Page 124: Isomorfismo pra quê?
Page 125: Isomorfismo pra quê?
Page 126: Isomorfismo pra quê?
Page 127: Isomorfismo pra quê?

Referências

● http://isomorphic.net/● http://isomorphic.net/javascript● http://techblog.netflix.com/2015/08/making-netflixcom-faster.html ● https://blog.nodejitsu.com/scaling-isomorphic-javascript-code/● http://nerds.airbnb.com/isomorphic-javascript-future-web-apps/● https://medium.com/@mjackson/universal-javascript-4761051b7ae9● https://www.lullabot.com/articles/what-is-an-isomorphic-application ● http://joshowens.me/what-is-meteor-js/● https://www.sitepoint.com/7-reasons-develop-next-web-app-meteor/● http://blog.andrewray.me/reactjs-for-stupid-people/● https://scotch.io/tutorials/learning-react-getting-started-and-concepts● http://nicolashery.com/exploring-isomorphic-javascript/● http://browserify.org/● https://webpack.github.io/

Page 128: Isomorfismo pra quê?

[email protected] FernandaBernardo

@Feh_Bernardo