SlideShare a Scribd company logo
FRONT END DEPENDENCY
MANAGEMENT
LET'S HUG IT OUT, FRIENDS

Presented to you by Joe Sepi / @joe_sepi
I AM WHO I THINK I AM.
VP of Engineering at Novus.com where we do financial
analysis awesomely
Previously worked at The New York Times doing dev, dev
mgmt and dev relations
I also consider myself something of a punk
@joe_sepi on the twitter machine
Rene Auberjonois
WE'RE ALL IN THIS TOGETHER
HISTORY
Dojo, Modules/Transport/C, RunJS, Narwhal, etc...
WHAT ARE THE PROBLEMS WE ARE TRYING TO
SOLVE?

<citsc"."<srp>srp sc"."<srp>srp sc"."<srp>srp
srp r=..>/cit<cit r=..>/cit<cit r=..>/cit<cit
MApsmtigwaee.oetofr'al)
yp.oehn.htvrgn.o.a(fi';
ti ms la bfr ta btntbfr
hs ut od eoe ht u o eoe
So those are the problems we are trying to solve, but what are
the benefits of solving these problems?
performance, stability, sanity, reuse,
HOW DO WE GET THERE?

Modules
Tooling
Bonus: Repository
PLEASE DON'T SKIN THE CAT
AMD, RequireJS, Bower
-CommonJS, Browserify, NPM
How do we use these tools to actually solve this problem?
REQUIRE
INDEX.HTML
<citdt-an"smi"sc"srqiej"<srp>
srp aami=j/an r=j/eur.s>/cit

MAIN.JS
rqie[be' 'op] fnto(ep bo){
eur('ep, bo', ucinbe, op
be(;
ep)
bo(;
op)
};
)

BEEP.JS
dfn('oo',fnto(oo){
eie[rbt] ucinrbt
vrsek=fnto ( {
a pa
ucin )
rbt'ep)
oo(be';
}
;
rtr sek
eun pa;
};
)

ROBOT.JS
dfn(ucin){
eiefnto(
rtr fnto (){
eun ucin s
rtr cnoelgstUprae)+'';
eun osl.o(.opeCs(
!)
}
;
};
)
BROWSERIFY
IN TERMINAL
$bosrf mi.s>bnl.s
rweiy anj
udej

INDEX.HTML
<citsc"sbnl.s>/cit
srp r=j/udej"<srp>

MAIN.JS
vrbe =rqie'ep)
a ep
eur(be';
vrbo =rqie'op)
a op
eur(bo';
be(;
ep)
bo(;
op)

BEEP.JS
vrrbt=rqie'oo';
a oo
eur(rbt)
vrsek=fnto ( {
a pa
ucin )
rbt'ep)
oo(be';
}
;
mdl.xot =sek
oueeprs
pa;

ROBOT.JS
mdl.xot =fnto (){
oueeprs
ucin s
rtr cnoelgstUprae)+'';
eun osl.o(.opeCs(
!)
}
;
BEEP + ROBOT?? - USING MODULE.EXPORTS OBJECT
vrrbt=rqie'oo';
a oo
eur(rbt)
vrsek=fnto ( {
a pa
ucin )
rbt'ep)
oo(be';
}
;
vrdne=fnto ( {
a ac
ucin )
$'oy)apn(<m sc"acn-edrgf>)
(bd'.ped'ig r=dnigbne.i"';
}
;
mdl.xot ={
oueeprs
sek:sek
pa
pa,
dne:dne
ac
ac
}
BEEP + ROBOT?? - USING EXPORTS.WHATEVS
vrrbt=rqie'oo';
a oo
eur(rbt)
eprssek=fnto ( {
xot.pa
ucin )
rbt'ep)
oo(be';
}
;
eprsdne=fnto ( {
xot.ac
ucin )
$'oy)apn(<m sc"acn-edrgf>)
(bd'.ped'ig r=dnigbne.i"';
}
;
BEEP + ROBOT?? - USING REQ WITH HYBRID PATTERN
dfn(ucinrqie eprs mdl){
eiefnto(eur, xot, oue
vrrbt=rqie'oo';
a oo
eur(rbt)
eprssek=fnto ( {
xot.pa
ucin )
rbt'ep)
oo(be';
}
;
eprsdne=fnto ( {
xot.ac
ucin )
$'oy)apn(<m sc"acn-edrgf>)
(bd'.ped'ig r=dnigbne.i"';
}
;
};
)
BACKBONE VIEW
dfn(
eie[
'qey,
jur'
'nesoe,
udrcr'
'akoe,
bcbn'
'ettmltseapehm'
tx!epae/xml.tl
] fnto (,_ Bcbn,eapeepae {
, ucin $ , akoe xmlTmlt)
vrApiw=Bcbn.iwetn(
a pVe
akoeVe.xed{
e:'mi'
l #an,
tmlt:_tmlt(xmlTmlt)
epae .epaeeapeepae,
rne:fnto ( {
edr ucin )
ti.e.tlti.epae{);
hs$lhm(hstmlt(})
rtr ti;
eun hs
}
};
)
rtr Apiw
eun pVe;
};
)
BACKBONE VIEW
dfn(ucin(eur,eprs mdl){
eiefnto rqie xot, oue
vr$
a
=rqie'qey)
eur(jur';
vr_
a
=rqie'nesoe)
eur(udrcr';
vrBcbn
a akoe
=rqie'akoe)
eur(bcbn';
vreapeepae=rqie'ettmltseapehm';
a xmlTmlt
eur(tx!epae/xml.tl)
vrApiw=Bcbn.iwetn(
a pVe
akoeVe.xed{
e:'mi'
l #an,
tmlt:_tmlt(xmlTmlt)
epae .epaeeapeepae,
rne:fnto ( {
edr ucin )
ti.e.tlti.epae{);
hs$lhm(hstmlt(})
rtr ti;
eun hs
}
};
)
rtr Apiw
eun pVe;
};
)
HERE ARE THE WAYS IN WHICH EACH
APPROACH SHINES:
REQUIRE BIG WIN:
ASYNC MODULE LOAD
dive in quickly
debug loaded deps in console
dynamically load code
BROWSERIFY BIG WIN(S):
npm install [module-name] --save
server and browser code share
through bundling (and transforms) you can do most anything
AMD, RequireJS, Bower
vs
CommonJS, Browserify, NPM
WHAT ABOUT ES6 MODULES?
WILL THEY SAVE US FROM OURSELVES AND SOLVE WORLD HUNGER?

I'm glad you asked!
IN CONCLUSION
Do what feels right
Come talk to me about what you think I missed or am missing
THE END
Presented to you by Joe Sepi / @joe_sepi

More Related Content

PDF
Demo Effective Learning
DOCX
Tugas
PDF
Python Developer's Daily Routine
PDF
The Engine Portfolio
PPTX
nISTORy OF EnGLISH Literature
PDF
JS Journeyman
PPTX
Guidie to Getting Published GPP in Bulgarian ръководство за публикуване
PPTX
Educ 100 presentaion
Demo Effective Learning
Tugas
Python Developer's Daily Routine
The Engine Portfolio
nISTORy OF EnGLISH Literature
JS Journeyman
Guidie to Getting Published GPP in Bulgarian ръководство за публикуване
Educ 100 presentaion

Viewers also liked (11)

PDF
Quick and Tasty APIs: just add data!
PPTX
öNreflexió
ODP
Effing Ham 2013!!
DOCX
Important
PDF
Animales domésticos
PDF
Micro Gateways are a Big Deal
PDF
Impressico Business Solutions
PPTX
Sustainability during resource stresses
PPTX
UFO'S -A CASE STUDy
PDF
Los medios de transporte.
PPTX
Cv of ntknen
Quick and Tasty APIs: just add data!
öNreflexió
Effing Ham 2013!!
Important
Animales domésticos
Micro Gateways are a Big Deal
Impressico Business Solutions
Sustainability during resource stresses
UFO'S -A CASE STUDy
Los medios de transporte.
Cv of ntknen
Ad

Similar to Front End Dependency Management at CascadiaJS (20)

PDF
One page app with AngularJS
PDF
Introduction to AngularJS
PDF
Theme Development and Customization
PDF
Angular.js + Rails at WeWork or: The Accidental Feature
PDF
Automated tests - facts and myths
PDF
PhpUnit Best Practices
PDF
Beginner workshop to angularjs presentation at Google
PDF
Learn Frontend Testing
PDF
Refactoring to symfony components
PDF
Hubot: a look inside our robot friend
PDF
Build a custom (micro)framework with ZF2 Components (as building blocks)
DOCX
Web lab programs
PDF
Method::Signatures
PPT
Faster! Faster! Accelerate your business with blazing prototypes
PDF
Starting out with Ember.js
KEY
Rebooting TEI Pointers
PDF
Fast api
PDF
Es todo el cuaderno de ingles
PDF
Segunda parte del Cuaderno de Ingles
PDF
Create Custom Post Type Plugin
One page app with AngularJS
Introduction to AngularJS
Theme Development and Customization
Angular.js + Rails at WeWork or: The Accidental Feature
Automated tests - facts and myths
PhpUnit Best Practices
Beginner workshop to angularjs presentation at Google
Learn Frontend Testing
Refactoring to symfony components
Hubot: a look inside our robot friend
Build a custom (micro)framework with ZF2 Components (as building blocks)
Web lab programs
Method::Signatures
Faster! Faster! Accelerate your business with blazing prototypes
Starting out with Ember.js
Rebooting TEI Pointers
Fast api
Es todo el cuaderno de ingles
Segunda parte del Cuaderno de Ingles
Create Custom Post Type Plugin
Ad

Recently uploaded (20)

PDF
Building Integrated photovoltaic BIPV_UPV.pdf
PPTX
Understanding_Digital_Forensics_Presentation.pptx
PDF
Build a system with the filesystem maintained by OSTree @ COSCUP 2025
PPT
Teaching material agriculture food technology
PPTX
Effective Security Operations Center (SOC) A Modern, Strategic, and Threat-In...
PDF
Chapter 3 Spatial Domain Image Processing.pdf
PPTX
Digital-Transformation-Roadmap-for-Companies.pptx
PPTX
Spectroscopy.pptx food analysis technology
PDF
How UI/UX Design Impacts User Retention in Mobile Apps.pdf
PDF
Per capita expenditure prediction using model stacking based on satellite ima...
PDF
KodekX | Application Modernization Development
PDF
Approach and Philosophy of On baking technology
PDF
NewMind AI Weekly Chronicles - August'25 Week I
PDF
Profit Center Accounting in SAP S/4HANA, S4F28 Col11
PDF
Spectral efficient network and resource selection model in 5G networks
PPTX
sap open course for s4hana steps from ECC to s4
DOCX
The AUB Centre for AI in Media Proposal.docx
PDF
Peak of Data & AI Encore- AI for Metadata and Smarter Workflows
PPTX
ACSFv1EN-58255 AWS Academy Cloud Security Foundations.pptx
PDF
Network Security Unit 5.pdf for BCA BBA.
Building Integrated photovoltaic BIPV_UPV.pdf
Understanding_Digital_Forensics_Presentation.pptx
Build a system with the filesystem maintained by OSTree @ COSCUP 2025
Teaching material agriculture food technology
Effective Security Operations Center (SOC) A Modern, Strategic, and Threat-In...
Chapter 3 Spatial Domain Image Processing.pdf
Digital-Transformation-Roadmap-for-Companies.pptx
Spectroscopy.pptx food analysis technology
How UI/UX Design Impacts User Retention in Mobile Apps.pdf
Per capita expenditure prediction using model stacking based on satellite ima...
KodekX | Application Modernization Development
Approach and Philosophy of On baking technology
NewMind AI Weekly Chronicles - August'25 Week I
Profit Center Accounting in SAP S/4HANA, S4F28 Col11
Spectral efficient network and resource selection model in 5G networks
sap open course for s4hana steps from ECC to s4
The AUB Centre for AI in Media Proposal.docx
Peak of Data & AI Encore- AI for Metadata and Smarter Workflows
ACSFv1EN-58255 AWS Academy Cloud Security Foundations.pptx
Network Security Unit 5.pdf for BCA BBA.

Front End Dependency Management at CascadiaJS

  • 1. FRONT END DEPENDENCY MANAGEMENT LET'S HUG IT OUT, FRIENDS Presented to you by Joe Sepi / @joe_sepi
  • 2. I AM WHO I THINK I AM. VP of Engineering at Novus.com where we do financial analysis awesomely Previously worked at The New York Times doing dev, dev mgmt and dev relations I also consider myself something of a punk @joe_sepi on the twitter machine
  • 4. WE'RE ALL IN THIS TOGETHER
  • 6. WHAT ARE THE PROBLEMS WE ARE TRYING TO SOLVE? <citsc"."<srp>srp sc"."<srp>srp sc"."<srp>srp srp r=..>/cit<cit r=..>/cit<cit r=..>/cit<cit MApsmtigwaee.oetofr'al) yp.oehn.htvrgn.o.a(fi'; ti ms la bfr ta btntbfr hs ut od eoe ht u o eoe
  • 7. So those are the problems we are trying to solve, but what are the benefits of solving these problems? performance, stability, sanity, reuse,
  • 8. HOW DO WE GET THERE? Modules Tooling Bonus: Repository
  • 11. How do we use these tools to actually solve this problem?
  • 13. INDEX.HTML <citdt-an"smi"sc"srqiej"<srp> srp aami=j/an r=j/eur.s>/cit MAIN.JS rqie[be' 'op] fnto(ep bo){ eur('ep, bo', ucinbe, op be(; ep) bo(; op) }; ) BEEP.JS dfn('oo',fnto(oo){ eie[rbt] ucinrbt vrsek=fnto ( { a pa ucin ) rbt'ep) oo(be'; } ; rtr sek eun pa; }; ) ROBOT.JS dfn(ucin){ eiefnto( rtr fnto (){ eun ucin s rtr cnoelgstUprae)+''; eun osl.o(.opeCs( !) } ; }; )
  • 15. IN TERMINAL $bosrf mi.s>bnl.s rweiy anj udej INDEX.HTML <citsc"sbnl.s>/cit srp r=j/udej"<srp> MAIN.JS vrbe =rqie'ep) a ep eur(be'; vrbo =rqie'op) a op eur(bo'; be(; ep) bo(; op) BEEP.JS vrrbt=rqie'oo'; a oo eur(rbt) vrsek=fnto ( { a pa ucin ) rbt'ep) oo(be'; } ; mdl.xot =sek oueeprs pa; ROBOT.JS mdl.xot =fnto (){ oueeprs ucin s rtr cnoelgstUprae)+''; eun osl.o(.opeCs( !) } ;
  • 16. BEEP + ROBOT?? - USING MODULE.EXPORTS OBJECT vrrbt=rqie'oo'; a oo eur(rbt) vrsek=fnto ( { a pa ucin ) rbt'ep) oo(be'; } ; vrdne=fnto ( { a ac ucin ) $'oy)apn(<m sc"acn-edrgf>) (bd'.ped'ig r=dnigbne.i"'; } ; mdl.xot ={ oueeprs sek:sek pa pa, dne:dne ac ac }
  • 17. BEEP + ROBOT?? - USING EXPORTS.WHATEVS vrrbt=rqie'oo'; a oo eur(rbt) eprssek=fnto ( { xot.pa ucin ) rbt'ep) oo(be'; } ; eprsdne=fnto ( { xot.ac ucin ) $'oy)apn(<m sc"acn-edrgf>) (bd'.ped'ig r=dnigbne.i"'; } ;
  • 18. BEEP + ROBOT?? - USING REQ WITH HYBRID PATTERN dfn(ucinrqie eprs mdl){ eiefnto(eur, xot, oue vrrbt=rqie'oo'; a oo eur(rbt) eprssek=fnto ( { xot.pa ucin ) rbt'ep) oo(be'; } ; eprsdne=fnto ( { xot.ac ucin ) $'oy)apn(<m sc"acn-edrgf>) (bd'.ped'ig r=dnigbne.i"'; } ; }; )
  • 19. BACKBONE VIEW dfn( eie[ 'qey, jur' 'nesoe, udrcr' 'akoe, bcbn' 'ettmltseapehm' tx!epae/xml.tl ] fnto (,_ Bcbn,eapeepae { , ucin $ , akoe xmlTmlt) vrApiw=Bcbn.iwetn( a pVe akoeVe.xed{ e:'mi' l #an, tmlt:_tmlt(xmlTmlt) epae .epaeeapeepae, rne:fnto ( { edr ucin ) ti.e.tlti.epae{); hs$lhm(hstmlt(}) rtr ti; eun hs } }; ) rtr Apiw eun pVe; }; )
  • 20. BACKBONE VIEW dfn(ucin(eur,eprs mdl){ eiefnto rqie xot, oue vr$ a =rqie'qey) eur(jur'; vr_ a =rqie'nesoe) eur(udrcr'; vrBcbn a akoe =rqie'akoe) eur(bcbn'; vreapeepae=rqie'ettmltseapehm'; a xmlTmlt eur(tx!epae/xml.tl) vrApiw=Bcbn.iwetn( a pVe akoeVe.xed{ e:'mi' l #an, tmlt:_tmlt(xmlTmlt) epae .epaeeapeepae, rne:fnto ( { edr ucin ) ti.e.tlti.epae{); hs$lhm(hstmlt(}) rtr ti; eun hs } }; ) rtr Apiw eun pVe; }; )
  • 21. HERE ARE THE WAYS IN WHICH EACH APPROACH SHINES:
  • 22. REQUIRE BIG WIN: ASYNC MODULE LOAD dive in quickly debug loaded deps in console dynamically load code
  • 23. BROWSERIFY BIG WIN(S): npm install [module-name] --save server and browser code share through bundling (and transforms) you can do most anything
  • 25. WHAT ABOUT ES6 MODULES? WILL THEY SAVE US FROM OURSELVES AND SOLVE WORLD HUNGER? I'm glad you asked!
  • 26. IN CONCLUSION Do what feels right Come talk to me about what you think I missed or am missing
  • 27. THE END Presented to you by Joe Sepi / @joe_sepi