SlideShare a Scribd company logo
< 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 (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
Jonny Allbut
 
Rapid WordPress theme development
Rapid WordPress theme developmentRapid WordPress theme development
Rapid WordPress theme development
Jonny Allbut
 
Untangling spring week5
Untangling spring week5Untangling spring week5
Untangling spring week5
Derek Jacoby
 
Optimizing Your Site for Holiday Traffic
Optimizing Your Site for Holiday TrafficOptimizing Your Site for Holiday Traffic
Optimizing Your Site for Holiday Traffic
WP Engine UK
 
State of jQuery June 2013 - Portland
State of jQuery June 2013 - PortlandState of jQuery June 2013 - Portland
State of jQuery June 2013 - Portland
dmethvin
 
Untangling spring week4
Untangling spring week4Untangling spring week4
Untangling spring week4
Derek Jacoby
 
Bootstrap and XPages (DanNotes 2013)
Bootstrap and XPages (DanNotes 2013)Bootstrap and XPages (DanNotes 2013)
Bootstrap and XPages (DanNotes 2013)
Mark Leusink
 
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
 
Blazor Full-Stack
Blazor Full-StackBlazor Full-Stack
Blazor Full-Stack
Ed Charbeneau
 
Html5
Html5Html5
Html5
Ben MacNeill
 
EscConf - Deep Dive Frontend Optimization
EscConf - Deep Dive Frontend OptimizationEscConf - Deep Dive Frontend Optimization
EscConf - Deep Dive Frontend Optimization
Jonathan Klein
 
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?
Edmund Turbin
 
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
Morten Rand-Hendriksen
 
Getting started with WordPress development
Getting started with WordPress developmentGetting started with WordPress development
Getting started with WordPress development
Steve Mortiboy
 
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
Morten Rand-Hendriksen
 
How to Build Custom WordPress Blocks
How to Build Custom WordPress BlocksHow to Build Custom WordPress Blocks
How to Build Custom WordPress Blocks
Morten Rand-Hendriksen
 
Responsive Theme Workshop - WordCamp Columbus 2015
Responsive Theme Workshop - WordCamp Columbus 2015Responsive Theme Workshop - WordCamp Columbus 2015
Responsive Theme Workshop - WordCamp Columbus 2015
Joe Querin
 
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
 
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
Tim Plummer
 
Razor into the Razor'verse
Razor into the Razor'verseRazor into the Razor'verse
Razor into the Razor'verse
Ed Charbeneau
 
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
Jonny Allbut
 
Rapid WordPress theme development
Rapid WordPress theme developmentRapid WordPress theme development
Rapid WordPress theme development
Jonny Allbut
 
Untangling spring week5
Untangling spring week5Untangling spring week5
Untangling spring week5
Derek Jacoby
 
Optimizing Your Site for Holiday Traffic
Optimizing Your Site for Holiday TrafficOptimizing Your Site for Holiday Traffic
Optimizing Your Site for Holiday Traffic
WP Engine UK
 
State of jQuery June 2013 - Portland
State of jQuery June 2013 - PortlandState of jQuery June 2013 - Portland
State of jQuery June 2013 - Portland
dmethvin
 
Untangling spring week4
Untangling spring week4Untangling spring week4
Untangling spring week4
Derek Jacoby
 
Bootstrap and XPages (DanNotes 2013)
Bootstrap and XPages (DanNotes 2013)Bootstrap and XPages (DanNotes 2013)
Bootstrap and XPages (DanNotes 2013)
Mark Leusink
 
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
 
EscConf - Deep Dive Frontend Optimization
EscConf - Deep Dive Frontend OptimizationEscConf - Deep Dive Frontend Optimization
EscConf - Deep Dive Frontend Optimization
Jonathan Klein
 
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?
Edmund Turbin
 
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
Morten Rand-Hendriksen
 
Getting started with WordPress development
Getting started with WordPress developmentGetting started with WordPress development
Getting started with WordPress development
Steve Mortiboy
 
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
Morten Rand-Hendriksen
 
Responsive Theme Workshop - WordCamp Columbus 2015
Responsive Theme Workshop - WordCamp Columbus 2015Responsive Theme Workshop - WordCamp Columbus 2015
Responsive Theme Workshop - WordCamp Columbus 2015
Joe Querin
 
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
 
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
Tim Plummer
 
Razor into the Razor'verse
Razor into the Razor'verseRazor into the Razor'verse
Razor into the Razor'verse
Ed Charbeneau
 

Viewers also liked (10)

II - Build Automation
II - Build AutomationII - Build Automation
II - Build Automation
WebF
 
An over view on spider silk
An over view on spider silkAn over view on spider silk
An over view on spider silk
vignan universty, guntur
 
Spider Silk
Spider SilkSpider Silk
Spider Silk
jahanzebmunawar
 
Web Design Trends for 2014
Web Design Trends for 2014Web Design Trends for 2014
Web Design Trends for 2014
Accrinet Corporation
 
Spider silk
Spider silk Spider silk
Spider silk
Gopi Chandrakanth
 
Modern Web Development
Modern Web DevelopmentModern Web Development
Modern Web Development
Robert Nyman
 
Spider silk
Spider silkSpider silk
Spider silk
Md. Mazadul Hasan Shishir
 
Web Development on Web Project Presentation
Web Development on Web Project PresentationWeb Development on Web Project Presentation
Web Development on Web Project Presentation
Milind Gokhale
 
Web Design 101
Web Design 101Web Design 101
Web Design 101
T.S. Lim
 
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
Lemi Orhan Ergin
 
Ad

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

PhoneGap/Cordova
PhoneGap/CordovaPhoneGap/Cordova
PhoneGap/Cordova
Mihai Corlan
 
WordCamp Belfast DevOps for Beginners
WordCamp Belfast DevOps for BeginnersWordCamp Belfast DevOps for Beginners
WordCamp Belfast DevOps for Beginners
Stewart Ritchie
 
An introduction to html5 by Devs
An introduction to html5 by DevsAn introduction to html5 by Devs
An introduction to html5 by Devs
Debidatta Satapathy
 
Javascript mvc
Javascript mvcJavascript mvc
Javascript mvc
felix_bruno
 
Svelte the future of frontend development
Svelte   the future of frontend developmentSvelte   the future of frontend development
Svelte the future of frontend development
twilson63
 
Frontend Workflow
Frontend WorkflowFrontend Workflow
Frontend Workflow
DelphiCon
 
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 ...
MarcinStachniuk
 
Offline of web applications
Offline of web applicationsOffline of web applications
Offline of web applications
FDConf
 
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
Jan Jongboom
 
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
Vineet Sinha
 
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
Ed Burns
 
Echo HTML5
Echo HTML5Echo HTML5
Echo HTML5
Nathan Smith
 
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
GreeceJS
 
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
DevConFu
 
Developing FirefoxOS
Developing FirefoxOSDeveloping FirefoxOS
Developing FirefoxOS
Fred Lin
 
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
 
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
Michael Lihs
 
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)
Ritesh Angural
 
How we took our server side application to the cloud and liked what we got
How we took our server side application to the cloud and liked what we gotHow we took our server side application to the cloud and liked what we got
How we took our server side application to the cloud and liked what we got
Baruch Sadogursky
 
WordCamp Belfast DevOps for Beginners
WordCamp Belfast DevOps for BeginnersWordCamp Belfast DevOps for Beginners
WordCamp Belfast DevOps for Beginners
Stewart Ritchie
 
An introduction to html5 by Devs
An introduction to html5 by DevsAn introduction to html5 by Devs
An introduction to html5 by Devs
Debidatta Satapathy
 
Svelte the future of frontend development
Svelte   the future of frontend developmentSvelte   the future of frontend development
Svelte the future of frontend development
twilson63
 
Frontend Workflow
Frontend WorkflowFrontend Workflow
Frontend Workflow
DelphiCon
 
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 ...
MarcinStachniuk
 
Offline of web applications
Offline of web applicationsOffline of web applications
Offline of web applications
FDConf
 
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
Jan Jongboom
 
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
Vineet Sinha
 
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
Ed Burns
 
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
GreeceJS
 
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
DevConFu
 
Developing FirefoxOS
Developing FirefoxOSDeveloping FirefoxOS
Developing FirefoxOS
Fred Lin
 
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
 
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
Michael Lihs
 
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)
Ritesh Angural
 
How we took our server side application to the cloud and liked what we got
How we took our server side application to the cloud and liked what we gotHow we took our server side application to the cloud and liked what we got
How we took our server side application to the cloud and liked what we got
Baruch Sadogursky
 
Ad

Recently uploaded (20)

National Fuels Treatments Initiative: Building a Seamless Map of Hazardous Fu...
National Fuels Treatments Initiative: Building a Seamless Map of Hazardous Fu...National Fuels Treatments Initiative: Building a Seamless Map of Hazardous Fu...
National Fuels Treatments Initiative: Building a Seamless Map of Hazardous Fu...
Safe Software
 
Trends Artificial Intelligence - Mary Meeker
Trends Artificial Intelligence - Mary MeekerTrends Artificial Intelligence - Mary Meeker
Trends Artificial Intelligence - Mary Meeker
Clive Dickens
 
Your startup on AWS - How to architect and maintain a Lean and Mean account
Your startup on AWS - How to architect and maintain a Lean and Mean accountYour startup on AWS - How to architect and maintain a Lean and Mean account
Your startup on AWS - How to architect and maintain a Lean and Mean account
angelo60207
 
“State-space Models vs. Transformers for Ultra-low-power Edge AI,” a Presenta...
“State-space Models vs. Transformers for Ultra-low-power Edge AI,” a Presenta...“State-space Models vs. Transformers for Ultra-low-power Edge AI,” a Presenta...
“State-space Models vs. Transformers for Ultra-low-power Edge AI,” a Presenta...
Edge AI and Vision Alliance
 
7 Salesforce Data Cloud Best Practices.pdf
7 Salesforce Data Cloud Best Practices.pdf7 Salesforce Data Cloud Best Practices.pdf
7 Salesforce Data Cloud Best Practices.pdf
Minuscule Technologies
 
Improving Developer Productivity With DORA, SPACE, and DevEx
Improving Developer Productivity With DORA, SPACE, and DevExImproving Developer Productivity With DORA, SPACE, and DevEx
Improving Developer Productivity With DORA, SPACE, and DevEx
Justin Reock
 
End-to-end Assurance for SD-WAN & SASE with ThousandEyes
End-to-end Assurance for SD-WAN & SASE with ThousandEyesEnd-to-end Assurance for SD-WAN & SASE with ThousandEyes
End-to-end Assurance for SD-WAN & SASE with ThousandEyes
ThousandEyes
 
Bridging the divide: A conversation on tariffs today in the book industry - T...
Bridging the divide: A conversation on tariffs today in the book industry - T...Bridging the divide: A conversation on tariffs today in the book industry - T...
Bridging the divide: A conversation on tariffs today in the book industry - T...
BookNet Canada
 
AI Agents in Logistics and Supply Chain Applications Benefits and Implementation
AI Agents in Logistics and Supply Chain Applications Benefits and ImplementationAI Agents in Logistics and Supply Chain Applications Benefits and Implementation
AI Agents in Logistics and Supply Chain Applications Benefits and Implementation
Christine Shepherd
 
How to Detect Outliers in IBM SPSS Statistics.pptx
How to Detect Outliers in IBM SPSS Statistics.pptxHow to Detect Outliers in IBM SPSS Statistics.pptx
How to Detect Outliers in IBM SPSS Statistics.pptx
Version 1 Analytics
 
Developing Schemas with FME and Excel - Peak of Data & AI 2025
Developing Schemas with FME and Excel - Peak of Data & AI 2025Developing Schemas with FME and Excel - Peak of Data & AI 2025
Developing Schemas with FME and Excel - Peak of Data & AI 2025
Safe Software
 
Jira Administration Training – Day 1 : Introduction
Jira Administration Training – Day 1 : IntroductionJira Administration Training – Day 1 : Introduction
Jira Administration Training – Day 1 : Introduction
Ravi Teja
 
Down the Rabbit Hole – Solving 5 Training Roadblocks
Down the Rabbit Hole – Solving 5 Training RoadblocksDown the Rabbit Hole – Solving 5 Training Roadblocks
Down the Rabbit Hole – Solving 5 Training Roadblocks
Rustici Software
 
Domino IQ – Was Sie erwartet, erste Schritte und Anwendungsfälle
Domino IQ – Was Sie erwartet, erste Schritte und AnwendungsfälleDomino IQ – Was Sie erwartet, erste Schritte und Anwendungsfälle
Domino IQ – Was Sie erwartet, erste Schritte und Anwendungsfälle
panagenda
 
Dancing with AI - A Developer's Journey.pptx
Dancing with AI - A Developer's Journey.pptxDancing with AI - A Developer's Journey.pptx
Dancing with AI - A Developer's Journey.pptx
Elliott Richmond
 
Integration of Utility Data into 3D BIM Models Using a 3D Solids Modeling Wor...
Integration of Utility Data into 3D BIM Models Using a 3D Solids Modeling Wor...Integration of Utility Data into 3D BIM Models Using a 3D Solids Modeling Wor...
Integration of Utility Data into 3D BIM Models Using a 3D Solids Modeling Wor...
Safe Software
 
MCP vs A2A vs ACP: Choosing the Right Protocol | Bluebash
MCP vs A2A vs ACP: Choosing the Right Protocol | BluebashMCP vs A2A vs ACP: Choosing the Right Protocol | Bluebash
MCP vs A2A vs ACP: Choosing the Right Protocol | Bluebash
Bluebash
 
Oracle Cloud Infrastructure Generative AI Professional
Oracle Cloud Infrastructure Generative AI ProfessionalOracle Cloud Infrastructure Generative AI Professional
Oracle Cloud Infrastructure Generative AI Professional
VICTOR MAESTRE RAMIREZ
 
Soulmaite review - Find Real AI soulmate review
Soulmaite review - Find Real AI soulmate reviewSoulmaite review - Find Real AI soulmate review
Soulmaite review - Find Real AI soulmate review
Soulmaite
 
Scaling GenAI Inference From Prototype to Production: Real-World Lessons in S...
Scaling GenAI Inference From Prototype to Production: Real-World Lessons in S...Scaling GenAI Inference From Prototype to Production: Real-World Lessons in S...
Scaling GenAI Inference From Prototype to Production: Real-World Lessons in S...
Anish Kumar
 
National Fuels Treatments Initiative: Building a Seamless Map of Hazardous Fu...
National Fuels Treatments Initiative: Building a Seamless Map of Hazardous Fu...National Fuels Treatments Initiative: Building a Seamless Map of Hazardous Fu...
National Fuels Treatments Initiative: Building a Seamless Map of Hazardous Fu...
Safe Software
 
Trends Artificial Intelligence - Mary Meeker
Trends Artificial Intelligence - Mary MeekerTrends Artificial Intelligence - Mary Meeker
Trends Artificial Intelligence - Mary Meeker
Clive Dickens
 
Your startup on AWS - How to architect and maintain a Lean and Mean account
Your startup on AWS - How to architect and maintain a Lean and Mean accountYour startup on AWS - How to architect and maintain a Lean and Mean account
Your startup on AWS - How to architect and maintain a Lean and Mean account
angelo60207
 
“State-space Models vs. Transformers for Ultra-low-power Edge AI,” a Presenta...
“State-space Models vs. Transformers for Ultra-low-power Edge AI,” a Presenta...“State-space Models vs. Transformers for Ultra-low-power Edge AI,” a Presenta...
“State-space Models vs. Transformers for Ultra-low-power Edge AI,” a Presenta...
Edge AI and Vision Alliance
 
7 Salesforce Data Cloud Best Practices.pdf
7 Salesforce Data Cloud Best Practices.pdf7 Salesforce Data Cloud Best Practices.pdf
7 Salesforce Data Cloud Best Practices.pdf
Minuscule Technologies
 
Improving Developer Productivity With DORA, SPACE, and DevEx
Improving Developer Productivity With DORA, SPACE, and DevExImproving Developer Productivity With DORA, SPACE, and DevEx
Improving Developer Productivity With DORA, SPACE, and DevEx
Justin Reock
 
End-to-end Assurance for SD-WAN & SASE with ThousandEyes
End-to-end Assurance for SD-WAN & SASE with ThousandEyesEnd-to-end Assurance for SD-WAN & SASE with ThousandEyes
End-to-end Assurance for SD-WAN & SASE with ThousandEyes
ThousandEyes
 
Bridging the divide: A conversation on tariffs today in the book industry - T...
Bridging the divide: A conversation on tariffs today in the book industry - T...Bridging the divide: A conversation on tariffs today in the book industry - T...
Bridging the divide: A conversation on tariffs today in the book industry - T...
BookNet Canada
 
AI Agents in Logistics and Supply Chain Applications Benefits and Implementation
AI Agents in Logistics and Supply Chain Applications Benefits and ImplementationAI Agents in Logistics and Supply Chain Applications Benefits and Implementation
AI Agents in Logistics and Supply Chain Applications Benefits and Implementation
Christine Shepherd
 
How to Detect Outliers in IBM SPSS Statistics.pptx
How to Detect Outliers in IBM SPSS Statistics.pptxHow to Detect Outliers in IBM SPSS Statistics.pptx
How to Detect Outliers in IBM SPSS Statistics.pptx
Version 1 Analytics
 
Developing Schemas with FME and Excel - Peak of Data & AI 2025
Developing Schemas with FME and Excel - Peak of Data & AI 2025Developing Schemas with FME and Excel - Peak of Data & AI 2025
Developing Schemas with FME and Excel - Peak of Data & AI 2025
Safe Software
 
Jira Administration Training – Day 1 : Introduction
Jira Administration Training – Day 1 : IntroductionJira Administration Training – Day 1 : Introduction
Jira Administration Training – Day 1 : Introduction
Ravi Teja
 
Down the Rabbit Hole – Solving 5 Training Roadblocks
Down the Rabbit Hole – Solving 5 Training RoadblocksDown the Rabbit Hole – Solving 5 Training Roadblocks
Down the Rabbit Hole – Solving 5 Training Roadblocks
Rustici Software
 
Domino IQ – Was Sie erwartet, erste Schritte und Anwendungsfälle
Domino IQ – Was Sie erwartet, erste Schritte und AnwendungsfälleDomino IQ – Was Sie erwartet, erste Schritte und Anwendungsfälle
Domino IQ – Was Sie erwartet, erste Schritte und Anwendungsfälle
panagenda
 
Dancing with AI - A Developer's Journey.pptx
Dancing with AI - A Developer's Journey.pptxDancing with AI - A Developer's Journey.pptx
Dancing with AI - A Developer's Journey.pptx
Elliott Richmond
 
Integration of Utility Data into 3D BIM Models Using a 3D Solids Modeling Wor...
Integration of Utility Data into 3D BIM Models Using a 3D Solids Modeling Wor...Integration of Utility Data into 3D BIM Models Using a 3D Solids Modeling Wor...
Integration of Utility Data into 3D BIM Models Using a 3D Solids Modeling Wor...
Safe Software
 
MCP vs A2A vs ACP: Choosing the Right Protocol | Bluebash
MCP vs A2A vs ACP: Choosing the Right Protocol | BluebashMCP vs A2A vs ACP: Choosing the Right Protocol | Bluebash
MCP vs A2A vs ACP: Choosing the Right Protocol | Bluebash
Bluebash
 
Oracle Cloud Infrastructure Generative AI Professional
Oracle Cloud Infrastructure Generative AI ProfessionalOracle Cloud Infrastructure Generative AI Professional
Oracle Cloud Infrastructure Generative AI Professional
VICTOR MAESTRE RAMIREZ
 
Soulmaite review - Find Real AI soulmate review
Soulmaite review - Find Real AI soulmate reviewSoulmaite review - Find Real AI soulmate review
Soulmaite review - Find Real AI soulmate review
Soulmaite
 
Scaling GenAI Inference From Prototype to Production: Real-World Lessons in S...
Scaling GenAI Inference From Prototype to Production: Real-World Lessons in S...Scaling GenAI Inference From Prototype to Production: Real-World Lessons in S...
Scaling GenAI Inference From Prototype to Production: Real-World Lessons in S...
Anish Kumar
 

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