old gods & new: a vision of backend & frontend
TRANSCRIPT
![Page 1: Old Gods & New: a vision of Backend & Frontend](https://reader036.vdocuments.us/reader036/viewer/2022062515/55c2b25fbb61eb555f8b4638/html5/thumbnails/1.jpg)
Old Gods & New: A Vision of Backend & FrontendMay 2015
By Gil Tayar
![Page 2: Old Gods & New: a vision of Backend & Frontend](https://reader036.vdocuments.us/reader036/viewer/2022062515/55c2b25fbb61eb555f8b4638/html5/thumbnails/2.jpg)
Chapter I: The Land of the Web
![Page 3: Old Gods & New: a vision of Backend & Frontend](https://reader036.vdocuments.us/reader036/viewer/2022062515/55c2b25fbb61eb555f8b4638/html5/thumbnails/3.jpg)
![Page 4: Old Gods & New: a vision of Backend & Frontend](https://reader036.vdocuments.us/reader036/viewer/2022062515/55c2b25fbb61eb555f8b4638/html5/thumbnails/4.jpg)
![Page 5: Old Gods & New: a vision of Backend & Frontend](https://reader036.vdocuments.us/reader036/viewer/2022062515/55c2b25fbb61eb555f8b4638/html5/thumbnails/5.jpg)
Paul
![Page 6: Old Gods & New: a vision of Backend & Frontend](https://reader036.vdocuments.us/reader036/viewer/2022062515/55c2b25fbb61eb555f8b4638/html5/thumbnails/6.jpg)
Two Tribes
![Page 7: Old Gods & New: a vision of Backend & Frontend](https://reader036.vdocuments.us/reader036/viewer/2022062515/55c2b25fbb61eb555f8b4638/html5/thumbnails/7.jpg)
The Backend Tribe
![Page 8: Old Gods & New: a vision of Backend & Frontend](https://reader036.vdocuments.us/reader036/viewer/2022062515/55c2b25fbb61eb555f8b4638/html5/thumbnails/8.jpg)
The Frontend Tribe
![Page 9: Old Gods & New: a vision of Backend & Frontend](https://reader036.vdocuments.us/reader036/viewer/2022062515/55c2b25fbb61eb555f8b4638/html5/thumbnails/9.jpg)
The Backend Gods
![Page 10: Old Gods & New: a vision of Backend & Frontend](https://reader036.vdocuments.us/reader036/viewer/2022062515/55c2b25fbb61eb555f8b4638/html5/thumbnails/10.jpg)
Thread Pools
![Page 11: Old Gods & New: a vision of Backend & Frontend](https://reader036.vdocuments.us/reader036/viewer/2022062515/55c2b25fbb61eb555f8b4638/html5/thumbnails/11.jpg)
Message Queues
![Page 12: Old Gods & New: a vision of Backend & Frontend](https://reader036.vdocuments.us/reader036/viewer/2022062515/55c2b25fbb61eb555f8b4638/html5/thumbnails/12.jpg)
Scala
![Page 13: Old Gods & New: a vision of Backend & Frontend](https://reader036.vdocuments.us/reader036/viewer/2022062515/55c2b25fbb61eb555f8b4638/html5/thumbnails/13.jpg)
And The Frontend Tribe?
![Page 14: Old Gods & New: a vision of Backend & Frontend](https://reader036.vdocuments.us/reader036/viewer/2022062515/55c2b25fbb61eb555f8b4638/html5/thumbnails/14.jpg)
Thread Pools
![Page 15: Old Gods & New: a vision of Backend & Frontend](https://reader036.vdocuments.us/reader036/viewer/2022062515/55c2b25fbb61eb555f8b4638/html5/thumbnails/15.jpg)
Message Queues
![Page 16: Old Gods & New: a vision of Backend & Frontend](https://reader036.vdocuments.us/reader036/viewer/2022062515/55c2b25fbb61eb555f8b4638/html5/thumbnails/16.jpg)
Scala
![Page 17: Old Gods & New: a vision of Backend & Frontend](https://reader036.vdocuments.us/reader036/viewer/2022062515/55c2b25fbb61eb555f8b4638/html5/thumbnails/17.jpg)
JavaScript
![Page 18: Old Gods & New: a vision of Backend & Frontend](https://reader036.vdocuments.us/reader036/viewer/2022062515/55c2b25fbb61eb555f8b4638/html5/thumbnails/18.jpg)
Angular
![Page 19: Old Gods & New: a vision of Backend & Frontend](https://reader036.vdocuments.us/reader036/viewer/2022062515/55c2b25fbb61eb555f8b4638/html5/thumbnails/19.jpg)
DOM
![Page 20: Old Gods & New: a vision of Backend & Frontend](https://reader036.vdocuments.us/reader036/viewer/2022062515/55c2b25fbb61eb555f8b4638/html5/thumbnails/20.jpg)
For they were old gods
![Page 21: Old Gods & New: a vision of Backend & Frontend](https://reader036.vdocuments.us/reader036/viewer/2022062515/55c2b25fbb61eb555f8b4638/html5/thumbnails/21.jpg)
Serving the Frontend Code
![Page 22: Old Gods & New: a vision of Backend & Frontend](https://reader036.vdocuments.us/reader036/viewer/2022062515/55c2b25fbb61eb555f8b4638/html5/thumbnails/22.jpg)
HTML
![Page 23: Old Gods & New: a vision of Backend & Frontend](https://reader036.vdocuments.us/reader036/viewer/2022062515/55c2b25fbb61eb555f8b4638/html5/thumbnails/23.jpg)
CSS
![Page 24: Old Gods & New: a vision of Backend & Frontend](https://reader036.vdocuments.us/reader036/viewer/2022062515/55c2b25fbb61eb555f8b4638/html5/thumbnails/24.jpg)
JavaScript
![Page 25: Old Gods & New: a vision of Backend & Frontend](https://reader036.vdocuments.us/reader036/viewer/2022062515/55c2b25fbb61eb555f8b4638/html5/thumbnails/25.jpg)
Please, pray to the backend gods
![Page 26: Old Gods & New: a vision of Backend & Frontend](https://reader036.vdocuments.us/reader036/viewer/2022062515/55c2b25fbb61eb555f8b4638/html5/thumbnails/26.jpg)
Thread PoolsMessage Queues
Scala
![Page 27: Old Gods & New: a vision of Backend & Frontend](https://reader036.vdocuments.us/reader036/viewer/2022062515/55c2b25fbb61eb555f8b4638/html5/thumbnails/27.jpg)
HTMLCSS
JavaScript
![Page 28: Old Gods & New: a vision of Backend & Frontend](https://reader036.vdocuments.us/reader036/viewer/2022062515/55c2b25fbb61eb555f8b4638/html5/thumbnails/28.jpg)
LET IT BE SO
![Page 29: Old Gods & New: a vision of Backend & Frontend](https://reader036.vdocuments.us/reader036/viewer/2022062515/55c2b25fbb61eb555f8b4638/html5/thumbnails/29.jpg)
FTP
![Page 30: Old Gods & New: a vision of Backend & Frontend](https://reader036.vdocuments.us/reader036/viewer/2022062515/55c2b25fbb61eb555f8b4638/html5/thumbnails/30.jpg)
HTML, CSS, JavaScript FTP⇒
![Page 31: Old Gods & New: a vision of Backend & Frontend](https://reader036.vdocuments.us/reader036/viewer/2022062515/55c2b25fbb61eb555f8b4638/html5/thumbnails/31.jpg)
Not Happy
![Page 32: Old Gods & New: a vision of Backend & Frontend](https://reader036.vdocuments.us/reader036/viewer/2022062515/55c2b25fbb61eb555f8b4638/html5/thumbnails/32.jpg)
http://mytribe.com/about-us.html
![Page 33: Old Gods & New: a vision of Backend & Frontend](https://reader036.vdocuments.us/reader036/viewer/2022062515/55c2b25fbb61eb555f8b4638/html5/thumbnails/33.jpg)
http://mytribe.com/about-us
![Page 34: Old Gods & New: a vision of Backend & Frontend](https://reader036.vdocuments.us/reader036/viewer/2022062515/55c2b25fbb61eb555f8b4638/html5/thumbnails/34.jpg)
Please, pray to the backend gods
![Page 35: Old Gods & New: a vision of Backend & Frontend](https://reader036.vdocuments.us/reader036/viewer/2022062515/55c2b25fbb61eb555f8b4638/html5/thumbnails/35.jpg)
Thread PoolsMessage Queues
Scala
![Page 36: Old Gods & New: a vision of Backend & Frontend](https://reader036.vdocuments.us/reader036/viewer/2022062515/55c2b25fbb61eb555f8b4638/html5/thumbnails/36.jpg)
And the backend tribe prayed
![Page 37: Old Gods & New: a vision of Backend & Frontend](https://reader036.vdocuments.us/reader036/viewer/2022062515/55c2b25fbb61eb555f8b4638/html5/thumbnails/37.jpg)
LET IT BE SO
![Page 38: Old Gods & New: a vision of Backend & Frontend](https://reader036.vdocuments.us/reader036/viewer/2022062515/55c2b25fbb61eb555f8b4638/html5/thumbnails/38.jpg)
URL Rewriting
![Page 39: Old Gods & New: a vision of Backend & Frontend](https://reader036.vdocuments.us/reader036/viewer/2022062515/55c2b25fbb61eb555f8b4638/html5/thumbnails/39.jpg)
Secret Sacred Server Configuration Files
![Page 40: Old Gods & New: a vision of Backend & Frontend](https://reader036.vdocuments.us/reader036/viewer/2022062515/55c2b25fbb61eb555f8b4638/html5/thumbnails/40.jpg)
And all was well
![Page 41: Old Gods & New: a vision of Backend & Frontend](https://reader036.vdocuments.us/reader036/viewer/2022062515/55c2b25fbb61eb555f8b4638/html5/thumbnails/41.jpg)
Chapter II: Serving ES6 Modules
![Page 42: Old Gods & New: a vision of Backend & Frontend](https://reader036.vdocuments.us/reader036/viewer/2022062515/55c2b25fbb61eb555f8b4638/html5/thumbnails/42.jpg)
Smitten with ES6 Modules
![Page 43: Old Gods & New: a vision of Backend & Frontend](https://reader036.vdocuments.us/reader036/viewer/2022062515/55c2b25fbb61eb555f8b4638/html5/thumbnails/43.jpg)
![Page 44: Old Gods & New: a vision of Backend & Frontend](https://reader036.vdocuments.us/reader036/viewer/2022062515/55c2b25fbb61eb555f8b4638/html5/thumbnails/44.jpg)
![Page 45: Old Gods & New: a vision of Backend & Frontend](https://reader036.vdocuments.us/reader036/viewer/2022062515/55c2b25fbb61eb555f8b4638/html5/thumbnails/45.jpg)
An ES6 Module
// aModule.jsexport function greet(name) { return 'hello ' + name;}
![Page 46: Old Gods & New: a vision of Backend & Frontend](https://reader036.vdocuments.us/reader036/viewer/2022062515/55c2b25fbb61eb555f8b4638/html5/thumbnails/46.jpg)
Importing ES6 Module
import {aFunction} from './aModule';
document.onready = function() {document.getElementById('greeting').
innerHTML = aFunction('anonymous');}
![Page 47: Old Gods & New: a vision of Backend & Frontend](https://reader036.vdocuments.us/reader036/viewer/2022062515/55c2b25fbb61eb555f8b4638/html5/thumbnails/47.jpg)
Who transpiles the ES6 toJavaScript?
![Page 48: Old Gods & New: a vision of Backend & Frontend](https://reader036.vdocuments.us/reader036/viewer/2022062515/55c2b25fbb61eb555f8b4638/html5/thumbnails/48.jpg)
babel
![Page 49: Old Gods & New: a vision of Backend & Frontend](https://reader036.vdocuments.us/reader036/viewer/2022062515/55c2b25fbb61eb555f8b4638/html5/thumbnails/49.jpg)
traceur
![Page 50: Old Gods & New: a vision of Backend & Frontend](https://reader036.vdocuments.us/reader036/viewer/2022062515/55c2b25fbb61eb555f8b4638/html5/thumbnails/50.jpg)
esnext
![Page 51: Old Gods & New: a vision of Backend & Frontend](https://reader036.vdocuments.us/reader036/viewer/2022062515/55c2b25fbb61eb555f8b4638/html5/thumbnails/51.jpg)
A Deep Hierarchy of ES6 Modules<script src= ></script>
![Page 52: Old Gods & New: a vision of Backend & Frontend](https://reader036.vdocuments.us/reader036/viewer/2022062515/55c2b25fbb61eb555f8b4638/html5/thumbnails/52.jpg)
The Sun Will Go DarkRequestmain.js
Responsemain.js
Requestsub-a.js
Responsesub-a.js
Requestsub-a-a.js
Responsesub-a-a.js
![Page 53: Old Gods & New: a vision of Backend & Frontend](https://reader036.vdocuments.us/reader036/viewer/2022062515/55c2b25fbb61eb555f8b4638/html5/thumbnails/53.jpg)
browserify
![Page 54: Old Gods & New: a vision of Backend & Frontend](https://reader036.vdocuments.us/reader036/viewer/2022062515/55c2b25fbb61eb555f8b4638/html5/thumbnails/54.jpg)
webpack
![Page 55: Old Gods & New: a vision of Backend & Frontend](https://reader036.vdocuments.us/reader036/viewer/2022062515/55c2b25fbb61eb555f8b4638/html5/thumbnails/55.jpg)
jspm
![Page 56: Old Gods & New: a vision of Backend & Frontend](https://reader036.vdocuments.us/reader036/viewer/2022062515/55c2b25fbb61eb555f8b4638/html5/thumbnails/56.jpg)
Bundling ES6 Modules
bundle.js
![Page 57: Old Gods & New: a vision of Backend & Frontend](https://reader036.vdocuments.us/reader036/viewer/2022062515/55c2b25fbb61eb555f8b4638/html5/thumbnails/57.jpg)
![Page 58: Old Gods & New: a vision of Backend & Frontend](https://reader036.vdocuments.us/reader036/viewer/2022062515/55c2b25fbb61eb555f8b4638/html5/thumbnails/58.jpg)
A month later...
![Page 59: Old Gods & New: a vision of Backend & Frontend](https://reader036.vdocuments.us/reader036/viewer/2022062515/55c2b25fbb61eb555f8b4638/html5/thumbnails/59.jpg)
The Wondrous F5( +R for all you Mac-ies)⌘
![Page 60: Old Gods & New: a vision of Backend & Frontend](https://reader036.vdocuments.us/reader036/viewer/2022062515/55c2b25fbb61eb555f8b4638/html5/thumbnails/60.jpg)
Bundling Kills Caching
bundle-for-page-1.js
![Page 61: Old Gods & New: a vision of Backend & Frontend](https://reader036.vdocuments.us/reader036/viewer/2022062515/55c2b25fbb61eb555f8b4638/html5/thumbnails/61.jpg)
Over-Bundling
bundle-for-page-2.js
bundle-for-page-1.js
![Page 62: Old Gods & New: a vision of Backend & Frontend](https://reader036.vdocuments.us/reader036/viewer/2022062515/55c2b25fbb61eb555f8b4638/html5/thumbnails/62.jpg)
Chapter III: The Bold Architecture
![Page 63: Old Gods & New: a vision of Backend & Frontend](https://reader036.vdocuments.us/reader036/viewer/2022062515/55c2b25fbb61eb555f8b4638/html5/thumbnails/63.jpg)
![Page 64: Old Gods & New: a vision of Backend & Frontend](https://reader036.vdocuments.us/reader036/viewer/2022062515/55c2b25fbb61eb555f8b4638/html5/thumbnails/64.jpg)
Backend Understanding JavaScript
bundle.js
Server
![Page 65: Old Gods & New: a vision of Backend & Frontend](https://reader036.vdocuments.us/reader036/viewer/2022062515/55c2b25fbb61eb555f8b4638/html5/thumbnails/65.jpg)
bundles killing caching?over-bundling?
Solved?
![Page 66: Old Gods & New: a vision of Backend & Frontend](https://reader036.vdocuments.us/reader036/viewer/2022062515/55c2b25fbb61eb555f8b4638/html5/thumbnails/66.jpg)
![Page 67: Old Gods & New: a vision of Backend & Frontend](https://reader036.vdocuments.us/reader036/viewer/2022062515/55c2b25fbb61eb555f8b4638/html5/thumbnails/67.jpg)
HTTP/2
![Page 68: Old Gods & New: a vision of Backend & Frontend](https://reader036.vdocuments.us/reader036/viewer/2022062515/55c2b25fbb61eb555f8b4638/html5/thumbnails/68.jpg)
HTTP/1Requestmain.js
Responsemain.js
Requestsub-a.js
Responsesub-a.js
Requestsub-b.js
Responsesub-b.js
![Page 69: Old Gods & New: a vision of Backend & Frontend](https://reader036.vdocuments.us/reader036/viewer/2022062515/55c2b25fbb61eb555f8b4638/html5/thumbnails/69.jpg)
To HTTP/2 Multi-ChannelRequestmain.js
Responsemain.js
Requestsub-a.js
Requestsub-b.js
Responsesub-a.js
Responsesub-b.js
Requestsub-b-a.js
Responsesub-a-b.js
Requestsub-a-b.js
Responsesub-b-a.js
![Page 70: Old Gods & New: a vision of Backend & Frontend](https://reader036.vdocuments.us/reader036/viewer/2022062515/55c2b25fbb61eb555f8b4638/html5/thumbnails/70.jpg)
HTTP/2 Push Mode
Request main.js
Response sub-a.js
Response sub-a-b.js
Response sub-b.js
Response sub-b-a.js
![Page 71: Old Gods & New: a vision of Backend & Frontend](https://reader036.vdocuments.us/reader036/viewer/2022062515/55c2b25fbb61eb555f8b4638/html5/thumbnails/71.jpg)
HTTP/2 Push Mode with Cache
Request main.js
Response sub-a.js
Response sub-a-b.js
Response sub-b.js
Response sub-b-a.js
![Page 72: Old Gods & New: a vision of Backend & Frontend](https://reader036.vdocuments.us/reader036/viewer/2022062515/55c2b25fbb61eb555f8b4638/html5/thumbnails/72.jpg)
“Please, plead to the gods about JavaScript and HTTP/2”
![Page 73: Old Gods & New: a vision of Backend & Frontend](https://reader036.vdocuments.us/reader036/viewer/2022062515/55c2b25fbb61eb555f8b4638/html5/thumbnails/73.jpg)
Thread PoolsMessage Queues
Scala
![Page 74: Old Gods & New: a vision of Backend & Frontend](https://reader036.vdocuments.us/reader036/viewer/2022062515/55c2b25fbb61eb555f8b4638/html5/thumbnails/74.jpg)
![Page 75: Old Gods & New: a vision of Backend & Frontend](https://reader036.vdocuments.us/reader036/viewer/2022062515/55c2b25fbb61eb555f8b4638/html5/thumbnails/75.jpg)
![Page 76: Old Gods & New: a vision of Backend & Frontend](https://reader036.vdocuments.us/reader036/viewer/2022062515/55c2b25fbb61eb555f8b4638/html5/thumbnails/76.jpg)
![Page 77: Old Gods & New: a vision of Backend & Frontend](https://reader036.vdocuments.us/reader036/viewer/2022062515/55c2b25fbb61eb555f8b4638/html5/thumbnails/77.jpg)
JavaScriptAngular
DOM
![Page 78: Old Gods & New: a vision of Backend & Frontend](https://reader036.vdocuments.us/reader036/viewer/2022062515/55c2b25fbb61eb555f8b4638/html5/thumbnails/78.jpg)
![Page 79: Old Gods & New: a vision of Backend & Frontend](https://reader036.vdocuments.us/reader036/viewer/2022062515/55c2b25fbb61eb555f8b4638/html5/thumbnails/79.jpg)
Chapter IV: CSS
![Page 80: Old Gods & New: a vision of Backend & Frontend](https://reader036.vdocuments.us/reader036/viewer/2022062515/55c2b25fbb61eb555f8b4638/html5/thumbnails/80.jpg)
HTML
![Page 81: Old Gods & New: a vision of Backend & Frontend](https://reader036.vdocuments.us/reader036/viewer/2022062515/55c2b25fbb61eb555f8b4638/html5/thumbnails/81.jpg)
CSS
![Page 82: Old Gods & New: a vision of Backend & Frontend](https://reader036.vdocuments.us/reader036/viewer/2022062515/55c2b25fbb61eb555f8b4638/html5/thumbnails/82.jpg)
JavaScript
![Page 83: Old Gods & New: a vision of Backend & Frontend](https://reader036.vdocuments.us/reader036/viewer/2022062515/55c2b25fbb61eb555f8b4638/html5/thumbnails/83.jpg)
Hm...
![Page 84: Old Gods & New: a vision of Backend & Frontend](https://reader036.vdocuments.us/reader036/viewer/2022062515/55c2b25fbb61eb555f8b4638/html5/thumbnails/84.jpg)
Do unto CSS, what you would do unto JavaScript?
![Page 85: Old Gods & New: a vision of Backend & Frontend](https://reader036.vdocuments.us/reader036/viewer/2022062515/55c2b25fbb61eb555f8b4638/html5/thumbnails/85.jpg)
Gods That Understand JS Give Us
● Auto-transpiling of ES6● Fast serving of JS modules● No cache-killing JS bundles● All using the wondrous F5 key
![Page 86: Old Gods & New: a vision of Backend & Frontend](https://reader036.vdocuments.us/reader036/viewer/2022062515/55c2b25fbb61eb555f8b4638/html5/thumbnails/86.jpg)
CSS
![Page 87: Old Gods & New: a vision of Backend & Frontend](https://reader036.vdocuments.us/reader036/viewer/2022062515/55c2b25fbb61eb555f8b4638/html5/thumbnails/87.jpg)
![Page 88: Old Gods & New: a vision of Backend & Frontend](https://reader036.vdocuments.us/reader036/viewer/2022062515/55c2b25fbb61eb555f8b4638/html5/thumbnails/88.jpg)
![Page 89: Old Gods & New: a vision of Backend & Frontend](https://reader036.vdocuments.us/reader036/viewer/2022062515/55c2b25fbb61eb555f8b4638/html5/thumbnails/89.jpg)
LESS
![Page 90: Old Gods & New: a vision of Backend & Frontend](https://reader036.vdocuments.us/reader036/viewer/2022062515/55c2b25fbb61eb555f8b4638/html5/thumbnails/90.jpg)
SASS
![Page 91: Old Gods & New: a vision of Backend & Frontend](https://reader036.vdocuments.us/reader036/viewer/2022062515/55c2b25fbb61eb555f8b4638/html5/thumbnails/91.jpg)
Compass
![Page 92: Old Gods & New: a vision of Backend & Frontend](https://reader036.vdocuments.us/reader036/viewer/2022062515/55c2b25fbb61eb555f8b4638/html5/thumbnails/92.jpg)
Better and Smaller CSS
![Page 93: Old Gods & New: a vision of Backend & Frontend](https://reader036.vdocuments.us/reader036/viewer/2022062515/55c2b25fbb61eb555f8b4638/html5/thumbnails/93.jpg)
Yes, CSS has modules
@import ‘sub.less';
...
![Page 94: Old Gods & New: a vision of Backend & Frontend](https://reader036.vdocuments.us/reader036/viewer/2022062515/55c2b25fbb61eb555f8b4638/html5/thumbnails/94.jpg)
Gods That Understand CSS Give Us
● Auto-transpiling of LESS● Fast serving of CSS modules● No cache-killing CSS bundles● All using the wondrous F5 key
![Page 95: Old Gods & New: a vision of Backend & Frontend](https://reader036.vdocuments.us/reader036/viewer/2022062515/55c2b25fbb61eb555f8b4638/html5/thumbnails/95.jpg)
“Please, plead to the gods about CSS and HTTP/2”
![Page 96: Old Gods & New: a vision of Backend & Frontend](https://reader036.vdocuments.us/reader036/viewer/2022062515/55c2b25fbb61eb555f8b4638/html5/thumbnails/96.jpg)
Thread PoolsMessage Queues
Scala
![Page 97: Old Gods & New: a vision of Backend & Frontend](https://reader036.vdocuments.us/reader036/viewer/2022062515/55c2b25fbb61eb555f8b4638/html5/thumbnails/97.jpg)
![Page 98: Old Gods & New: a vision of Backend & Frontend](https://reader036.vdocuments.us/reader036/viewer/2022062515/55c2b25fbb61eb555f8b4638/html5/thumbnails/98.jpg)
![Page 99: Old Gods & New: a vision of Backend & Frontend](https://reader036.vdocuments.us/reader036/viewer/2022062515/55c2b25fbb61eb555f8b4638/html5/thumbnails/99.jpg)
JavaScriptAngular
DOM
![Page 100: Old Gods & New: a vision of Backend & Frontend](https://reader036.vdocuments.us/reader036/viewer/2022062515/55c2b25fbb61eb555f8b4638/html5/thumbnails/100.jpg)
Chapter V: HTML and Caching
![Page 101: Old Gods & New: a vision of Backend & Frontend](https://reader036.vdocuments.us/reader036/viewer/2022062515/55c2b25fbb61eb555f8b4638/html5/thumbnails/101.jpg)
● Browser always checks if there is a new versiono Last-Modified/Etag
● Browser never checkso Expires: ∞
Browser Caching
![Page 102: Old Gods & New: a vision of Backend & Frontend](https://reader036.vdocuments.us/reader036/viewer/2022062515/55c2b25fbb61eb555f8b4638/html5/thumbnails/102.jpg)
Caching-Supportive HTML/JS
<script src="main-1.4.js">
![Page 103: Old Gods & New: a vision of Backend & Frontend](https://reader036.vdocuments.us/reader036/viewer/2022062515/55c2b25fbb61eb555f8b4638/html5/thumbnails/103.jpg)
Caching-Supportive HTML/JS
<script src="main.js">
![Page 104: Old Gods & New: a vision of Backend & Frontend](https://reader036.vdocuments.us/reader036/viewer/2022062515/55c2b25fbb61eb555f8b4638/html5/thumbnails/104.jpg)
Caching-Supportive HTML/JS
<script src="main-2014-06-08.js">
![Page 105: Old Gods & New: a vision of Backend & Frontend](https://reader036.vdocuments.us/reader036/viewer/2022062515/55c2b25fbb61eb555f8b4638/html5/thumbnails/105.jpg)
“Please, plead to the gods about HTML and infinity caching”
![Page 106: Old Gods & New: a vision of Backend & Frontend](https://reader036.vdocuments.us/reader036/viewer/2022062515/55c2b25fbb61eb555f8b4638/html5/thumbnails/106.jpg)
Thread PoolsMessage Queues
Scala
![Page 107: Old Gods & New: a vision of Backend & Frontend](https://reader036.vdocuments.us/reader036/viewer/2022062515/55c2b25fbb61eb555f8b4638/html5/thumbnails/107.jpg)
![Page 108: Old Gods & New: a vision of Backend & Frontend](https://reader036.vdocuments.us/reader036/viewer/2022062515/55c2b25fbb61eb555f8b4638/html5/thumbnails/108.jpg)
Pissed Off!
![Page 109: Old Gods & New: a vision of Backend & Frontend](https://reader036.vdocuments.us/reader036/viewer/2022062515/55c2b25fbb61eb555f8b4638/html5/thumbnails/109.jpg)
![Page 110: Old Gods & New: a vision of Backend & Frontend](https://reader036.vdocuments.us/reader036/viewer/2022062515/55c2b25fbb61eb555f8b4638/html5/thumbnails/110.jpg)
Chapter VI: Rendering HTML
![Page 111: Old Gods & New: a vision of Backend & Frontend](https://reader036.vdocuments.us/reader036/viewer/2022062515/55c2b25fbb61eb555f8b4638/html5/thumbnails/111.jpg)
Single Page Applications
![Page 112: Old Gods & New: a vision of Backend & Frontend](https://reader036.vdocuments.us/reader036/viewer/2022062515/55c2b25fbb61eb555f8b4638/html5/thumbnails/112.jpg)
Single Page Applications
Server
page.html
Service
xN times...
![Page 113: Old Gods & New: a vision of Backend & Frontend](https://reader036.vdocuments.us/reader036/viewer/2022062515/55c2b25fbb61eb555f8b4638/html5/thumbnails/113.jpg)
Server-side Rendering of HTML
![Page 114: Old Gods & New: a vision of Backend & Frontend](https://reader036.vdocuments.us/reader036/viewer/2022062515/55c2b25fbb61eb555f8b4638/html5/thumbnails/114.jpg)
SPA - New Gods Style
Server Service
rendercode
xN times...
page.html
![Page 115: Old Gods & New: a vision of Backend & Frontend](https://reader036.vdocuments.us/reader036/viewer/2022062515/55c2b25fbb61eb555f8b4638/html5/thumbnails/115.jpg)
SPA - New Gods Style
Server Service
rendercode
xN times...
page.html
![Page 116: Old Gods & New: a vision of Backend & Frontend](https://reader036.vdocuments.us/reader036/viewer/2022062515/55c2b25fbb61eb555f8b4638/html5/thumbnails/116.jpg)
The backend gods could execute JavaScript?
![Page 117: Old Gods & New: a vision of Backend & Frontend](https://reader036.vdocuments.us/reader036/viewer/2022062515/55c2b25fbb61eb555f8b4638/html5/thumbnails/117.jpg)
Sharing Frontend and Backend Code
![Page 118: Old Gods & New: a vision of Backend & Frontend](https://reader036.vdocuments.us/reader036/viewer/2022062515/55c2b25fbb61eb555f8b4638/html5/thumbnails/118.jpg)
Thread PoolsMessage Queues
Scala
![Page 119: Old Gods & New: a vision of Backend & Frontend](https://reader036.vdocuments.us/reader036/viewer/2022062515/55c2b25fbb61eb555f8b4638/html5/thumbnails/119.jpg)
“Please, plead to the gods about CSS and HTTP/2”
![Page 120: Old Gods & New: a vision of Backend & Frontend](https://reader036.vdocuments.us/reader036/viewer/2022062515/55c2b25fbb61eb555f8b4638/html5/thumbnails/120.jpg)
![Page 121: Old Gods & New: a vision of Backend & Frontend](https://reader036.vdocuments.us/reader036/viewer/2022062515/55c2b25fbb61eb555f8b4638/html5/thumbnails/121.jpg)
![Page 122: Old Gods & New: a vision of Backend & Frontend](https://reader036.vdocuments.us/reader036/viewer/2022062515/55c2b25fbb61eb555f8b4638/html5/thumbnails/122.jpg)
JavaScriptAngular
DOM
![Page 123: Old Gods & New: a vision of Backend & Frontend](https://reader036.vdocuments.us/reader036/viewer/2022062515/55c2b25fbb61eb555f8b4638/html5/thumbnails/123.jpg)
![Page 124: Old Gods & New: a vision of Backend & Frontend](https://reader036.vdocuments.us/reader036/viewer/2022062515/55c2b25fbb61eb555f8b4638/html5/thumbnails/124.jpg)
![Page 125: Old Gods & New: a vision of Backend & Frontend](https://reader036.vdocuments.us/reader036/viewer/2022062515/55c2b25fbb61eb555f8b4638/html5/thumbnails/125.jpg)
![Page 126: Old Gods & New: a vision of Backend & Frontend](https://reader036.vdocuments.us/reader036/viewer/2022062515/55c2b25fbb61eb555f8b4638/html5/thumbnails/126.jpg)
Message Queues
![Page 127: Old Gods & New: a vision of Backend & Frontend](https://reader036.vdocuments.us/reader036/viewer/2022062515/55c2b25fbb61eb555f8b4638/html5/thumbnails/127.jpg)
JavaScript
![Page 128: Old Gods & New: a vision of Backend & Frontend](https://reader036.vdocuments.us/reader036/viewer/2022062515/55c2b25fbb61eb555f8b4638/html5/thumbnails/128.jpg)
Hey, Great Idea
![Page 129: Old Gods & New: a vision of Backend & Frontend](https://reader036.vdocuments.us/reader036/viewer/2022062515/55c2b25fbb61eb555f8b4638/html5/thumbnails/129.jpg)
LET IT BE SO
![Page 130: Old Gods & New: a vision of Backend & Frontend](https://reader036.vdocuments.us/reader036/viewer/2022062515/55c2b25fbb61eb555f8b4638/html5/thumbnails/130.jpg)
Server
JS
● transpile ES6● minify JS● serve es6 modules
intelligently● cache es6 modules● ???
CSS
● transpile LESS● minify CSS● serve CSS modules
intelligently● cache CSS● ???
HTML
● Rewrite links for infinity expiring
● Render HTML server-side
● ???
![Page 131: Old Gods & New: a vision of Backend & Frontend](https://reader036.vdocuments.us/reader036/viewer/2022062515/55c2b25fbb61eb555f8b4638/html5/thumbnails/131.jpg)
The Frontend Tribe
![Page 132: Old Gods & New: a vision of Backend & Frontend](https://reader036.vdocuments.us/reader036/viewer/2022062515/55c2b25fbb61eb555f8b4638/html5/thumbnails/132.jpg)
Thread Pools
![Page 133: Old Gods & New: a vision of Backend & Frontend](https://reader036.vdocuments.us/reader036/viewer/2022062515/55c2b25fbb61eb555f8b4638/html5/thumbnails/133.jpg)
Message Queues
![Page 134: Old Gods & New: a vision of Backend & Frontend](https://reader036.vdocuments.us/reader036/viewer/2022062515/55c2b25fbb61eb555f8b4638/html5/thumbnails/134.jpg)
Scala
![Page 135: Old Gods & New: a vision of Backend & Frontend](https://reader036.vdocuments.us/reader036/viewer/2022062515/55c2b25fbb61eb555f8b4638/html5/thumbnails/135.jpg)
JavaScript
![Page 136: Old Gods & New: a vision of Backend & Frontend](https://reader036.vdocuments.us/reader036/viewer/2022062515/55c2b25fbb61eb555f8b4638/html5/thumbnails/136.jpg)
Angular
![Page 137: Old Gods & New: a vision of Backend & Frontend](https://reader036.vdocuments.us/reader036/viewer/2022062515/55c2b25fbb61eb555f8b4638/html5/thumbnails/137.jpg)
DOM
![Page 138: Old Gods & New: a vision of Backend & Frontend](https://reader036.vdocuments.us/reader036/viewer/2022062515/55c2b25fbb61eb555f8b4638/html5/thumbnails/138.jpg)
Seriously, though...
![Page 139: Old Gods & New: a vision of Backend & Frontend](https://reader036.vdocuments.us/reader036/viewer/2022062515/55c2b25fbb61eb555f8b4638/html5/thumbnails/139.jpg)
Frontend Platform
● Serving JS modules● Serving CSS modules● Transpiling CSS & JS● Infinity caching of JS & CSS● Server-side rendering of HTML● And who knows what else?
![Page 140: Old Gods & New: a vision of Backend & Frontend](https://reader036.vdocuments.us/reader036/viewer/2022062515/55c2b25fbb61eb555f8b4638/html5/thumbnails/140.jpg)
Thank You@giltayar