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

PDF
III - Better angularjs
PDF
IV - CSS architecture
PDF
I - Front-end Spectrum
PDF
II - Angular.js app structure
PDF
WordCamp Sheffield 2014 Theme Workflow Presentation
PDF
Build WordPress themes like a heavyweight - WordCamp Lancaster 2013
PPTX
The WordPress REST API as a Springboard for Website Greatness
KEY
jQuery Conference Boston 2011 CouchApps
III - Better angularjs
IV - CSS architecture
I - Front-end Spectrum
II - Angular.js app structure
WordCamp Sheffield 2014 Theme Workflow Presentation
Build WordPress themes like a heavyweight - WordCamp Lancaster 2013
The WordPress REST API as a Springboard for Website Greatness
jQuery Conference Boston 2011 CouchApps

What's hot (20)

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

Viewers also liked (10)

PDF
II - Build Automation
DOCX
An over view on spider silk
PPT
Spider Silk
PDF
Web Design Trends for 2014
PPT
Spider silk
PDF
Modern Web Development
PPTX
PPT
Web Development on Web Project Presentation
KEY
Web Design 101
PDF
Fundamentals of Web Development For Non-Developers
II - Build Automation
An over view on spider silk
Spider Silk
Web Design Trends for 2014
Spider silk
Modern Web Development
Web Development on Web Project Presentation
Web Design 101
Fundamentals of Web Development For Non-Developers
Ad

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

PDF
PhoneGap/Cordova
PDF
WordCamp Belfast DevOps for Beginners
PPTX
An introduction to html5 by Devs
PPTX
Javascript mvc
PDF
Svelte the future of frontend development
PPTX
Frontend Workflow
PDF
Java Web Start czyli jak żyć z tą dziwną technologią & Continuous Delivery w ...
PDF
Offline of web applications
PDF
Offline for web - Frontend Dev Conf Minsk 2014
PPTX
Conquering Gef Part2: Building graphical web-apps with Eclipse
PPTX
What Visual Studio Code can do for Java Development
PDF
Echo HTML5
PDF
React Native and the future of web technology (Mark Wilcox) - GreeceJS #15
PDF
Jon Arne Sæterås - Give Responsive Design a mobile performance boost
PDF
Developing FirefoxOS
PDF
Getting started with PhoneGap
ODP
Netbeans65 Osum Slides
PDF
Continuous Integration with Open Source Tools - PHPUgFfm 2014-11-20
PPTX
Lightning branches at RedMart (Js conf Asia 2014 Talk)
PPTX
How we took our server side application to the cloud and liked what we got
PhoneGap/Cordova
WordCamp Belfast DevOps for Beginners
An introduction to html5 by Devs
Javascript mvc
Svelte the future of frontend development
Frontend Workflow
Java Web Start czyli jak żyć z tą dziwną technologią & Continuous Delivery w ...
Offline of web applications
Offline for web - Frontend Dev Conf Minsk 2014
Conquering Gef Part2: Building graphical web-apps with Eclipse
What Visual Studio Code can do for Java Development
Echo HTML5
React Native and the future of web technology (Mark Wilcox) - GreeceJS #15
Jon Arne Sæterås - Give Responsive Design a mobile performance boost
Developing FirefoxOS
Getting started with PhoneGap
Netbeans65 Osum Slides
Continuous Integration with Open Source Tools - PHPUgFfm 2014-11-20
Lightning branches at RedMart (Js conf Asia 2014 Talk)
How we took our server side application to the cloud and liked what we got

Recently uploaded (20)

PDF
madgavkar20181017ppt McKinsey Presentation.pdf
PDF
NewMind AI Weekly Chronicles - August'25 Week I
PDF
Smarter Business Operations Powered by IoT Remote Monitoring
PDF
CIFDAQ's Token Spotlight: SKY - A Forgotten Giant's Comeback?
PDF
CIFDAQ's Market Wrap: Ethereum Leads, Bitcoin Lags, Institutions Shift
PDF
Google’s NotebookLM Unveils Video Overviews
PDF
Dell Pro 14 Plus: Be better prepared for what’s coming
PDF
Shreyas Phanse Resume: Experienced Backend Engineer | Java • Spring Boot • Ka...
PDF
solutions_manual_-_materials___processing_in_manufacturing__demargo_.pdf
PDF
Reimagining Insurance: Connected Data for Confident Decisions.pdf
PPTX
Comunidade Salesforce São Paulo - Desmistificando o Omnistudio (Vlocity)
PDF
KodekX | Application Modernization Development
PDF
REPORT: Heating appliances market in Poland 2024
PDF
Top Generative AI Tools for Patent Drafting in 2025.pdf
PPTX
Understanding_Digital_Forensics_Presentation.pptx
PPTX
breach-and-attack-simulation-cybersecurity-india-chennai-defenderrabbit-2025....
PPTX
How to Build Crypto Derivative Exchanges from Scratch.pptx
PDF
GamePlan Trading System Review: Professional Trader's Honest Take
PDF
Peak of Data & AI Encore- AI for Metadata and Smarter Workflows
PDF
Transforming Manufacturing operations through Intelligent Integrations
madgavkar20181017ppt McKinsey Presentation.pdf
NewMind AI Weekly Chronicles - August'25 Week I
Smarter Business Operations Powered by IoT Remote Monitoring
CIFDAQ's Token Spotlight: SKY - A Forgotten Giant's Comeback?
CIFDAQ's Market Wrap: Ethereum Leads, Bitcoin Lags, Institutions Shift
Google’s NotebookLM Unveils Video Overviews
Dell Pro 14 Plus: Be better prepared for what’s coming
Shreyas Phanse Resume: Experienced Backend Engineer | Java • Spring Boot • Ka...
solutions_manual_-_materials___processing_in_manufacturing__demargo_.pdf
Reimagining Insurance: Connected Data for Confident Decisions.pdf
Comunidade Salesforce São Paulo - Desmistificando o Omnistudio (Vlocity)
KodekX | Application Modernization Development
REPORT: Heating appliances market in Poland 2024
Top Generative AI Tools for Patent Drafting in 2025.pdf
Understanding_Digital_Forensics_Presentation.pptx
breach-and-attack-simulation-cybersecurity-india-chennai-defenderrabbit-2025....
How to Build Crypto Derivative Exchanges from Scratch.pptx
GamePlan Trading System Review: Professional Trader's Honest Take
Peak of Data & AI Encore- AI for Metadata and Smarter Workflows
Transforming Manufacturing operations through Intelligent Integrations

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