~/talk

Designing very large JavaScript applications

Talkat JSConf AU 2018 · on Tuesday, 2018-04-10· [frontend-architecture]
slides:none on file

Claims that a web app can keep first‑load JS constant even as hundreds of engineers add features and that no line of JS need ever load unless required. Demonstrates route‑based code‑splitting, dynamic import, server‑side rendering vs hydration tradeoffs, and a concrete 800 KB base‑bundle failure. Introduces three concrete techniques—lazy decoration, asynchronous dependency injection, and reverse dependencies (the "enhance" pattern used for generated code and otherwise banned)—and enforces constraints with forbidden dependency tests to keep the graph clean.

AI-written summary · about

  1. 0:00Start
  2. 3:59I KNOW HOW OTHERS WOULD SOLVE THE PROBLEM
  3. 4:34AN APPLICATION OF EMPATHY
  4. 4:53EMPATHY ON EASY MODE
  5. 5:19PROGRAMMING MODEL
  6. 9:42DESIGNING VERY LARGE JAVASCRIPT APPLICATIONS
  7. 11:52REACT COMPONENTS STATICALLY DEPEND ON THEIR CHILDREN.
  8. 13:29SPLIT LOGIC AND RENDERING
  9. 16:39AVOID CENTRAL CONFIGURATION AT ALL COST
  10. 19:28THE CENTRAL IMPORT PROBLEM
  11. 25:05FORBIDDEN DEPENDENCY TESTS
  12. 27:41NO ABSTRACTION IS BETTER THAN THE WRONG ABSTRACTION
~/search
type to search 6,249 conferences, 138,987 speakers and 185,172 talks
~/help
cmdctrl k
search every conference, speaker and series
/
focus the filter search
h
home
c
conferences
s
speakers
e
series
t
light / dark — the status bar button does the same
?
this help
esc
close this, then clear every filter — or just the search, while you are typing in it

Ignored while you are typing. Pages without a filter rail have no search to focus.