architectural overview of a working isomorphic solution plus some funny images of course
Isomorphic Javascript in the real world Cause symmetry is cool
View Slide
Agenda An implementa6on that worked Why is it useful What is “isomorhpism”
“In mathema6cs, an isomorphism (from the Ancient Greek: ἴσος isos "equal", and μορφή morphe "shape") is a homomorphism that admits an inverse.” Isomorphic defini6on
“In mathema6cs, an isomorphism (from the Ancient Greek: ἴσος isos "equal", and μορφή morphe "shape") is a homomorphism that admits an inverse.” Isomorphic what?
An example CAR proper6es! I need an engine I need a steering wheel I want to go to holiday!
This object sa6sfy my proper6es
This object sa6sfy my proper6es too!
river context An isomorphic car! road context Proper6es always sa6sfied!
Equal Shape Equal Behavior
Do we need this?
Yes we do
I want to build some isomorphic stuff New front end architecture Single Page Applica6on
A B C DE SPA managing different states flow
A B C DE What if need direct access to every state?
JSON SEO must work!
✔ ✔ What if I want to share business logic? Shared validaShared sor
I need an isomorphic app Template rendering Business logic Template rendering Business logic
Different Shapes Always a tomato
BL 10000 b view Ask for a page Ask for BL data HTML builder data engine client JS app Make an interac✔ Ask for BL data
{JSON} {JSON} === How to render data?
Where the data comes from? BE service BE service BE service BE service Javascript Mashup orchestrator {JSON} {JSON} {JSON} {JSON} {JSON} Data engine
ExpressJS app How do we build HTML server side? HTTP RS {JSON} Javascript Mashup orchestrator HTTP RQ HTTP RQ HTTP RS
MV* JS app How do we manage interac6ons? AJAX RS {JSON} Javascript Mashup orchestrator Catch interacView render client JS app
Javascript Mashup orchestrator How it works all together Express app MV* Ask for a page Ask for BL data {JSON} {JSON} Ask for BL data Make an interac
Leb over from today New way to solve old problems No need of math PhD You can build your own
@eriol_ricca
grunQile.json bower.json A Generic Module External library (like backbone) Venere library Venere library A Venere module
A Venere app