SlideShare une entreprise Scribd logo
1  sur  128
Télécharger pour lire hors ligne
Isomorfismo
Pra quê?
Fernanda Bernardo
Voltando no tempo…
1993 Páginas estáticas
1993 Páginas estáticas
1995Javascript
E se fosse possível rodar JS no
servidor e no cliente?
UX
Server / Client
1993 Páginas estáticas
200X SPA
1995Javascript
SPA
● Single Page Application
● Modelo de desenvolvimento
● Sem reload
● Dados assíncronos
SEO / JS
E se fosse possível rodar JS no
servidor e no cliente?
1993 Páginas estáticas
2009Node JS
200X SPA
1995Javascript
E se fosse possível rodar um
mesmo JS no servidor e no
cliente?
1993 Páginas estáticas
2009Node JS
200X SPA
1995Javascript
2011 Javascript Isomórfico
O que é Isomorfismo?
isomorfismo
i.so.mor.fis.mo
sm (iso+morfo1
+ismo)
substantivo masculino
1. á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.
isomorfismo
i.so.mor.fis.mo
sm (iso+morfo1
+ismo)
substantivo masculino
1. á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.
JAVASCRIPTJAVASCRIPT
E no código?
It's Show
Time!
pessoa.js
pessoa_parser.js
pessoa_parser.js
pessoa_parser.js
main.js
main.js
main.js
index.html
main.js
main.js
main.js
pessoa_parser.js
Rotas
Renderização
View Models
Persistência
Log
Eventos UI
Rotas
Renderização
View Models
i18n
i18n
Sessão
Local Storage
Rotas
Renderização
View Models
Persistência
i18n
Log
Sessão
Eventos UI
Local Storage
isomórfico
Quem usa?
Charlie Robbins
● 2011
● Arquitetura isomórfica
● Adoção lenta
Spike Brehm
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
● Reconstrução site mobile web
● Diminuir tempo carregamento da página
● Melhorar UX para o usuário
Kristofer Baxter
Java
Struts
Tiles
Javascript
JQuery
Java
Struts
Tiles
Javascript
JQuery
Prototipação
Java
Struts
Tiles
Javascript
JQuery
Java
Struts
Tiles
Javascript
JQuery
Servidor de
Componentes
Requisição
1ª requisição
JSON
Requisição
1ª requisição
Compo-
nente
JSON
Requisição
1ª requisição
Compo-
nente
Página
JSON
Requisição
1ª requisição
2ª requisição
Requisição
Requisição
JSON
Requisição
Requisição
Componente
2ª requisição
Prós / Contras
Menos duplicação de código
Mais fácil de dar manutenção
Menos tempo gasto para escrever
código no servidor e no cliente.
Levar em conta onde o
código será executado
Primeiro request é rápido
e os outros ainda mais.
Mais simples de funcionar sem
JS, servidor retorna o HTML.
Debug é mais
complicado
Evitar expor
dados sensíveis
Os frameworks mudam
muito rápido
Se sua página não tiver muita atualização dinâmica, você
irá implementar muito código para pouco benefício
Frameworks / Libs
● Primeira lib isomórfica open source
● Yahoo!
● Abril 2012
● Dependência do YUI
● Primeira lib isomórfica open source
● Yahoo!
● Abril 2012
● Dependência do YUI
● Primeira lib isomórfica open source
● Yahoo!
● Abril 2012
● Dependência do YUI
Real Time
Configurações
Configurações
Configurações
Configurações
53 scripts
Projeto básico
muito pesado
Projeto básico
muito pesado
Load: 3.01 s
Não funciona
sem JS
Documentação
Componentes
● Oferece uma linguagem de templates para
renderizar HTML (só view).
● Não pode ser comparado com Angular, Ember,
Backbone...
Aplicação Simples Load: 343 ms
Aplicação com Router Load: 793 ms
Não suporta
< IE8
Marko faz o HTML ser mais parecido com JavaScript
JSX faz o JavaScript ser mais parecido com HTML
Support Libs
Faz o browser suportar require(‘modules’)
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/
fernanda.bernardo@elo7.com
FernandaBernardo
@Feh_Bernardo

Contenu connexe

Similaire à Isomorfismo pra quê?

T03_LM3: Javascript (2013-2014)
T03_LM3: Javascript (2013-2014)T03_LM3: Javascript (2013-2014)
T03_LM3: Javascript (2013-2014)
Carlos Santos
 
Jsf com hibernate, spring security e maven
Jsf com hibernate, spring security e mavenJsf com hibernate, spring security e maven
Jsf com hibernate, spring security e maven
Leandro Costa
 
Desenvolvimento rápido de aplicações com JEE e JavaFX
Desenvolvimento rápido de aplicações com JEE e JavaFXDesenvolvimento rápido de aplicações com JEE e JavaFX
Desenvolvimento rápido de aplicações com JEE e JavaFX
jesuinoPower
 

Similaire à Isomorfismo pra quê? (20)

Aula 2. frameworks js
Aula 2. frameworks jsAula 2. frameworks js
Aula 2. frameworks js
 
Front end architecture
Front end architectureFront end architecture
Front end architecture
 
Tutorial JBoss Seam
Tutorial JBoss Seam Tutorial JBoss Seam
Tutorial JBoss Seam
 
Pós Ruy - 2 e 3 Camadas - Web com JSF2
Pós Ruy - 2 e 3 Camadas - Web com JSF2Pós Ruy - 2 e 3 Camadas - Web com JSF2
Pós Ruy - 2 e 3 Camadas - Web com JSF2
 
NoSQL + Node.js
NoSQL + Node.jsNoSQL + Node.js
NoSQL + Node.js
 
Mac5700
Mac5700Mac5700
Mac5700
 
Jboss Seam
Jboss SeamJboss Seam
Jboss Seam
 
XPT Framework
XPT FrameworkXPT Framework
XPT Framework
 
1409243945064
14092439450641409243945064
1409243945064
 
Aplicações Web, Frameworks, REST e SPA
Aplicações Web, Frameworks, REST e SPAAplicações Web, Frameworks, REST e SPA
Aplicações Web, Frameworks, REST e SPA
 
T03_LM3: Javascript (2013-2014)
T03_LM3: Javascript (2013-2014)T03_LM3: Javascript (2013-2014)
T03_LM3: Javascript (2013-2014)
 
Jsf com hibernate, spring security e maven
Jsf com hibernate, spring security e mavenJsf com hibernate, spring security e maven
Jsf com hibernate, spring security e maven
 
Introdução a jsf
Introdução a jsfIntrodução a jsf
Introdução a jsf
 
Desenvolvimento rápido de aplicações com JEE e JavaFX
Desenvolvimento rápido de aplicações com JEE e JavaFXDesenvolvimento rápido de aplicações com JEE e JavaFX
Desenvolvimento rápido de aplicações com JEE e JavaFX
 
Java Web Fácil com VRaptor
Java Web Fácil com VRaptorJava Web Fácil com VRaptor
Java Web Fácil com VRaptor
 
Arquitetura Web Desacoplada - FCI/Mackenzie
Arquitetura Web Desacoplada - FCI/MackenzieArquitetura Web Desacoplada - FCI/Mackenzie
Arquitetura Web Desacoplada - FCI/Mackenzie
 
Lab
LabLab
Lab
 
Curso jsf
Curso jsfCurso jsf
Curso jsf
 
Navegando em um mar de siglas do mundo java
Navegando em um mar de siglas do mundo javaNavegando em um mar de siglas do mundo java
Navegando em um mar de siglas do mundo java
 
Aula parte 2 de JSF 2.2
Aula parte 2 de JSF 2.2Aula parte 2 de JSF 2.2
Aula parte 2 de JSF 2.2
 

Plus de Fernanda Bernardo

Diabetes Mais Doce - Versão 1.0
Diabetes Mais Doce - Versão 1.0Diabetes Mais Doce - Versão 1.0
Diabetes Mais Doce - Versão 1.0
Fernanda Bernardo
 

Plus de Fernanda Bernardo (19)

Reinventar a roda a cada novo framework js, vale a pena?
Reinventar a roda a cada novo framework js, vale a pena?Reinventar a roda a cada novo framework js, vale a pena?
Reinventar a roda a cada novo framework js, vale a pena?
 
Jogos 3.0 - MVP Conf
Jogos 3.0 - MVP ConfJogos 3.0 - MVP Conf
Jogos 3.0 - MVP Conf
 
Jogos 3.0
Jogos 3.0Jogos 3.0
Jogos 3.0
 
Palestrantes são seres super mágicos?
Palestrantes são seres super mágicos?Palestrantes são seres super mágicos?
Palestrantes são seres super mágicos?
 
Jogos: indo além do simples CSS 3.0
Jogos: indo além do simples CSS 3.0Jogos: indo além do simples CSS 3.0
Jogos: indo além do simples CSS 3.0
 
Ecmascript - Versão extendida
Ecmascript - Versão extendidaEcmascript - Versão extendida
Ecmascript - Versão extendida
 
EcmaScript
EcmaScriptEcmaScript
EcmaScript
 
Descomplicando o alinhamento com css
Descomplicando o alinhamento com cssDescomplicando o alinhamento com css
Descomplicando o alinhamento com css
 
Ux para aumentar a liberdade dos diabéticos
Ux para aumentar a liberdade dos diabéticosUx para aumentar a liberdade dos diabéticos
Ux para aumentar a liberdade dos diabéticos
 
Jogos com css 2.0
Jogos com css 2.0Jogos com css 2.0
Jogos com css 2.0
 
Jogos com css
Jogos com cssJogos com css
Jogos com css
 
A influência dos usuários no desenvolvimento do Talk7
A influência dos usuários no desenvolvimento do Talk7A influência dos usuários no desenvolvimento do Talk7
A influência dos usuários no desenvolvimento do Talk7
 
Front end ++: seo e flexbox
Front end ++: seo e flexboxFront end ++: seo e flexbox
Front end ++: seo e flexbox
 
Workshop android
Workshop androidWorkshop android
Workshop android
 
Transformando barreiras para ajudar comunidades
Transformando barreiras para ajudar comunidadesTransformando barreiras para ajudar comunidades
Transformando barreiras para ajudar comunidades
 
Heroku
HerokuHeroku
Heroku
 
UX para aumentar a liberdade de diabéticos
UX para aumentar a liberdade de diabéticosUX para aumentar a liberdade de diabéticos
UX para aumentar a liberdade de diabéticos
 
Diabetes Mais Doce - Versão 1.0
Diabetes Mais Doce - Versão 1.0Diabetes Mais Doce - Versão 1.0
Diabetes Mais Doce - Versão 1.0
 
Coding Dojo
Coding DojoCoding Dojo
Coding Dojo
 

Isomorfismo pra quê?