SlideShare a Scribd company logo
1 of 49
Download to read offline
MODULARIZE
ALLTHETHINGS
Buildingthecasefor
Modularization
Realworldexamples:
Monolithicapplications
The2013website
The2013website
stickyheader
parallax
contactform
carousel
Theelephant
intheroom
Reinventingthewheel
Reinventingthewheel
Notinventedheresyndrome
Reinventingthewheel
Notinventedheresyndrome
Learningcurve
Youcouldhave
itsomuchbetter
Modularizing
Identifying
reusable
blocks
Whatifreusinganelement
couldbeassimpleas:
Whatifreusinganelement
couldbeassimpleas:
Leavingthe
comfortzone
Timeforanew
workflow
Package
Managers
npm:
defaultNode.jspackagemanager
comeswithnewNode.jsinstallations
mostpopularfront-endpackagemanager
mustbeinstalledusingnpm
DifferencesbetweennpmandBower
package.json bower.json
Module
definition
window.namespace
window.namespace
CommonJS
AMD
UMD
UMD
Frameworks
AngularJS
Angularhasitsownmoduledefinitions.
DirectivesandServicesaregreat!
Newtechnologies
Webcomponents
Automating
Tasks
Yeoman
Yeomanisnotonlygreatforstartingbigprojects.
Runageneratorandgetyourmodule
structurereadyinamatterofseconds!
generator-node
generator-amd
generator-angular
Grunt
YourYeomangeneratorwillcertainlybringyou
aGruntfilewithmanyusefulGrunttasksbydefault.
Improveitwithtaskstospeedupmodulereleases:
grunt-bump
grunt-sg-release
Publishing
Itdoesn’tHAVEtobeopen-source.BothnpmandBower
supportsmanyendpointssuchasGit,SVN,zip,localfolder,etc.
npmpublish/bowerregister
Onceourpackageispublishedwecanjustinstallanduseit.
Justaswewanted:
Reusing
third-party
modules
CedricDugas
“CanIcodeitmyselfeasily?
DoIhavetime?
Whatbrowsersisthissupporting?
Numberofopenissues?
What’sthecodesize?
DoItrustthisguy(orteam)?”
Shareyour
modules!
Merci!
@ruyadorno
http://ruyadorno.com
-PaintallthememesbySamSpratt:http://samspratt.com/
-MonolithIIIbyTimJarvis:http://www.magnasoma.co.uk/#/monolith-3
-Elephantintheroomphoto:“BarelyLegal”exhibition,September15,2006.(REUTERS/FredProuser)
-LegoColorBricksbyAlanChia:http://commons.wikimedia.org/wiki/File:Lego_Color_Bricks.jpg
-FranzFerdinand-YouCouldHaveItSoMuchBetteralbumcover
-GoGopherpackagesphotobyNathanYoungman:http://nathany.com/go-packages/
--PatterntilesbyToniF:https://www.flickr.com/photos/st-lite/2660966951
-PileofKittensbyPeterHasselbom:https://www.flickr.com/photos/peter_hasselbom/3072326220
-Kittenk3byKubilayOzvardar:https://www.flickr.com/photos/mrkubi/1222735107
ImageCredits
-Packagemanagementsystem:http://en.wikipedia.org/wiki/Package_management_system
-NotInventedhere:http://en.wikipedia.org/wiki/Not_invented_here
-NPMPublish:https://www.npmjs.org/doc/cli/npm-publish.html
-BowerAPI:http://bower.io/docs/api/
-CommonJS:http://www.commonjs.org/
-Browserify:http://browserify.org/
-Nod-Node.jsmodulesDoc:http://nodejs.org/api/modules.html
-AMD:https://github.com/amdjs/amdjs-api
-RequireJS:http://requirejs.org/
-UMD:https://github.com/umdjs/umd
-Bower.jsonspec:https://github.com/bower/bower.json-spec
-npmpackage.jsonspec:https://www.npmjs.org/doc/files/package.json.html
-AngularJS:https://angularjs.org/
--Webcomponents:http://webcomponents.org/
-Moutandmodularity:http://blog.millermedeiros.com/mout-and-modularity/
-Substackopinionsonmodules:http://substack.net/how_I_write_modules
-DeathtomonolithiclibrariesbyCedricDugas:http://www.position-absolute.com/articles/death-to-mono-
lithic-libraries/
ListofJavascriptPackagemanagers:
-npm:https://www.npmjs.org/
-Bower:http://bower.io/
-Volo:http://volojs.org/
-Jam:http://jamjs.org/
-Component:https://github.com/component/component
References

More Related Content

Similar to Modularize all the things

Flu3nt highlights
Flu3nt highlightsFlu3nt highlights
Flu3nt highlights
dswork
 

Similar to Modularize all the things (20)

Transforming Front-End Disaster Code™ Into A Maintainable Masterpiece
Transforming Front-End Disaster Code™ Into A Maintainable MasterpieceTransforming Front-End Disaster Code™ Into A Maintainable Masterpiece
Transforming Front-End Disaster Code™ Into A Maintainable Masterpiece
 
02 Node introduction
02 Node introduction02 Node introduction
02 Node introduction
 
Flu3nt highlights
Flu3nt highlightsFlu3nt highlights
Flu3nt highlights
 
Node JS Express : Steps to Create Restful Web App
Node JS Express : Steps to Create Restful Web AppNode JS Express : Steps to Create Restful Web App
Node JS Express : Steps to Create Restful Web App
 
AngularJS preso with directives and route resolve
AngularJS preso with directives and route resolveAngularJS preso with directives and route resolve
AngularJS preso with directives and route resolve
 
Introduction To Django
Introduction To DjangoIntroduction To Django
Introduction To Django
 
Writing Performant Front-end Code
Writing Performant Front-end CodeWriting Performant Front-end Code
Writing Performant Front-end Code
 
React Django Presentation
React Django PresentationReact Django Presentation
React Django Presentation
 
Introduction to node.js By Ahmed Assaf
Introduction to node.js  By Ahmed AssafIntroduction to node.js  By Ahmed Assaf
Introduction to node.js By Ahmed Assaf
 
Developers survival-guide
Developers survival-guideDevelopers survival-guide
Developers survival-guide
 
Google App Engine for Java v0.0.2
Google App Engine for Java v0.0.2Google App Engine for Java v0.0.2
Google App Engine for Java v0.0.2
 
Strata CA 2019: From Jupyter to Production Manu Mukerji
Strata CA 2019: From Jupyter to Production Manu MukerjiStrata CA 2019: From Jupyter to Production Manu Mukerji
Strata CA 2019: From Jupyter to Production Manu Mukerji
 
How to develop reusable components with Babel and Rollup.js
How to develop reusable components with Babel and Rollup.jsHow to develop reusable components with Babel and Rollup.js
How to develop reusable components with Babel and Rollup.js
 
EVOLVE'15 | Enhance | Norberto Leite | Effectively Scale and Operate AEM with...
EVOLVE'15 | Enhance | Norberto Leite | Effectively Scale and Operate AEM with...EVOLVE'15 | Enhance | Norberto Leite | Effectively Scale and Operate AEM with...
EVOLVE'15 | Enhance | Norberto Leite | Effectively Scale and Operate AEM with...
 
OSDC 2017 | Is that an Ansible? Stop holding it like a Puppet by Felix Frank
OSDC 2017 | Is that an Ansible? Stop holding it like a Puppet by Felix FrankOSDC 2017 | Is that an Ansible? Stop holding it like a Puppet by Felix Frank
OSDC 2017 | Is that an Ansible? Stop holding it like a Puppet by Felix Frank
 
OSDC 2017 - Felix Frank - Is that an Ansible_ Stop holding It Like a Puppet
OSDC 2017 - Felix Frank - Is that an Ansible_ Stop holding It Like a PuppetOSDC 2017 - Felix Frank - Is that an Ansible_ Stop holding It Like a Puppet
OSDC 2017 - Felix Frank - Is that an Ansible_ Stop holding It Like a Puppet
 
Introduction to Node.js
Introduction to Node.jsIntroduction to Node.js
Introduction to Node.js
 
Introduction To Django
Introduction To DjangoIntroduction To Django
Introduction To Django
 
Building Massive AngularJS Apps
Building Massive AngularJS AppsBuilding Massive AngularJS Apps
Building Massive AngularJS Apps
 
10 Businesses That Used Vue.js To Get To The Top.pdf
10 Businesses That Used Vue.js To Get To The Top.pdf10 Businesses That Used Vue.js To Get To The Top.pdf
10 Businesses That Used Vue.js To Get To The Top.pdf
 

Recently uploaded

Hyatt driving innovation and exceptional customer experiences with FIDO passw...
Hyatt driving innovation and exceptional customer experiences with FIDO passw...Hyatt driving innovation and exceptional customer experiences with FIDO passw...
Hyatt driving innovation and exceptional customer experiences with FIDO passw...
FIDO Alliance
 
Easier, Faster, and More Powerful – Alles Neu macht der Mai -Wir durchleuchte...
Easier, Faster, and More Powerful – Alles Neu macht der Mai -Wir durchleuchte...Easier, Faster, and More Powerful – Alles Neu macht der Mai -Wir durchleuchte...
Easier, Faster, and More Powerful – Alles Neu macht der Mai -Wir durchleuchte...
panagenda
 

Recently uploaded (20)

The Zero-ETL Approach: Enhancing Data Agility and Insight
The Zero-ETL Approach: Enhancing Data Agility and InsightThe Zero-ETL Approach: Enhancing Data Agility and Insight
The Zero-ETL Approach: Enhancing Data Agility and Insight
 
2024 May Patch Tuesday
2024 May Patch Tuesday2024 May Patch Tuesday
2024 May Patch Tuesday
 
Oauth 2.0 Introduction and Flows with MuleSoft
Oauth 2.0 Introduction and Flows with MuleSoftOauth 2.0 Introduction and Flows with MuleSoft
Oauth 2.0 Introduction and Flows with MuleSoft
 
Cyber Insurance - RalphGilot - Embry-Riddle Aeronautical University.pptx
Cyber Insurance - RalphGilot - Embry-Riddle Aeronautical University.pptxCyber Insurance - RalphGilot - Embry-Riddle Aeronautical University.pptx
Cyber Insurance - RalphGilot - Embry-Riddle Aeronautical University.pptx
 
Hyatt driving innovation and exceptional customer experiences with FIDO passw...
Hyatt driving innovation and exceptional customer experiences with FIDO passw...Hyatt driving innovation and exceptional customer experiences with FIDO passw...
Hyatt driving innovation and exceptional customer experiences with FIDO passw...
 
Intro to Passkeys and the State of Passwordless.pptx
Intro to Passkeys and the State of Passwordless.pptxIntro to Passkeys and the State of Passwordless.pptx
Intro to Passkeys and the State of Passwordless.pptx
 
State of the Smart Building Startup Landscape 2024!
State of the Smart Building Startup Landscape 2024!State of the Smart Building Startup Landscape 2024!
State of the Smart Building Startup Landscape 2024!
 
Overview of Hyperledger Foundation
Overview of Hyperledger FoundationOverview of Hyperledger Foundation
Overview of Hyperledger Foundation
 
Working together SRE & Platform Engineering
Working together SRE & Platform EngineeringWorking together SRE & Platform Engineering
Working together SRE & Platform Engineering
 
Microsoft CSP Briefing Pre-Engagement - Questionnaire
Microsoft CSP Briefing Pre-Engagement - QuestionnaireMicrosoft CSP Briefing Pre-Engagement - Questionnaire
Microsoft CSP Briefing Pre-Engagement - Questionnaire
 
How to Check GPS Location with a Live Tracker in Pakistan
How to Check GPS Location with a Live Tracker in PakistanHow to Check GPS Location with a Live Tracker in Pakistan
How to Check GPS Location with a Live Tracker in Pakistan
 
Event-Driven Architecture Masterclass: Integrating Distributed Data Stores Ac...
Event-Driven Architecture Masterclass: Integrating Distributed Data Stores Ac...Event-Driven Architecture Masterclass: Integrating Distributed Data Stores Ac...
Event-Driven Architecture Masterclass: Integrating Distributed Data Stores Ac...
 
Google I/O Extended 2024 Warsaw
Google I/O Extended 2024 WarsawGoogle I/O Extended 2024 Warsaw
Google I/O Extended 2024 Warsaw
 
Easier, Faster, and More Powerful – Alles Neu macht der Mai -Wir durchleuchte...
Easier, Faster, and More Powerful – Alles Neu macht der Mai -Wir durchleuchte...Easier, Faster, and More Powerful – Alles Neu macht der Mai -Wir durchleuchte...
Easier, Faster, and More Powerful – Alles Neu macht der Mai -Wir durchleuchte...
 
Portal Kombat : extension du réseau de propagande russe
Portal Kombat : extension du réseau de propagande russePortal Kombat : extension du réseau de propagande russe
Portal Kombat : extension du réseau de propagande russe
 
Design Guidelines for Passkeys 2024.pptx
Design Guidelines for Passkeys 2024.pptxDesign Guidelines for Passkeys 2024.pptx
Design Guidelines for Passkeys 2024.pptx
 
How to Check CNIC Information Online with Pakdata cf
How to Check CNIC Information Online with Pakdata cfHow to Check CNIC Information Online with Pakdata cf
How to Check CNIC Information Online with Pakdata cf
 
Frisco Automating Purchase Orders with MuleSoft IDP- May 10th, 2024.pptx.pdf
Frisco Automating Purchase Orders with MuleSoft IDP- May 10th, 2024.pptx.pdfFrisco Automating Purchase Orders with MuleSoft IDP- May 10th, 2024.pptx.pdf
Frisco Automating Purchase Orders with MuleSoft IDP- May 10th, 2024.pptx.pdf
 
How we scaled to 80K users by doing nothing!.pdf
How we scaled to 80K users by doing nothing!.pdfHow we scaled to 80K users by doing nothing!.pdf
How we scaled to 80K users by doing nothing!.pdf
 
Continuing Bonds Through AI: A Hermeneutic Reflection on Thanabots
Continuing Bonds Through AI: A Hermeneutic Reflection on ThanabotsContinuing Bonds Through AI: A Hermeneutic Reflection on Thanabots
Continuing Bonds Through AI: A Hermeneutic Reflection on Thanabots
 

Modularize all the things