You come with just an idea - 
we make great software for you! 
As true as steel to your desire 
Trust 
Teamwork 
Transparency 
Isomorphic Javascript: 
new silver bullet 
Vitaliy Medvedev, Arcadia
© Copyright JSC “Arcadia, Inc.” 
About me 
Vitaliy Medvedev 
Leading Software Engineer at JSC “Arcadia Inc.” 
5+ years of experience in software development 
vitaliy.medvedev@arcadia.spb.ru
© Copyright JSC “Arcadia, Inc.” 
Where JS works 
● client 
● server 
● desktop 
● mobile 
● quadcopters
Single page application (SPA) 
JSON 
(AJAX/WebSockets) 
HTML/CSS/JS PHP/C#/Java/NodeJs 
© Copyright JSC “Arcadia, Inc.” 
Frontend (MVC) 
Animation 
Validation 
Templating 
Routing 
Backend (MVC) 
Persistence 
Authentication 
Heavy calculations
© Copyright JSC “Arcadia, Inc.” 
SPA problems 
● loading time 
● search engine indexing 
● logic duplication 
o different languages - different ecosystems 
o cross-functional restictions
© Copyright JSC “Arcadia, Inc.”
1. Solution! 
© Copyright JSC “Arcadia, Inc.”
© Copyright JSC “Arcadia, Inc.” 
What to do? 
1. Write in the same language on both sides
© Copyright JSC “Arcadia, Inc.” 
What to do? 
1. Write in the same language on both sides 
2. Use same code on both sides
Isomorphic? WAT?! 
© Copyright JSC “Arcadia, Inc.” 
● cross-platform 
● multi-platform 
● heteromorphic 
● ....
Who invented isomorphism? 
© Copyright JSC “Arcadia, Inc.” 
History: 
1. 18 Oct 2011 
Scaling Isomorphic Javascript Code 
2. 01 Apr 2012 
Yahoo! Mojito Framework 
3. 08 Nov 2013 
The future of web apps is — ready? — isomorphic JavaScript
2. Let’s do isomorphism! 
© Copyright JSC “Arcadia, Inc.”
© Copyright JSC “Arcadia, Inc.” 
Using scripts 
var module = require(‘./jquery’); 
<script src="script.js" [async] [defer]></script> 
require([‘jquery’], function ($) { 
// do smth 
})
Differences between client & server JS 
© Copyright JSC “Arcadia, Inc.” 
● Global objects 
global / window 
● Different available api 
localStorage, historyApi, WebGL, Canvas, FileSystem 
● Differences in API behavior 
cookies, websockets, webworkers
Differences between client & server JS 
© Copyright JSC “Arcadia, Inc.” 
● Environment 
● Script loading 
● Available api 
● Engine version
Diving into isomorphism 
● Understand that you can write as isomorphic 
● Code kinds 
o Code that should not work at frontend side 
o Code that should not work at backend side 
o Independent of enviroment 
▪ Write isomorphic unit tests 
▪ Perform static analysis 
o Dependent of enviroment 
▪ Create abstract layer 
© Copyright JSC “Arcadia, Inc.”
Diving into isomorphism 
● Abstraction from enviroment 
browserify, typescript 
● Enviroment specific unit tests 
karma, mocha, phantomjs 
● Static code analisys 
jslint, jshint, eslint, tslint 
© Copyright JSC “Arcadia, Inc.”
Code before isomorphism 
© Copyright JSC “Arcadia, Inc.”
Simple isomorphic module 
© Copyright JSC “Arcadia, Inc.” 
(function (exports) { 
exports.isomorphicSum = function (a, b) { 
return a + b; 
}; 
})(typeof exports ? exports : window)
More usefull example 
© Copyright JSC “Arcadia, Inc.” 
http://jsfiddle.net/7o2mrby9/
More usefull example 
// NodeJS 
var setCookie = require(‘./isomorphicModule’), http = require(‘http’); 
http.createServer(function (req, response) { 
© Copyright JSC “Arcadia, Inc.” 
setCookie(‘name’, ‘value’, { dest: response }); 
}).listen(1337, '127.0.0.1'); 
// Browser: 
window.setCookie(‘name’, ‘value’);
What is isomorphic code good for? 
1. Templating (handlebarsjs) 
2. Business logic: 
© Copyright JSC “Arcadia, Inc.” 
o validation 
o filtering 
o calculations 
3. Using common libraries (jquery, undescore)
Isomorphic libraries 
© Copyright JSC “Arcadia, Inc.” 
● jquery 
● undescore 
● backbonejs 
● lodash 
● cryptojs 
● handlebarsjs 
● async
3. What’s next? 
© Copyright JSC “Arcadia, Inc.”
Full stack javascript frameworks 
© Copyright JSC “Arcadia, Inc.”
© Copyright JSC “Arcadia, Inc.” 
Profit 
✓ decrease loading time 
✓ search engine indexing 
✓ decrease logic duplication 
✓ better code design 
✓ code consistency
© Copyright JSC “Arcadia, Inc.” 
Useful links 
Learning resourсes: 
1. http://venturebeat.com/2013/11/08/the-future-of-web-apps-is-ready- 
isomorphic-javascript/ 
2. http://www.slideshare.net/spikebrehm/a-28174727 
3. http://isomorphic.net/ 
4. http://codewinds.com/podcast/009.html 
5. https://github.com/spikebrehm/isomorphic-tutorial 
Production examples: 
1. http://airbnb.com/ 
2. https://lever.co/
Q & A 
© Copyright JSC “Arcadia, Inc.”

More Related Content

PPTX
Introduction to require js
PDF
AngularJS Introduction
PPT
Require JS
PPTX
Require js
PDF
Modularize JavaScript with RequireJS
PDF
Sightly - AEM6 UI Development using JS and JAVA
PDF
CQ5 and Sling overview
PDF
Require.JS
Introduction to require js
AngularJS Introduction
Require JS
Require js
Modularize JavaScript with RequireJS
Sightly - AEM6 UI Development using JS and JAVA
CQ5 and Sling overview
Require.JS

What's hot (20)

PPTX
Skillwise Dust JS Template
PDF
Modular JavaScript in an OSGi World - S Mak
PPTX
Angular 4
PPTX
Google Developer Group(GDG) DevFest Event 2012 Android talk
PPT
Using RESTFUL APIs in ANGULARJS
PPTX
Node js for enterprise
PPT
Java script lecture 1
PPTX
Native script overview
PPTX
Java script session 3
PDF
Styling components with JavaScript
PDF
Styling Components with JavaScript: MelbCSS Edition
PPTX
Introduction to Sightly and Sling Models
PPTX
Introduction to web compoents
PDF
Seven Versions of One Web Application
PDF
Introduction to JavaScript
PPT
PPTX
Angular js
PPTX
Node.js
PDF
Building search app with ElasticSearch
ODP
AngularJS and REST - #omrs15 tutorial
Skillwise Dust JS Template
Modular JavaScript in an OSGi World - S Mak
Angular 4
Google Developer Group(GDG) DevFest Event 2012 Android talk
Using RESTFUL APIs in ANGULARJS
Node js for enterprise
Java script lecture 1
Native script overview
Java script session 3
Styling components with JavaScript
Styling Components with JavaScript: MelbCSS Edition
Introduction to Sightly and Sling Models
Introduction to web compoents
Seven Versions of One Web Application
Introduction to JavaScript
Angular js
Node.js
Building search app with ElasticSearch
AngularJS and REST - #omrs15 tutorial
Ad

Similar to Isomorphic JS - new silver bullet (20)

PDF
In Pursuit of the Holy Grail: Building Isomorphic JavaScript Apps
PDF
Isomorphic JavaScript: #DevBeat Master Class
PDF
Isomorphic web application
PDF
General Assembly Workshop: Advanced JavaScript
PDF
Isomorphic Aplication with Javascript
PDF
Building Isomorphic Apps (JSConf.Asia 2014)
PDF
«The Grail: React based Isomorph apps framework»​
PDF
The Grail: React based Isomorph apps framework
PPTX
Isomorphic apps
PDF
Isomorphic JavaScript with Nashorn
PDF
Isomorphic javascript - Uppsala.js #8
PDF
JSConf US 2014: Building Isomorphic Apps
PDF
Isomorphic js - React in Rails
PDF
Kharkiv JS 2015 - Creating isomorphic applications in React (en)
PPTX
Isomorphic JavaScript – future of the web
PDF
"The Grail: React based Isomorph apps framework" Эльдар Джафаров
PDF
Zepto and the rise of the JavaScript Micro-Frameworks
PPTX
Isotope
PPTX
Testing Ext JS and Sencha Touch
PDF
Building Isomorphic JavaScript Apps - NDC 2015
In Pursuit of the Holy Grail: Building Isomorphic JavaScript Apps
Isomorphic JavaScript: #DevBeat Master Class
Isomorphic web application
General Assembly Workshop: Advanced JavaScript
Isomorphic Aplication with Javascript
Building Isomorphic Apps (JSConf.Asia 2014)
«The Grail: React based Isomorph apps framework»​
The Grail: React based Isomorph apps framework
Isomorphic apps
Isomorphic JavaScript with Nashorn
Isomorphic javascript - Uppsala.js #8
JSConf US 2014: Building Isomorphic Apps
Isomorphic js - React in Rails
Kharkiv JS 2015 - Creating isomorphic applications in React (en)
Isomorphic JavaScript – future of the web
"The Grail: React based Isomorph apps framework" Эльдар Джафаров
Zepto and the rise of the JavaScript Micro-Frameworks
Isotope
Testing Ext JS and Sencha Touch
Building Isomorphic JavaScript Apps - NDC 2015
Ad

Recently uploaded (20)

PDF
CCleaner 6.39.11548 Crack 2025 License Key
PPTX
Trending Python Topics for Data Visualization in 2025
PDF
EaseUS PDF Editor Pro 6.2.0.2 Crack with License Key 2025
PDF
Type Class Derivation in Scala 3 - Jose Luis Pintado Barbero
PPTX
Matchmaking for JVMs: How to Pick the Perfect GC Partner
PPTX
GSA Content Generator Crack (2025 Latest)
PDF
Introduction to Ragic - #1 No Code Tool For Digitalizing Your Business Proces...
PDF
Topaz Photo AI Crack New Download (Latest 2025)
PPTX
4Seller: The All-in-One Multi-Channel E-Commerce Management Platform for Glob...
DOC
UTEP毕业证学历认证,宾夕法尼亚克拉里恩大学毕业证未毕业
PDF
Ableton Live Suite for MacOS Crack Full Download (Latest 2025)
PDF
MCP Security Tutorial - Beginner to Advanced
PDF
Microsoft Office 365 Crack Download Free
PDF
Practical Indispensable Project Management Tips for Delivering Successful Exp...
PDF
DNT Brochure 2025 – ISV Solutions @ D365
PDF
The Dynamic Duo Transforming Financial Accounting Systems Through Modern Expe...
DOCX
Modern SharePoint Intranet Templates That Boost Employee Engagement in 2025.docx
PDF
iTop VPN Crack Latest Version Full Key 2025
PPTX
Python is a high-level, interpreted programming language
PDF
How AI/LLM recommend to you ? GDG meetup 16 Aug by Fariman Guliev
CCleaner 6.39.11548 Crack 2025 License Key
Trending Python Topics for Data Visualization in 2025
EaseUS PDF Editor Pro 6.2.0.2 Crack with License Key 2025
Type Class Derivation in Scala 3 - Jose Luis Pintado Barbero
Matchmaking for JVMs: How to Pick the Perfect GC Partner
GSA Content Generator Crack (2025 Latest)
Introduction to Ragic - #1 No Code Tool For Digitalizing Your Business Proces...
Topaz Photo AI Crack New Download (Latest 2025)
4Seller: The All-in-One Multi-Channel E-Commerce Management Platform for Glob...
UTEP毕业证学历认证,宾夕法尼亚克拉里恩大学毕业证未毕业
Ableton Live Suite for MacOS Crack Full Download (Latest 2025)
MCP Security Tutorial - Beginner to Advanced
Microsoft Office 365 Crack Download Free
Practical Indispensable Project Management Tips for Delivering Successful Exp...
DNT Brochure 2025 – ISV Solutions @ D365
The Dynamic Duo Transforming Financial Accounting Systems Through Modern Expe...
Modern SharePoint Intranet Templates That Boost Employee Engagement in 2025.docx
iTop VPN Crack Latest Version Full Key 2025
Python is a high-level, interpreted programming language
How AI/LLM recommend to you ? GDG meetup 16 Aug by Fariman Guliev

Isomorphic JS - new silver bullet

  • 1. You come with just an idea - we make great software for you! As true as steel to your desire Trust Teamwork Transparency Isomorphic Javascript: new silver bullet Vitaliy Medvedev, Arcadia
  • 2. © Copyright JSC “Arcadia, Inc.” About me Vitaliy Medvedev Leading Software Engineer at JSC “Arcadia Inc.” 5+ years of experience in software development vitaliy.medvedev@arcadia.spb.ru
  • 3. © Copyright JSC “Arcadia, Inc.” Where JS works ● client ● server ● desktop ● mobile ● quadcopters
  • 4. Single page application (SPA) JSON (AJAX/WebSockets) HTML/CSS/JS PHP/C#/Java/NodeJs © Copyright JSC “Arcadia, Inc.” Frontend (MVC) Animation Validation Templating Routing Backend (MVC) Persistence Authentication Heavy calculations
  • 5. © Copyright JSC “Arcadia, Inc.” SPA problems ● loading time ● search engine indexing ● logic duplication o different languages - different ecosystems o cross-functional restictions
  • 6. © Copyright JSC “Arcadia, Inc.”
  • 7. 1. Solution! © Copyright JSC “Arcadia, Inc.”
  • 8. © Copyright JSC “Arcadia, Inc.” What to do? 1. Write in the same language on both sides
  • 9. © Copyright JSC “Arcadia, Inc.” What to do? 1. Write in the same language on both sides 2. Use same code on both sides
  • 10. Isomorphic? WAT?! © Copyright JSC “Arcadia, Inc.” ● cross-platform ● multi-platform ● heteromorphic ● ....
  • 11. Who invented isomorphism? © Copyright JSC “Arcadia, Inc.” History: 1. 18 Oct 2011 Scaling Isomorphic Javascript Code 2. 01 Apr 2012 Yahoo! Mojito Framework 3. 08 Nov 2013 The future of web apps is — ready? — isomorphic JavaScript
  • 12. 2. Let’s do isomorphism! © Copyright JSC “Arcadia, Inc.”
  • 13. © Copyright JSC “Arcadia, Inc.” Using scripts var module = require(‘./jquery’); <script src="script.js" [async] [defer]></script> require([‘jquery’], function ($) { // do smth })
  • 14. Differences between client & server JS © Copyright JSC “Arcadia, Inc.” ● Global objects global / window ● Different available api localStorage, historyApi, WebGL, Canvas, FileSystem ● Differences in API behavior cookies, websockets, webworkers
  • 15. Differences between client & server JS © Copyright JSC “Arcadia, Inc.” ● Environment ● Script loading ● Available api ● Engine version
  • 16. Diving into isomorphism ● Understand that you can write as isomorphic ● Code kinds o Code that should not work at frontend side o Code that should not work at backend side o Independent of enviroment ▪ Write isomorphic unit tests ▪ Perform static analysis o Dependent of enviroment ▪ Create abstract layer © Copyright JSC “Arcadia, Inc.”
  • 17. Diving into isomorphism ● Abstraction from enviroment browserify, typescript ● Enviroment specific unit tests karma, mocha, phantomjs ● Static code analisys jslint, jshint, eslint, tslint © Copyright JSC “Arcadia, Inc.”
  • 18. Code before isomorphism © Copyright JSC “Arcadia, Inc.”
  • 19. Simple isomorphic module © Copyright JSC “Arcadia, Inc.” (function (exports) { exports.isomorphicSum = function (a, b) { return a + b; }; })(typeof exports ? exports : window)
  • 20. More usefull example © Copyright JSC “Arcadia, Inc.” http://jsfiddle.net/7o2mrby9/
  • 21. More usefull example // NodeJS var setCookie = require(‘./isomorphicModule’), http = require(‘http’); http.createServer(function (req, response) { © Copyright JSC “Arcadia, Inc.” setCookie(‘name’, ‘value’, { dest: response }); }).listen(1337, '127.0.0.1'); // Browser: window.setCookie(‘name’, ‘value’);
  • 22. What is isomorphic code good for? 1. Templating (handlebarsjs) 2. Business logic: © Copyright JSC “Arcadia, Inc.” o validation o filtering o calculations 3. Using common libraries (jquery, undescore)
  • 23. Isomorphic libraries © Copyright JSC “Arcadia, Inc.” ● jquery ● undescore ● backbonejs ● lodash ● cryptojs ● handlebarsjs ● async
  • 24. 3. What’s next? © Copyright JSC “Arcadia, Inc.”
  • 25. Full stack javascript frameworks © Copyright JSC “Arcadia, Inc.”
  • 26. © Copyright JSC “Arcadia, Inc.” Profit ✓ decrease loading time ✓ search engine indexing ✓ decrease logic duplication ✓ better code design ✓ code consistency
  • 27. © Copyright JSC “Arcadia, Inc.” Useful links Learning resourсes: 1. http://venturebeat.com/2013/11/08/the-future-of-web-apps-is-ready- isomorphic-javascript/ 2. http://www.slideshare.net/spikebrehm/a-28174727 3. http://isomorphic.net/ 4. http://codewinds.com/podcast/009.html 5. https://github.com/spikebrehm/isomorphic-tutorial Production examples: 1. http://airbnb.com/ 2. https://lever.co/
  • 28. Q & A © Copyright JSC “Arcadia, Inc.”