Designing very large JavaScript applications

Designing very large JavaScript applications

Over the last years a modular approach to programming in JS gained a huge following and with the advent of virtual DOM building isomorphic JavaScript application for the web became dramatically more approachable; yet, we are still largely deploying monolithic application blobs that know how to render the settings page of our single page apps before accepting user input on the homepage. My talk will explore 2 primary themes: How to build highly sophisticated web apps that load a constant amount of JS to make the first page the user sees interactive; where constant means, even if you have 100s of engineers write code for your app for a year, the size will still be the same. How to throughout the lifecycle of your application never load a single line of JS that is not currently needed. As part of this exploration I will introduce 3 novel concepts: lazy decoration, asynchronous dependency injection and reverse dependencies in module systems.


Malte Ubl

malte ubl

Tech lead of the AMP Project. JavaScript infrastructure at Google. Curator of@JSConfEU