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

Viewers also liked

Educ 100 presentaion
Educ 100 presentaionEduc 100 presentaion
Educ 100 presentaionJohn Lim
 
Quick and Tasty APIs: just add data!
Quick and Tasty APIs: just add data!Quick and Tasty APIs: just add data!
Quick and Tasty APIs: just add data!
Joe Sepi
 
Effing Ham 2013!!
Effing Ham 2013!!Effing Ham 2013!!
Effing Ham 2013!!
Nick Swinehart
 
Micro Gateways are a Big Deal
Micro Gateways are a Big DealMicro Gateways are a Big Deal
Micro Gateways are a Big Deal
Joe Sepi
 
Sustainability during resource stresses
Sustainability during resource stressesSustainability during resource stresses
Sustainability during resource stresses
John Vincent Malvar
 
UFO'S -A CASE STUDy
UFO'S -A CASE STUDyUFO'S -A CASE STUDy
UFO'S -A CASE STUDy
drshrikant2
 
Los medios de transporte.
Los medios de transporte.Los medios de transporte.
Los medios de transporte.Cristina Gómez
 
Cv of ntknen
Cv of ntknenCv of ntknen
Cv of ntknen
nguyennen
 

Viewers also liked (12)

Educ 100 presentaion
Educ 100 presentaionEduc 100 presentaion
Educ 100 presentaion
 
Quick and Tasty APIs: just add data!
Quick and Tasty APIs: just add data!Quick and Tasty APIs: just add data!
Quick and Tasty APIs: just add data!
 
öNreflexió
öNreflexióöNreflexió
öNreflexió
 
Effing Ham 2013!!
Effing Ham 2013!!Effing Ham 2013!!
Effing Ham 2013!!
 
Important
ImportantImportant
Important
 
Animales domésticos
Animales domésticosAnimales domésticos
Animales domésticos
 
Micro Gateways are a Big Deal
Micro Gateways are a Big DealMicro Gateways are a Big Deal
Micro Gateways are a Big Deal
 
Impressico Business Solutions
Impressico Business SolutionsImpressico Business Solutions
Impressico Business Solutions
 
Sustainability during resource stresses
Sustainability during resource stressesSustainability during resource stresses
Sustainability during resource stresses
 
UFO'S -A CASE STUDy
UFO'S -A CASE STUDyUFO'S -A CASE STUDy
UFO'S -A CASE STUDy
 
Los medios de transporte.
Los medios de transporte.Los medios de transporte.
Los medios de transporte.
 
Cv of ntknen
Cv of ntknenCv of ntknen
Cv of ntknen
 

Similar to Front End Dependency Management at CascadiaJS

One page app with AngularJS
One page app with AngularJSOne page app with AngularJS
One page app with AngularJS
Adam Štipák
 
Introduction to AngularJS
Introduction to AngularJSIntroduction to AngularJS
Introduction to AngularJSPat Cito
 
A Backbone.js Tutorial for the Impatient - Part 1
A Backbone.js Tutorial for the Impatient - Part 1A Backbone.js Tutorial for the Impatient - Part 1
A Backbone.js Tutorial for the Impatient - Part 1
jsalonen Salonen
 
Theme Development and Customization
Theme Development and CustomizationTheme Development and Customization
Theme Development and Customization
Aniket Pant
 
Angular.js + Rails at WeWork or: The Accidental Feature
Angular.js + Rails at WeWork or: The Accidental FeatureAngular.js + Rails at WeWork or: The Accidental Feature
Angular.js + Rails at WeWork or: The Accidental Feature
Jonathan Magen
 
Automated tests - facts and myths
Automated tests - facts and mythsAutomated tests - facts and myths
Automated tests - facts and myths
Wojciech Sznapka
 
PhpUnit Best Practices
PhpUnit Best PracticesPhpUnit Best Practices
PhpUnit Best Practices
Edorian
 
Beginner workshop to angularjs presentation at Google
Beginner workshop to angularjs presentation at GoogleBeginner workshop to angularjs presentation at Google
Beginner workshop to angularjs presentation at Google
Ari Lerner
 
Learn Frontend Testing
Learn Frontend TestingLearn Frontend Testing
Learn Frontend Testing
Ryan Roemer
 
Refactoring to symfony components
Refactoring to symfony componentsRefactoring to symfony components
Refactoring to symfony componentsMichael Peacock
 
Hubot: a look inside our robot friend
Hubot: a look inside our robot friendHubot: a look inside our robot friend
Hubot: a look inside our robot friend
ajacksified
 
Build a custom (micro)framework with ZF2 Components (as building blocks)
Build a custom (micro)framework with ZF2 Components (as building blocks)Build a custom (micro)framework with ZF2 Components (as building blocks)
Build a custom (micro)framework with ZF2 Components (as building blocks)
Corley S.r.l.
 
Web lab programs
Web lab programsWeb lab programs
Web lab programs
SRINIVASUNIVERSITYEN
 
Method::Signatures
Method::SignaturesMethod::Signatures
Method::Signatures
Michael Schwern
 
Faster! Faster! Accelerate your business with blazing prototypes
Faster! Faster! Accelerate your business with blazing prototypesFaster! Faster! Accelerate your business with blazing prototypes
Faster! Faster! Accelerate your business with blazing prototypes
OSCON Byrum
 
Starting out with Ember.js
Starting out with Ember.jsStarting out with Ember.js
Starting out with Ember.js
Anirudh Shivanand
 
Rebooting TEI Pointers
Rebooting TEI PointersRebooting TEI Pointers
Rebooting TEI PointersHugh Cayless
 
Fast api
Fast apiFast api
Fast api
Simone Di Maulo
 
Es todo el cuaderno de ingles
Es todo el cuaderno de inglesEs todo el cuaderno de ingles
Es todo el cuaderno de ingles
Ricardo Aguilar
 
Segunda parte del Cuaderno de Ingles
Segunda parte del Cuaderno de InglesSegunda parte del Cuaderno de Ingles
Segunda parte del Cuaderno de Ingles
Ricardo Aguilar
 

Similar to Front End Dependency Management at CascadiaJS (20)

One page app with AngularJS
One page app with AngularJSOne page app with AngularJS
One page app with AngularJS
 
Introduction to AngularJS
Introduction to AngularJSIntroduction to AngularJS
Introduction to AngularJS
 
A Backbone.js Tutorial for the Impatient - Part 1
A Backbone.js Tutorial for the Impatient - Part 1A Backbone.js Tutorial for the Impatient - Part 1
A Backbone.js Tutorial for the Impatient - Part 1
 
Theme Development and Customization
Theme Development and CustomizationTheme Development and Customization
Theme Development and Customization
 
Angular.js + Rails at WeWork or: The Accidental Feature
Angular.js + Rails at WeWork or: The Accidental FeatureAngular.js + Rails at WeWork or: The Accidental Feature
Angular.js + Rails at WeWork or: The Accidental Feature
 
Automated tests - facts and myths
Automated tests - facts and mythsAutomated tests - facts and myths
Automated tests - facts and myths
 
PhpUnit Best Practices
PhpUnit Best PracticesPhpUnit Best Practices
PhpUnit Best Practices
 
Beginner workshop to angularjs presentation at Google
Beginner workshop to angularjs presentation at GoogleBeginner workshop to angularjs presentation at Google
Beginner workshop to angularjs presentation at Google
 
Learn Frontend Testing
Learn Frontend TestingLearn Frontend Testing
Learn Frontend Testing
 
Refactoring to symfony components
Refactoring to symfony componentsRefactoring to symfony components
Refactoring to symfony components
 
Hubot: a look inside our robot friend
Hubot: a look inside our robot friendHubot: a look inside our robot friend
Hubot: a look inside our robot friend
 
Build a custom (micro)framework with ZF2 Components (as building blocks)
Build a custom (micro)framework with ZF2 Components (as building blocks)Build a custom (micro)framework with ZF2 Components (as building blocks)
Build a custom (micro)framework with ZF2 Components (as building blocks)
 
Web lab programs
Web lab programsWeb lab programs
Web lab programs
 
Method::Signatures
Method::SignaturesMethod::Signatures
Method::Signatures
 
Faster! Faster! Accelerate your business with blazing prototypes
Faster! Faster! Accelerate your business with blazing prototypesFaster! Faster! Accelerate your business with blazing prototypes
Faster! Faster! Accelerate your business with blazing prototypes
 
Starting out with Ember.js
Starting out with Ember.jsStarting out with Ember.js
Starting out with Ember.js
 
Rebooting TEI Pointers
Rebooting TEI PointersRebooting TEI Pointers
Rebooting TEI Pointers
 
Fast api
Fast apiFast api
Fast api
 
Es todo el cuaderno de ingles
Es todo el cuaderno de inglesEs todo el cuaderno de ingles
Es todo el cuaderno de ingles
 
Segunda parte del Cuaderno de Ingles
Segunda parte del Cuaderno de InglesSegunda parte del Cuaderno de Ingles
Segunda parte del Cuaderno de Ingles
 

Recently uploaded

Quantum Computing: Current Landscape and the Future Role of APIs
Quantum Computing: Current Landscape and the Future Role of APIsQuantum Computing: Current Landscape and the Future Role of APIs
Quantum Computing: Current Landscape and the Future Role of APIs
Vlad Stirbu
 
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...
DanBrown980551
 
GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...
GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...
GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...
James Anderson
 
Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...
Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...
Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...
UiPathCommunity
 
Bits & Pixels using AI for Good.........
Bits & Pixels using AI for Good.........Bits & Pixels using AI for Good.........
Bits & Pixels using AI for Good.........
Alison B. Lowndes
 
How world-class product teams are winning in the AI era by CEO and Founder, P...
How world-class product teams are winning in the AI era by CEO and Founder, P...How world-class product teams are winning in the AI era by CEO and Founder, P...
How world-class product teams are winning in the AI era by CEO and Founder, P...
Product School
 
Welocme to ViralQR, your best QR code generator.
Welocme to ViralQR, your best QR code generator.Welocme to ViralQR, your best QR code generator.
Welocme to ViralQR, your best QR code generator.
ViralQR
 
DevOps and Testing slides at DASA Connect
DevOps and Testing slides at DASA ConnectDevOps and Testing slides at DASA Connect
DevOps and Testing slides at DASA Connect
Kari Kakkonen
 
Elevating Tactical DDD Patterns Through Object Calisthenics
Elevating Tactical DDD Patterns Through Object CalisthenicsElevating Tactical DDD Patterns Through Object Calisthenics
Elevating Tactical DDD Patterns Through Object Calisthenics
Dorra BARTAGUIZ
 
Essentials of Automations: Optimizing FME Workflows with Parameters
Essentials of Automations: Optimizing FME Workflows with ParametersEssentials of Automations: Optimizing FME Workflows with Parameters
Essentials of Automations: Optimizing FME Workflows with Parameters
Safe Software
 
UiPath Test Automation using UiPath Test Suite series, part 4
UiPath Test Automation using UiPath Test Suite series, part 4UiPath Test Automation using UiPath Test Suite series, part 4
UiPath Test Automation using UiPath Test Suite series, part 4
DianaGray10
 
Assuring Contact Center Experiences for Your Customers With ThousandEyes
Assuring Contact Center Experiences for Your Customers With ThousandEyesAssuring Contact Center Experiences for Your Customers With ThousandEyes
Assuring Contact Center Experiences for Your Customers With ThousandEyes
ThousandEyes
 
Monitoring Java Application Security with JDK Tools and JFR Events
Monitoring Java Application Security with JDK Tools and JFR EventsMonitoring Java Application Security with JDK Tools and JFR Events
Monitoring Java Application Security with JDK Tools and JFR Events
Ana-Maria Mihalceanu
 
PCI PIN Basics Webinar from the Controlcase Team
PCI PIN Basics Webinar from the Controlcase TeamPCI PIN Basics Webinar from the Controlcase Team
PCI PIN Basics Webinar from the Controlcase Team
ControlCase
 
Key Trends Shaping the Future of Infrastructure.pdf
Key Trends Shaping the Future of Infrastructure.pdfKey Trends Shaping the Future of Infrastructure.pdf
Key Trends Shaping the Future of Infrastructure.pdf
Cheryl Hung
 
FIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdf
FIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdfFIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdf
FIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdf
FIDO Alliance
 
When stars align: studies in data quality, knowledge graphs, and machine lear...
When stars align: studies in data quality, knowledge graphs, and machine lear...When stars align: studies in data quality, knowledge graphs, and machine lear...
When stars align: studies in data quality, knowledge graphs, and machine lear...
Elena Simperl
 
By Design, not by Accident - Agile Venture Bolzano 2024
By Design, not by Accident - Agile Venture Bolzano 2024By Design, not by Accident - Agile Venture Bolzano 2024
By Design, not by Accident - Agile Venture Bolzano 2024
Pierluigi Pugliese
 
Unsubscribed: Combat Subscription Fatigue With a Membership Mentality by Head...
Unsubscribed: Combat Subscription Fatigue With a Membership Mentality by Head...Unsubscribed: Combat Subscription Fatigue With a Membership Mentality by Head...
Unsubscribed: Combat Subscription Fatigue With a Membership Mentality by Head...
Product School
 
Securing your Kubernetes cluster_ a step-by-step guide to success !
Securing your Kubernetes cluster_ a step-by-step guide to success !Securing your Kubernetes cluster_ a step-by-step guide to success !
Securing your Kubernetes cluster_ a step-by-step guide to success !
KatiaHIMEUR1
 

Recently uploaded (20)

Quantum Computing: Current Landscape and the Future Role of APIs
Quantum Computing: Current Landscape and the Future Role of APIsQuantum Computing: Current Landscape and the Future Role of APIs
Quantum Computing: Current Landscape and the Future Role of APIs
 
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...
 
GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...
GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...
GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...
 
Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...
Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...
Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...
 
Bits & Pixels using AI for Good.........
Bits & Pixels using AI for Good.........Bits & Pixels using AI for Good.........
Bits & Pixels using AI for Good.........
 
How world-class product teams are winning in the AI era by CEO and Founder, P...
How world-class product teams are winning in the AI era by CEO and Founder, P...How world-class product teams are winning in the AI era by CEO and Founder, P...
How world-class product teams are winning in the AI era by CEO and Founder, P...
 
Welocme to ViralQR, your best QR code generator.
Welocme to ViralQR, your best QR code generator.Welocme to ViralQR, your best QR code generator.
Welocme to ViralQR, your best QR code generator.
 
DevOps and Testing slides at DASA Connect
DevOps and Testing slides at DASA ConnectDevOps and Testing slides at DASA Connect
DevOps and Testing slides at DASA Connect
 
Elevating Tactical DDD Patterns Through Object Calisthenics
Elevating Tactical DDD Patterns Through Object CalisthenicsElevating Tactical DDD Patterns Through Object Calisthenics
Elevating Tactical DDD Patterns Through Object Calisthenics
 
Essentials of Automations: Optimizing FME Workflows with Parameters
Essentials of Automations: Optimizing FME Workflows with ParametersEssentials of Automations: Optimizing FME Workflows with Parameters
Essentials of Automations: Optimizing FME Workflows with Parameters
 
UiPath Test Automation using UiPath Test Suite series, part 4
UiPath Test Automation using UiPath Test Suite series, part 4UiPath Test Automation using UiPath Test Suite series, part 4
UiPath Test Automation using UiPath Test Suite series, part 4
 
Assuring Contact Center Experiences for Your Customers With ThousandEyes
Assuring Contact Center Experiences for Your Customers With ThousandEyesAssuring Contact Center Experiences for Your Customers With ThousandEyes
Assuring Contact Center Experiences for Your Customers With ThousandEyes
 
Monitoring Java Application Security with JDK Tools and JFR Events
Monitoring Java Application Security with JDK Tools and JFR EventsMonitoring Java Application Security with JDK Tools and JFR Events
Monitoring Java Application Security with JDK Tools and JFR Events
 
PCI PIN Basics Webinar from the Controlcase Team
PCI PIN Basics Webinar from the Controlcase TeamPCI PIN Basics Webinar from the Controlcase Team
PCI PIN Basics Webinar from the Controlcase Team
 
Key Trends Shaping the Future of Infrastructure.pdf
Key Trends Shaping the Future of Infrastructure.pdfKey Trends Shaping the Future of Infrastructure.pdf
Key Trends Shaping the Future of Infrastructure.pdf
 
FIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdf
FIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdfFIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdf
FIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdf
 
When stars align: studies in data quality, knowledge graphs, and machine lear...
When stars align: studies in data quality, knowledge graphs, and machine lear...When stars align: studies in data quality, knowledge graphs, and machine lear...
When stars align: studies in data quality, knowledge graphs, and machine lear...
 
By Design, not by Accident - Agile Venture Bolzano 2024
By Design, not by Accident - Agile Venture Bolzano 2024By Design, not by Accident - Agile Venture Bolzano 2024
By Design, not by Accident - Agile Venture Bolzano 2024
 
Unsubscribed: Combat Subscription Fatigue With a Membership Mentality by Head...
Unsubscribed: Combat Subscription Fatigue With a Membership Mentality by Head...Unsubscribed: Combat Subscription Fatigue With a Membership Mentality by Head...
Unsubscribed: Combat Subscription Fatigue With a Membership Mentality by Head...
 
Securing your Kubernetes cluster_ a step-by-step guide to success !
Securing your Kubernetes cluster_ a step-by-step guide to success !Securing your Kubernetes cluster_ a step-by-step guide to success !
Securing your Kubernetes cluster_ a step-by-step guide to success !
 

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