SlideShare a Scribd company logo
1 of 51
Download to read offline
< w e b / F>
WebF Introduction
The struggle for better ecosystem
< w e b / F><web/F>
Idea of powerful programming languages
< w e b / F><web/F>
What makes a language powerful?
• Speed
• Parallel execution
• SIMD, MISD, MIMD
• Expressiveconstructs
• Vast libraries
• Multiple runtimes
< w e b / F><web/F>
Does JavaScript has it?
• Speed 
• Parallel execution 
• SIMD, MISD, MIMD
• Expressiveconstructs 
• Vast libraries 
• Multiple runtimes 
< w e b / F><web/F>
Then, can you call JavaScript powerful?
Probably not… Otherwisethis would not exists
Coffee Script
JavaScript
Dart
C/C++
Java
Transpilation
Transpiler
< w e b / F><web/F>
Let’s redefine the idea of Power
What is the most powerful thing on Earth?
Something more
powerful than HULK…
< w e b / F><web/F>
We all will agree, perhaps…
But Why?
Almighty
< w e b / F><web/F>
FREEDOMTo do anything…
Because he has given us
< w e b / F><web/F>
Coming back to JavaScript
• JavaScript grants such complete freedom to developers
• It is equal for all.
• Nobody can own or control it.
• It doesn’t distinguish between beginner or expert.
• It doesn’t care if you call it Ecma, ES2015 or JavaScript.
< w e b / F><web/F>
You can do this. A beginner might do this.
< w e b / F><web/F>
JavaScript equally satisfies the hunger of experts as well.
< w e b / F><web/F>
How do you want to package your JavaScript
Well, you decide what you need
• Globals
• AMD
• Common/JS
• ES2015 Modules
• UMD
< w e b / F><web/F>
How do you want to serve clients
• Edit and deploy without compilation
• Compile if you want (like packaged apps)
• Minify your code if you want
• Don’t minify your code if you don’t want
• Use caching or don’t use caching
< w e b / F><web/F>
But this freedom is not easy.
Freedom is a job of responsibility
< w e b / F><web/F>
As Uncle Ben told Spiderman,
< w e b / F><web/F>
As Uncle Ben told Spiderman,
with great power
comes great
Responsibility.
< w e b / F><web/F>
A journey of a “JavaScript code”
And how do you utilize this -
great power or great freedom.
< w e b / F><web/F>
Journey starts with 0 lines of code…
< w e b / F><web/F>
One app one JavaScript file
One file approach is good because it will reduce
network calls. It will load faster.
< w e b / F><web/F>
After 5000 lines of code, you realize that
• One file is never meant to be maintainable
• Each time version control conflicts
• Your editor cannot even handle scroll properly
• No parallel development
< w e b / F><web/F>
And so you decide to split it.
< w e b / F><web/F>
So you now face new hell
After 50,000 lines of code, you realize you have got
this…
< w e b / F><web/F>
How do you handle this?
W
< w e b / F><web/F>
W
How do you handle this?
< w e b / F><web/F>
W
It will work but,
< w e b / F><web/F>
How do you handle this?
• How to figure out dependency
• What happened to one app one file rule
• So you were building with wrong assumption
• Has your network automatically became super efficient
• Is there no scope for parallel execution
• What if more than one page request such order
• Where is DRY?
< w e b / F><web/F>
This hell is called as
• Scalability
• Maintenance
• Performance
< w e b / F><web/F>
So you realize that
You need a separation between Development
environment & Production environment.
< w e b / F><web/F>
What we need is
JS file
Bundled JS
JS file
JS file
JS file
Development Production
B
O
U
N
D
A
R
Y
< w e b / F><web/F>
So we have developer
JS file
Bundled JS
JS file
JS file
JS file
But who will do this?
Bundler
Developer who will drive bundling
processeach time a code needs to
be deployed.
< w e b / F><web/F>
The question is
• Should developer do this?
• Is it his responsibility to do these things as
well?
• Should he not focus solely on product development?
• Why should he worry about deployment?
< w e b / F><web/F>
If you ask developer to do this
• Repeated and mundane tasks will lead to error.
• It will consume his time for each deployment.
• His productivity will go down.
• Joy of software programming is wiped out with
deployment headache.
< w e b / F><web/F>
So we have an answer
JS file
Bundled JS
JS file
JS file
JS file
Build script (Grunt, Gulp, NPM, etc.)
Static analysis,
transpile, minify, concat
CI
Continuous Integration
system
< w e b / F><web/F>
Before we conclude anything
• Remember that front-end is not just about JavaScript.
• You don’t just have the responsibilityof JavaScript. Other two pillars
of web front-end are equally expressive and freedom supporting.
• The responsibilitytowards them is equally important.
< w e b / F><web/F>
Entire front-end spectrum
JS
JS
Linters (Jshint,
eslint, jslint)
JS
Transpilers
(es6 to es5)
JS JS
JS uglify (minify
& concat)
Bundled
JS
Build script (Grunt, Gulp, NPM, etc.)
< w e b / F><web/F>
Entire front-end spectrum
Sass
Stylus
CSS
preprocessors
Less
Post CSS
(autoprefixer)
CSS CSS
CSS uglify
(minify, concat)
Bundled
CSS
Build script (Grunt, Gulp, NPM, etc.)
< w e b / F><web/F>
Entire front-end spectrum
Jade
Markdown
Templates
(server side)
Haml
HTML
(validators)
HTML HTML
Mapping
(url, assets)
Bundled
CSS
Build script (Grunt, Gulp, NPM, etc.)
< w e b / F><web/F>
Entire front-end spectrum
jpeg
gif
Image
(optimizer)
png
Compressed
images
Build script (Grunt, Gulp, NPM, etc.)
< w e b / F><web/F>
Entire front-end spectrum
Optimizer
SVG
Sprite
generator
SVG SVG
sprites
Build script (Grunt, Gulp, NPM, etc.)
< w e b / F><web/F>
Finally, deploy if
Unit
test?
e-2-e?
Build script
Integration
Continuousintegration
Ready for
production
Developer
< w e b / F><web/F>
Shouldn’t Angular.js do this for us?
• After all, it is a framework…
< w e b / F><web/F>
Angular.js won’t do it for you
• Angular will help you develop a product. But buildinga product is
separate thing.
• Product Building = Develop + Integrate+ Build + Deploy + Deliver
< w e b / F><web/F>
Users/Customers need this
Develop + Integrate+ Build + Deploy + Deliver
< w e b / F><web/F>
So how do we bring it all together
• That is exactly what we are going to do in this workshop.
• Building enterprise web applications using Angular.js
< w e b / F><web/F>
First,
• We define a product
• We learn all about technology stack
• We learn about maintenancehell
< w e b / F><web/F>
Second,
• We build a support ecosystem
• You might want to call it DevOps
• We see all the options available to us.
< w e b / F><web/F>
Third,
• We see how to write better code
• Then we learn to scale our web application
< w e b / F><web/F>
And then,
• Thereare pieces that helps you make a better front-end engineer
• Functional programming
• ES6
• Asynchronous programming
• This is not angular specific but heart of any JavaScript code.
< w e b / F><web/F>
Thank you…
Let’s get the ball rolling
< w e b / F><web/F>
By
Harshal Patil
@mistyharsh

More Related Content

What's hot

Extension developer secrets - How to make money with Joomla
Extension developer secrets - How to make money with JoomlaExtension developer secrets - How to make money with Joomla
Extension developer secrets - How to make money with Joomla
Tim Plummer
 
What a Back-end Java Developer Doesn't Know About the Modern Web Stack-final
What a Back-end Java Developer Doesn't Know About the Modern Web Stack-finalWhat a Back-end Java Developer Doesn't Know About the Modern Web Stack-final
What a Back-end Java Developer Doesn't Know About the Modern Web Stack-final
Rikard Thulin
 

What's hot (20)

WordCamp Bournemouth 2014 - Designing with data in WordPress
WordCamp Bournemouth 2014 - Designing with data in WordPressWordCamp Bournemouth 2014 - Designing with data in WordPress
WordCamp Bournemouth 2014 - Designing with data in WordPress
 
Rapid WordPress theme development
Rapid WordPress theme developmentRapid WordPress theme development
Rapid WordPress theme development
 
Untangling spring week5
Untangling spring week5Untangling spring week5
Untangling spring week5
 
Optimizing Your Site for Holiday Traffic
Optimizing Your Site for Holiday TrafficOptimizing Your Site for Holiday Traffic
Optimizing Your Site for Holiday Traffic
 
State of jQuery June 2013 - Portland
State of jQuery June 2013 - PortlandState of jQuery June 2013 - Portland
State of jQuery June 2013 - Portland
 
Untangling spring week4
Untangling spring week4Untangling spring week4
Untangling spring week4
 
Bootstrap and XPages (DanNotes 2013)
Bootstrap and XPages (DanNotes 2013)Bootstrap and XPages (DanNotes 2013)
Bootstrap and XPages (DanNotes 2013)
 
Extension developer secrets - How to make money with Joomla
Extension developer secrets - How to make money with JoomlaExtension developer secrets - How to make money with Joomla
Extension developer secrets - How to make money with Joomla
 
Blazor Full-Stack
Blazor Full-StackBlazor Full-Stack
Blazor Full-Stack
 
Html5
Html5Html5
Html5
 
EscConf - Deep Dive Frontend Optimization
EscConf - Deep Dive Frontend OptimizationEscConf - Deep Dive Frontend Optimization
EscConf - Deep Dive Frontend Optimization
 
Theming in WordPress - Where do I Start?
Theming in WordPress - Where do I Start?Theming in WordPress - Where do I Start?
Theming in WordPress - Where do I Start?
 
Building the next generation of themes with WP Rig 2.0
Building the next generation of themes with WP Rig 2.0Building the next generation of themes with WP Rig 2.0
Building the next generation of themes with WP Rig 2.0
 
Getting started with WordPress development
Getting started with WordPress developmentGetting started with WordPress development
Getting started with WordPress development
 
CSS Grid Changes Everything - Keynote at WebCamp Zagreb 2017
CSS Grid Changes Everything - Keynote at WebCamp Zagreb 2017CSS Grid Changes Everything - Keynote at WebCamp Zagreb 2017
CSS Grid Changes Everything - Keynote at WebCamp Zagreb 2017
 
How to Build Custom WordPress Blocks
How to Build Custom WordPress BlocksHow to Build Custom WordPress Blocks
How to Build Custom WordPress Blocks
 
Responsive Theme Workshop - WordCamp Columbus 2015
Responsive Theme Workshop - WordCamp Columbus 2015Responsive Theme Workshop - WordCamp Columbus 2015
Responsive Theme Workshop - WordCamp Columbus 2015
 
What a Back-end Java Developer Doesn't Know About the Modern Web Stack-final
What a Back-end Java Developer Doesn't Know About the Modern Web Stack-finalWhat a Back-end Java Developer Doesn't Know About the Modern Web Stack-final
What a Back-end Java Developer Doesn't Know About the Modern Web Stack-final
 
State of play for Joomla - Nov 2014
State of play for Joomla - Nov 2014State of play for Joomla - Nov 2014
State of play for Joomla - Nov 2014
 
Razor into the Razor'verse
Razor into the Razor'verseRazor into the Razor'verse
Razor into the Razor'verse
 

Viewers also liked

Viewers also liked (10)

II - Build Automation
II - Build AutomationII - Build Automation
II - Build Automation
 
An over view on spider silk
An over view on spider silkAn over view on spider silk
An over view on spider silk
 
Spider Silk
Spider SilkSpider Silk
Spider Silk
 
Web Design Trends for 2014
Web Design Trends for 2014Web Design Trends for 2014
Web Design Trends for 2014
 
Spider silk
Spider silk Spider silk
Spider silk
 
Modern Web Development
Modern Web DevelopmentModern Web Development
Modern Web Development
 
Spider silk
Spider silkSpider silk
Spider silk
 
Web Development on Web Project Presentation
Web Development on Web Project PresentationWeb Development on Web Project Presentation
Web Development on Web Project Presentation
 
Web Design 101
Web Design 101Web Design 101
Web Design 101
 
Fundamentals of Web Development For Non-Developers
Fundamentals of Web Development For Non-DevelopersFundamentals of Web Development For Non-Developers
Fundamentals of Web Development For Non-Developers
 

Similar to 2015 - Introduction to building enterprise web applications using Angular.js

Getting started with PhoneGap
Getting started with PhoneGapGetting started with PhoneGap
Getting started with PhoneGap
Mihai Corlan
 
Netbeans65 Osum Slides
Netbeans65 Osum SlidesNetbeans65 Osum Slides
Netbeans65 Osum Slides
Abhishek Gupta
 

Similar to 2015 - Introduction to building enterprise web applications using Angular.js (20)

PhoneGap/Cordova
PhoneGap/CordovaPhoneGap/Cordova
PhoneGap/Cordova
 
WordCamp Belfast DevOps for Beginners
WordCamp Belfast DevOps for BeginnersWordCamp Belfast DevOps for Beginners
WordCamp Belfast DevOps for Beginners
 
An introduction to html5 by Devs
An introduction to html5 by DevsAn introduction to html5 by Devs
An introduction to html5 by Devs
 
Javascript mvc
Javascript mvcJavascript mvc
Javascript mvc
 
Svelte the future of frontend development
Svelte   the future of frontend developmentSvelte   the future of frontend development
Svelte the future of frontend development
 
Frontend Workflow
Frontend WorkflowFrontend Workflow
Frontend Workflow
 
Java Web Start czyli jak żyć z tą dziwną technologią & Continuous Delivery w ...
Java Web Start czyli jak żyć z tą dziwną technologią & Continuous Delivery w ...Java Web Start czyli jak żyć z tą dziwną technologią & Continuous Delivery w ...
Java Web Start czyli jak żyć z tą dziwną technologią & Continuous Delivery w ...
 
Offline of web applications
Offline of web applicationsOffline of web applications
Offline of web applications
 
Offline for web - Frontend Dev Conf Minsk 2014
Offline for web - Frontend Dev Conf Minsk 2014Offline for web - Frontend Dev Conf Minsk 2014
Offline for web - Frontend Dev Conf Minsk 2014
 
Conquering Gef Part2: Building graphical web-apps with Eclipse
Conquering Gef Part2: Building graphical web-apps with EclipseConquering Gef Part2: Building graphical web-apps with Eclipse
Conquering Gef Part2: Building graphical web-apps with Eclipse
 
What Visual Studio Code can do for Java Development
What Visual Studio Code can do for Java DevelopmentWhat Visual Studio Code can do for Java Development
What Visual Studio Code can do for Java Development
 
Echo HTML5
Echo HTML5Echo HTML5
Echo HTML5
 
React Native and the future of web technology (Mark Wilcox) - GreeceJS #15
React Native and the future of web technology (Mark Wilcox) - GreeceJS #15React Native and the future of web technology (Mark Wilcox) - GreeceJS #15
React Native and the future of web technology (Mark Wilcox) - GreeceJS #15
 
(ARC402) Deployment Automation: From Developers' Keyboards to End Users' Scre...
(ARC402) Deployment Automation: From Developers' Keyboards to End Users' Scre...(ARC402) Deployment Automation: From Developers' Keyboards to End Users' Scre...
(ARC402) Deployment Automation: From Developers' Keyboards to End Users' Scre...
 
Jon Arne Sæterås - Give Responsive Design a mobile performance boost
Jon Arne Sæterås - Give Responsive Design a mobile performance boost Jon Arne Sæterås - Give Responsive Design a mobile performance boost
Jon Arne Sæterås - Give Responsive Design a mobile performance boost
 
Developing FirefoxOS
Developing FirefoxOSDeveloping FirefoxOS
Developing FirefoxOS
 
Getting started with PhoneGap
Getting started with PhoneGapGetting started with PhoneGap
Getting started with PhoneGap
 
Netbeans65 Osum Slides
Netbeans65 Osum SlidesNetbeans65 Osum Slides
Netbeans65 Osum Slides
 
Continuous Integration with Open Source Tools - PHPUgFfm 2014-11-20
Continuous Integration with Open Source Tools - PHPUgFfm 2014-11-20Continuous Integration with Open Source Tools - PHPUgFfm 2014-11-20
Continuous Integration with Open Source Tools - PHPUgFfm 2014-11-20
 
Lightning branches at RedMart (Js conf Asia 2014 Talk)
Lightning branches at RedMart (Js conf Asia 2014  Talk)Lightning branches at RedMart (Js conf Asia 2014  Talk)
Lightning branches at RedMart (Js conf Asia 2014 Talk)
 

Recently uploaded

Recently uploaded (20)

How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)
 
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data DiscoveryTrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
 
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt Robison
 
MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024
 
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdfUnderstanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
 
Polkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin WoodPolkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin Wood
 
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)
 
Manulife - Insurer Innovation Award 2024
Manulife - Insurer Innovation Award 2024Manulife - Insurer Innovation Award 2024
Manulife - Insurer Innovation Award 2024
 
AWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of TerraformAWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of Terraform
 
Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivity
 
Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
 
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
 
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost SavingRepurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
 
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
 
Top 10 Most Downloaded Games on Play Store in 2024
Top 10 Most Downloaded Games on Play Store in 2024Top 10 Most Downloaded Games on Play Store in 2024
Top 10 Most Downloaded Games on Play Store in 2024
 
presentation ICT roal in 21st century education
presentation ICT roal in 21st century educationpresentation ICT roal in 21st century education
presentation ICT roal in 21st century education
 
Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024
 

2015 - Introduction to building enterprise web applications using Angular.js

  • 1. < w e b / F> WebF Introduction The struggle for better ecosystem
  • 2. < w e b / F><web/F> Idea of powerful programming languages
  • 3. < w e b / F><web/F> What makes a language powerful? • Speed • Parallel execution • SIMD, MISD, MIMD • Expressiveconstructs • Vast libraries • Multiple runtimes
  • 4. < w e b / F><web/F> Does JavaScript has it? • Speed  • Parallel execution  • SIMD, MISD, MIMD • Expressiveconstructs  • Vast libraries  • Multiple runtimes 
  • 5. < w e b / F><web/F> Then, can you call JavaScript powerful? Probably not… Otherwisethis would not exists Coffee Script JavaScript Dart C/C++ Java Transpilation Transpiler
  • 6. < w e b / F><web/F> Let’s redefine the idea of Power What is the most powerful thing on Earth?
  • 8. < w e b / F><web/F> We all will agree, perhaps… But Why? Almighty
  • 9. < w e b / F><web/F> FREEDOMTo do anything… Because he has given us
  • 10. < w e b / F><web/F> Coming back to JavaScript • JavaScript grants such complete freedom to developers • It is equal for all. • Nobody can own or control it. • It doesn’t distinguish between beginner or expert. • It doesn’t care if you call it Ecma, ES2015 or JavaScript.
  • 11. < w e b / F><web/F> You can do this. A beginner might do this.
  • 12. < w e b / F><web/F> JavaScript equally satisfies the hunger of experts as well.
  • 13. < w e b / F><web/F> How do you want to package your JavaScript Well, you decide what you need • Globals • AMD • Common/JS • ES2015 Modules • UMD
  • 14. < w e b / F><web/F> How do you want to serve clients • Edit and deploy without compilation • Compile if you want (like packaged apps) • Minify your code if you want • Don’t minify your code if you don’t want • Use caching or don’t use caching
  • 15. < w e b / F><web/F> But this freedom is not easy. Freedom is a job of responsibility
  • 16. < w e b / F><web/F> As Uncle Ben told Spiderman,
  • 17. < w e b / F><web/F> As Uncle Ben told Spiderman, with great power comes great Responsibility.
  • 18. < w e b / F><web/F> A journey of a “JavaScript code” And how do you utilize this - great power or great freedom.
  • 19. < w e b / F><web/F> Journey starts with 0 lines of code…
  • 20. < w e b / F><web/F> One app one JavaScript file One file approach is good because it will reduce network calls. It will load faster.
  • 21. < w e b / F><web/F> After 5000 lines of code, you realize that • One file is never meant to be maintainable • Each time version control conflicts • Your editor cannot even handle scroll properly • No parallel development
  • 22. < w e b / F><web/F> And so you decide to split it.
  • 23. < w e b / F><web/F> So you now face new hell After 50,000 lines of code, you realize you have got this…
  • 24. < w e b / F><web/F> How do you handle this? W
  • 25. < w e b / F><web/F> W How do you handle this?
  • 26. < w e b / F><web/F> W It will work but,
  • 27. < w e b / F><web/F> How do you handle this? • How to figure out dependency • What happened to one app one file rule • So you were building with wrong assumption • Has your network automatically became super efficient • Is there no scope for parallel execution • What if more than one page request such order • Where is DRY?
  • 28. < w e b / F><web/F> This hell is called as • Scalability • Maintenance • Performance
  • 29. < w e b / F><web/F> So you realize that You need a separation between Development environment & Production environment.
  • 30. < w e b / F><web/F> What we need is JS file Bundled JS JS file JS file JS file Development Production B O U N D A R Y
  • 31. < w e b / F><web/F> So we have developer JS file Bundled JS JS file JS file JS file But who will do this? Bundler Developer who will drive bundling processeach time a code needs to be deployed.
  • 32. < w e b / F><web/F> The question is • Should developer do this? • Is it his responsibility to do these things as well? • Should he not focus solely on product development? • Why should he worry about deployment?
  • 33. < w e b / F><web/F> If you ask developer to do this • Repeated and mundane tasks will lead to error. • It will consume his time for each deployment. • His productivity will go down. • Joy of software programming is wiped out with deployment headache.
  • 34. < w e b / F><web/F> So we have an answer JS file Bundled JS JS file JS file JS file Build script (Grunt, Gulp, NPM, etc.) Static analysis, transpile, minify, concat CI Continuous Integration system
  • 35. < w e b / F><web/F> Before we conclude anything • Remember that front-end is not just about JavaScript. • You don’t just have the responsibilityof JavaScript. Other two pillars of web front-end are equally expressive and freedom supporting. • The responsibilitytowards them is equally important.
  • 36. < w e b / F><web/F> Entire front-end spectrum JS JS Linters (Jshint, eslint, jslint) JS Transpilers (es6 to es5) JS JS JS uglify (minify & concat) Bundled JS Build script (Grunt, Gulp, NPM, etc.)
  • 37. < w e b / F><web/F> Entire front-end spectrum Sass Stylus CSS preprocessors Less Post CSS (autoprefixer) CSS CSS CSS uglify (minify, concat) Bundled CSS Build script (Grunt, Gulp, NPM, etc.)
  • 38. < w e b / F><web/F> Entire front-end spectrum Jade Markdown Templates (server side) Haml HTML (validators) HTML HTML Mapping (url, assets) Bundled CSS Build script (Grunt, Gulp, NPM, etc.)
  • 39. < w e b / F><web/F> Entire front-end spectrum jpeg gif Image (optimizer) png Compressed images Build script (Grunt, Gulp, NPM, etc.)
  • 40. < w e b / F><web/F> Entire front-end spectrum Optimizer SVG Sprite generator SVG SVG sprites Build script (Grunt, Gulp, NPM, etc.)
  • 41. < w e b / F><web/F> Finally, deploy if Unit test? e-2-e? Build script Integration Continuousintegration Ready for production Developer
  • 42. < w e b / F><web/F> Shouldn’t Angular.js do this for us? • After all, it is a framework…
  • 43. < w e b / F><web/F> Angular.js won’t do it for you • Angular will help you develop a product. But buildinga product is separate thing. • Product Building = Develop + Integrate+ Build + Deploy + Deliver
  • 44. < w e b / F><web/F> Users/Customers need this Develop + Integrate+ Build + Deploy + Deliver
  • 45. < w e b / F><web/F> So how do we bring it all together • That is exactly what we are going to do in this workshop. • Building enterprise web applications using Angular.js
  • 46. < w e b / F><web/F> First, • We define a product • We learn all about technology stack • We learn about maintenancehell
  • 47. < w e b / F><web/F> Second, • We build a support ecosystem • You might want to call it DevOps • We see all the options available to us.
  • 48. < w e b / F><web/F> Third, • We see how to write better code • Then we learn to scale our web application
  • 49. < w e b / F><web/F> And then, • Thereare pieces that helps you make a better front-end engineer • Functional programming • ES6 • Asynchronous programming • This is not angular specific but heart of any JavaScript code.
  • 50. < w e b / F><web/F> Thank you… Let’s get the ball rolling
  • 51. < w e b / F><web/F> By Harshal Patil @mistyharsh