isomorphic javascript - nodebr

34
isomorphic javascript

Upload: david-lojudice-sobrinho

Post on 10-May-2015

541 views

Category:

Technology


0 download

DESCRIPTION

In this talk, David Lojudice Sobrinho talks about Isomorphic Javascript and how to achieve this. Github: https://github.com/Vizir/isomorphic_js Original (with lovely animated gifs): https://dl.dropboxusercontent.com/u/702095/Apresenta%C3%A7%C3%B5es/isomorphic%20javascript%20-%20nodebr.zip

TRANSCRIPT

Page 1: Isomorphic Javascript - nodebr

isomorphic javascript

Page 2: Isomorphic Javascript - nodebr

?

Page 3: Isomorphic Javascript - nodebr
Page 4: Isomorphic Javascript - nodebr
Page 5: Isomorphic Javascript - nodebr
Page 6: Isomorphic Javascript - nodebr

client = server?

Page 7: Isomorphic Javascript - nodebr

client = server

Page 8: Isomorphic Javascript - nodebr
Page 9: Isomorphic Javascript - nodebr

symmetric infra

app

infra

client server

Page 10: Isomorphic Javascript - nodebr

infrastructure?

DOM

MVC

HTML

SQLWebSocke

t

Route

CSS

SMTP

HTTP

NoSQL

OAuth

Page 11: Isomorphic Javascript - nodebr

isomorphic view

document.getElementById('content');

Page 12: Isomorphic Javascript - nodebr

rendr (AirBnB)

backbone + templatehttps://github.com/rendrjs/rendr

react (Facebook)

virtual DOMhttp://facebook.github.io/react/

Page 13: Isomorphic Javascript - nodebr

isomorphic data

mongoObj.insert({text: ‘hello word'});

Page 14: Isomorphic Javascript - nodebr

meteor

mongo APIhttps://www.meteor.com/

pouchDB

couchDB implementationhttp://pouchdb.com/

Page 15: Isomorphic Javascript - nodebr
Page 16: Isomorphic Javascript - nodebr

client != server

Page 17: Isomorphic Javascript - nodebr

asymmetric infra

client serve

MVC angular express

view HTML JSON

persistence

XMLHttpRequest

SELECT * FROM

Page 18: Isomorphic Javascript - nodebr

isomorphic business logic

Page 19: Isomorphic Javascript - nodebr

asymmetric infra

app

infra

client server

infra

Page 20: Isomorphic Javascript - nodebr

mvc != app

Page 21: Isomorphic Javascript - nodebr

separation of concerns

http://socket.io/#how-to-use

Page 22: Isomorphic Javascript - nodebr

single page application

file

http://vimeo.com/89258863

Modular JavaScript With npm and Node Modules

Page 23: Isomorphic Javascript - nodebr

https://www.youtube.com/watch?v=WpkDN78P884

architecture the lost years by Uncle Bob

architecture is not about frameworks and tools

architecture is about use cases

business logic should be isolated from frameworks

business logic should be isolated from the frontend (delivery mechanism)

business logic should be isolated from the backend (persistence mechanism)

Page 24: Isomorphic Javascript - nodebr
Page 25: Isomorphic Javascript - nodebr

business/package.jsonuse_case/model/test/

web/server/

package.jsonroute.jscontrollers/repository/test/

client/package.jsonindex.jsview/controllers/repository/public/test/

Page 26: Isomorphic Javascript - nodebr

business/web/

server/client/

rest-api/cli/irc/voice/{{whatever}}/

https://github.com/qertoip/guru_watch/wiki/Real-World-Concerns

Page 27: Isomorphic Javascript - nodebr

SHOW IT!

Page 28: Isomorphic Javascript - nodebr

usecase

models

controller

repository

view

Business

Infra

Client & Server

Page 29: Isomorphic Javascript - nodebr

SalvarCliente

Use CaseCliente

ClienteControll

er(angular)

ClienteReposito

ry

index.html

Infra(browse

r)

Client

DOM $HTTP

Business

Page 30: Isomorphic Javascript - nodebr

SalvarCliente

Use CaseCliente

ClienteControll

er(express)

ClienteReposito

ryJSON

Server

HTTP DB

Cliente(server)

Business

Infra(node.j

s)

Page 31: Isomorphic Javascript - nodebr

client = server

X

cliente != server

Page 32: Isomorphic Javascript - nodebr
Page 33: Isomorphic Javascript - nodebr
Page 34: Isomorphic Javascript - nodebr

david lojudice sb@[email protected]

https://github.com/Vizir/isomorphic_js