SlideShare a Scribd company logo
MODERN
WEB APPLICATION
DEVELOPMENT
WORKFLOW
FIRST, LET’S LOOK
AT THE PAST
Modern Web Application Development Workflow - EclipseCon Europe 2014
THROW A BUNCH OF HTMLFILES
THROW A BUNCH OF HTMLFILES
ADD A COUPLE OF CSSFILES
THROW A BUNCH OF HTMLFILES
ADD A COUPLE OF CSSFILES
PUT SOME JAVASCRIPTIN ALL THIS
THROW A BUNCH OF HTMLFILES
ADD A COUPLE OF CSSFILES
PUT SOME JAVASCRIPTIN ALL THIS
AND CALL IT A DAY...
COME BACK 6MONTHS LATER
AND TRY TO REMEMBER HOW TO
MAINTAIN YOUR CODE
Modern Web Application Development Workflow - EclipseCon Europe 2014
Modern Web Application Development Workflow - EclipseCon Europe 2014
Modern Web Application Development Workflow - EclipseCon Europe 2014
Node.js
≠
Server-side JavaScript
Node.js
stand alone JavaScript runtime
Node.js
stand alone JavaScript runtime
using v8, Chrome’s JavaScript engine
Node.js
stand alone JavaScript applications
Node.js
stand alone JavaScript applications
created by JavaScript developers
Node.js
stand alone JavaScript applications
created by JavaScript developers
for JavaScript developers
BRAND NEW WORLD
JAVASCRIPT
DEVELOPMENT
TOOLS
JAVASCRIPT
DEVELOPMENT
WORKFLOW
A GOOD
DEVELOPMENT
WORKFLOW
-HELPS YOU GET STARTED
A GOOD
DEVELOPMENT
WORKFLOW
-HELPS YOU GET STARTED
-MAINTAINS YOUR DEPENDENCIES
A GOOD
DEVELOPMENT
WORKFLOW
-HELPS YOU GET STARTED
-MAINTAINS YOUR DEPENDENCIES
-ENFORCES BEST PRACTICES
A GOOD
DEVELOPMENT
WORKFLOW
-HELPS YOU GET STARTED
-MAINTAINS YOUR DEPENDENCIES
-ENFORCES BEST PRACTICES
-PREPARES YOUR TOOLS
A GOOD
DEVELOPMENT
WORKFLOW
-HELPS YOU GET STARTED
-MAINTAINS YOUR DEPENDENCIES
-ENFORCES BEST PRACTICES
-PREPARES YOUR TOOLS
-FIGHTS REGRESSIONS
A GOOD
DEVELOPMENT
WORKFLOW
-HELPS YOU GET STARTED
-MAINTAINS YOUR DEPENDENCIES
-ENFORCES BEST PRACTICES
-PREPARES YOUR TOOLS
-FIGHTS REGRESSIONS
-EASES THE RELEASE PROCESS
scaffolding
dependency
management
build
build tasks
orion
eclipse
HOW TO GET STARTED?
Modern Web Application Development Workflow - EclipseCon Europe 2014
YEOMAN
Born in 2012
Various contributors (Employees from
Google, Twitter, etc)
YEOMAN scaffolding
- structure
- compilation
- static analysis
- dependencies management
- development tools
- unit testing
YEOMAN download
> npm install -g yo
“-g” global install
YEOMAN
Various generators:
○ Angular
○ Ember
○ Backbone
And all the other popular frameworks...
YEOMANangular.js generator
> npm install -g generator-angular
YEOMANcreate an Angular project
> yo angular
Select some dependencies
Choose some options
It creates the project
It downloads half of the internet
It uses some dark magic
Enjoy the view, Yeoman takes care of
everything…
What does the result look like?
STRUCTURE
CONTENT
DEPENDENCIES
DEV TOOLS
IT’S MAGIC!
and it will be your job to maintain it...
HAPPY?
BUT HOW DOES IT WORK?
scaffolding
dependency
management
build
build tasks
orion
eclipse
YEOMAN HAS FRIENDS
BOWER
Modern Web Application Development Workflow - EclipseCon Europe 2014
GRUNT
Modern Web Application Development Workflow - EclipseCon Europe 2014
GULP
Modern Web Application Development Workflow - EclipseCon Europe 2014
AND
OTHERS
DEPENDENCIES
MANAGEMENT
BOWER
Modern Web Application Development Workflow - EclipseCon Europe 2014
BOWER
Package manager for the web
Born in 2012
Created by Twitter and other contributors
over time
BOWER Download
> npm install -g bower
Find a package: bower search
Find more information: bower info
BOWER Add a specific dependency
> bower install jquery#1.10.2 --save
install jquery and save this new dependency
BOWER
runtime dependencies in bower.json
DEPENDENCIES
BOWER Add all your dependencies
> bower install
See your dependencies: bower list
BOWER
Package management always comes with its
set of problems:
BOWER
Package management always comes with its
set of problems:
- how can I create a new package?
BOWER
Package management always comes with its
set of problems:
- how can I create a new package?
- how can I host a bower repository?
Create a bower package: bower init
BOWER Use bower with Git
> bower install https://myrepository.git
BOWER Host multiple versions
> git tag -a 1.4 -m 'version 1.4'
> bower install https://myrepository.git#1.4
BOWER Download
> bower install jquery
> bower install git://github.com/jquery/jquery.git
BOWER Registry
https://github.com/bower/registry
A simple web server listing Git repository URLs
BOWER Register
> bower register myrepository https://…git
> bower install myrepository
scaffolding
dependency
management
build
build tasks
orion
eclipse
BUILD
Modern Web Application Development Workflow - EclipseCon Europe 2014
GRUNT GULP
CONFIGURATION
GULP
CODE
GRUNT
EQUALLY
POWERFUL
GRUNT is a bit older so its
ECOSYSTEM is more mature
Grunt and Gulp
development tools dependencies in package.json
>npm install
DEV TOOLS
GRUNT
Modern Web Application Development Workflow - EclipseCon Europe 2014
GRUNTconfiguration over code
grunt.initConfig({
lint: {
src: 'src/<%= pkg.name %>.js'
},
concat: {
src: [
'<banner:meta.banner>' ,
'<file_strip_banner:src/<%= pkg.name %>.js>'
],
dest: '<%= pkg.name %>.js'
}
});
GRUNT
Configuration in Gruntfile.js
GRUNT
Global install before Grunt 0.4
Updating Grunt cannot break existing projects
anymore
GRUNTgruntfile.js structure
3 parts:
-Task loading
-Task configuration
-Task registration
GRUNT
An example: Static code analysis with JSHINT
GRUNT
HOW DO YOU USE IT?
>grunt
>grunt jshint:all
GULP
Modern Web Application Development Workflow - EclipseCon Europe 2014
GULP code over configuration
gulp.src('src/main.mycss' )
.pipe(stylus())
.pipe(rename({ ext: 'css' }))
.pipe(autoprefixer())
.pipe(cssmin())
.pipe(header( '/* All Right Reserved */' ))
.pipe(gulp.dest( 'dist'))
GULP
Configuration in Gulpfile.js
GULPgulpfile.js structure
3 parts:
- task loading
- task configuration
- task registration
GULP
GULPdifferences with Grunt
node.js streams (asynchronous by nature)
nice and simple api
less IO operations
scaffolding
dependency
management
build
build tasks
orion
eclipse
BUILD TASKS
STATIC ANALYSIS
grunt-contrib-jshint
gulp-jshint
Detect coding errors in your JavaScript files
STATIC ANALYSIS
Various style of reports (checkstyle, html, etc)
Configuration in .jshtinrc
MINIFICATION
grunt-contrib-uglify
gulp-uglify
Reduce the size of JavaScript files
CSS TRIMMING
grunt-uncss
gulp-uncss-task
Remove unused CSS rules
TESTING
Frameworks: Jasmine & QUnit
Runner: Karma
Code Coverage: Istanbul
LIVE RELOAD
grunt-contrib-watch
gulp-livereload
Reload automatically the web application if
some files have been changed
init
concat
jshint
min
unit
server
endtoend
watch
WORKFLOW
scaffolding
dependency
management
build
build tasks
orion
eclipse
Modern Web Application Development Workflow - EclipseCon Europe 2014
Orion
Eclipse project
Introduced in 2011 in the Eclipse Foundation
Orion
Two versions: Jetty or Node.js
Orion
npm install orion
node node_modules/orion/server.js
/projectpath
Modern Web Application Development Workflow - EclipseCon Europe 2014
PROJECTS
MANAGEMENT
Modern Web Application Development Workflow - EclipseCon Europe 2014
EDITOR
Modern Web Application Development Workflow - EclipseCon Europe 2014
Modern Web Application Development Workflow - EclipseCon Europe 2014
FIRST CLASS
GIT SUPPORT
Modern Web Application Development Workflow - EclipseCon Europe 2014
Modern Web Application Development Workflow - EclipseCon Europe 2014
Modern Web Application Development Workflow - EclipseCon Europe 2014
Modern Web Application Development Workflow - EclipseCon Europe 2014
SEARCH
Modern Web Application Development Workflow - EclipseCon Europe 2014
PLUGINS
Modern Web Application Development Workflow - EclipseCon Europe 2014
Modern Web Application Development Workflow - EclipseCon Europe 2014
Modern Web Application Development Workflow - EclipseCon Europe 2014
Modern Web Application Development Workflow - EclipseCon Europe 2014
READY TO
DEPLOY
Modern Web Application Development Workflow - EclipseCon Europe 2014
Modern Web Application Development Workflow - EclipseCon Europe 2014
scaffolding
dependency
management
build
build tasks
orion
eclipse
WHAT ABOUT
ECLIPSE?
Back-end
Lot of tooling for Java development
Jetty, EclipseLink, Webtools, etc
Front-end
...
WHAT ABOUT
OTHERS?
Modern Web Application Development Workflow - EclipseCon Europe 2014
Modern Web Application Development Workflow - EclipseCon Europe 2014
Modern Web Application Development Workflow - EclipseCon Europe 2014
Front-end
It’s time to contribute!
Modern Web Application Development Workflow - EclipseCon Europe 2014
Modern Web Application Development Workflow - EclipseCon Europe 2014
Modern Web Application Development Workflow - EclipseCon Europe 2014
Modern Web Application Development Workflow - EclipseCon Europe 2014
TO SUM UP
THANKS!
Stéphane Bégaudeau
Twitter: @sbegaudeau
Google+: +stephane.begaudeau
The research leading to these results has received funding from the European Union’s Seventh Framework Program (FP7/2007-2013) for CRYSTAL
– Critical System Engineering Acceleration Joint Undertaking under grant agreement № 332830 and from specific national programs and/or funding
authorities.

More Related Content

What's hot (20)

PPTX
Angular js PPT
Imtiyaz Ahmad Khan
 
PPTX
Introduction to Angularjs
Manish Shekhawat
 
PDF
Angularjs architecture
Michael He
 
PDF
Angular js
Knoldus Inc.
 
PDF
AngularJS - What is it & Why is it awesome ? (with demos)
Gary Arora
 
PDF
Angularjs - lazy loading techniques
Nir Kaufman
 
PPTX
The AngularJS way
Boyan Mihaylov
 
PPTX
5 angularjs features
Alexey (Mr_Mig) Migutsky
 
PPTX
Getting Started with Angular JS
Akshay Mathur
 
PDF
Introduction to AngularJS
Jussi Pohjolainen
 
PDF
AngularJS Best Practices
Betclic Everest Group Tech Team
 
PPTX
Angular js
Manav Prasad
 
PPTX
Introduction to single page application with angular js
Mindfire Solutions
 
KEY
AngularJS for designers and developers
Kai Koenig
 
PDF
Introduction to AngularJS
Aldo Pizzagalli
 
PDF
Building a Startup Stack with AngularJS
FITC
 
PPTX
Angular JS - Introduction
Sagar Acharya
 
PPTX
AngularJS - Architecture decisions in a large project 
Elad Hirsch
 
PDF
Introduction of angular js
Tamer Solieman
 
PPTX
Angular JS
John Temoty Roca
 
Angular js PPT
Imtiyaz Ahmad Khan
 
Introduction to Angularjs
Manish Shekhawat
 
Angularjs architecture
Michael He
 
Angular js
Knoldus Inc.
 
AngularJS - What is it & Why is it awesome ? (with demos)
Gary Arora
 
Angularjs - lazy loading techniques
Nir Kaufman
 
The AngularJS way
Boyan Mihaylov
 
5 angularjs features
Alexey (Mr_Mig) Migutsky
 
Getting Started with Angular JS
Akshay Mathur
 
Introduction to AngularJS
Jussi Pohjolainen
 
AngularJS Best Practices
Betclic Everest Group Tech Team
 
Angular js
Manav Prasad
 
Introduction to single page application with angular js
Mindfire Solutions
 
AngularJS for designers and developers
Kai Koenig
 
Introduction to AngularJS
Aldo Pizzagalli
 
Building a Startup Stack with AngularJS
FITC
 
Angular JS - Introduction
Sagar Acharya
 
AngularJS - Architecture decisions in a large project 
Elad Hirsch
 
Introduction of angular js
Tamer Solieman
 
Angular JS
John Temoty Roca
 

Viewers also liked (6)

PDF
Modern Web Application Development Workflow - EclipseCon France 2014
Stéphane Bégaudeau
 
PDF
AngularJS application architecture
Gabriele Falace
 
PPTX
Single Page Application (SPA) using AngularJS
M R Rony
 
PDF
AngularJS Basics with Example
Sergey Bolshchikov
 
PPTX
AngularJS Architecture
Eyal Vardi
 
PDF
Modern Web Application Development Workflow - EclipseCon US 2014
Stéphane Bégaudeau
 
Modern Web Application Development Workflow - EclipseCon France 2014
Stéphane Bégaudeau
 
AngularJS application architecture
Gabriele Falace
 
Single Page Application (SPA) using AngularJS
M R Rony
 
AngularJS Basics with Example
Sergey Bolshchikov
 
AngularJS Architecture
Eyal Vardi
 
Modern Web Application Development Workflow - EclipseCon US 2014
Stéphane Bégaudeau
 
Ad

Similar to Modern Web Application Development Workflow - EclipseCon Europe 2014 (20)

PDF
Modern Web Application Development Workflow - web2day 2014
Stéphane Bégaudeau
 
PPTX
How to Develop Progressive Web Apps in Flutter – Step by Step Guide.pptx
BOSC Tech Labs
 
PPTX
Frontend Workflow
DelphiCon
 
PDF
The Secrets of The FullStack Ninja - Part A - Session I
Oded Sagir
 
PDF
Cool like a Frontend Developer: Grunt, RequireJS, Bower and other Tools
Ryan Weaver
 
PDF
5 年後還是新手 - WordPress Plugin 開發大冒險 - GOTY
William Chong
 
PDF
Frontend Build Tools - CC FE & UX
JWORKS powered by Ordina
 
PDF
Java Web Start czyli jak żyć z tą dziwną technologią & Continuous Delivery w ...
MarcinStachniuk
 
PDF
Front end workflow with yeoman
hassan hafez
 
PDF
Modernizing Your WordPress Workflow with Grunt & Bower
Alan Crissey
 
PDF
WordCamp Atlanta - April 15 2018 - dev team workflow and processes with word...
Evan Mullins
 
PDF
Magento 2 Development
Duke Dao
 
PDF
20130528 solution linux_frousseau_nopain_webdev
Frank Rousseau
 
PPTX
Automated Development Workflow with Gulp
plewicki
 
PDF
Hosting Your Own OTA Update Service
Quinlan Jung
 
PPTX
Node JS Express : Steps to Create Restful Web App
Edureka!
 
PDF
Grunt, Gulp & fabs: Build Systems and Development-Workflow for Modern Web-App...
Philipp Burgmer
 
PDF
OSDC.no 2015 introduction to node.js workshop
leffen
 
PDF
Quest for the Perfect Workflow for McrFRED
Andi Smith
 
PDF
Love at first Vue
Dalibor Gogic
 
Modern Web Application Development Workflow - web2day 2014
Stéphane Bégaudeau
 
How to Develop Progressive Web Apps in Flutter – Step by Step Guide.pptx
BOSC Tech Labs
 
Frontend Workflow
DelphiCon
 
The Secrets of The FullStack Ninja - Part A - Session I
Oded Sagir
 
Cool like a Frontend Developer: Grunt, RequireJS, Bower and other Tools
Ryan Weaver
 
5 年後還是新手 - WordPress Plugin 開發大冒險 - GOTY
William Chong
 
Frontend Build Tools - CC FE & UX
JWORKS powered by Ordina
 
Java Web Start czyli jak żyć z tą dziwną technologią & Continuous Delivery w ...
MarcinStachniuk
 
Front end workflow with yeoman
hassan hafez
 
Modernizing Your WordPress Workflow with Grunt & Bower
Alan Crissey
 
WordCamp Atlanta - April 15 2018 - dev team workflow and processes with word...
Evan Mullins
 
Magento 2 Development
Duke Dao
 
20130528 solution linux_frousseau_nopain_webdev
Frank Rousseau
 
Automated Development Workflow with Gulp
plewicki
 
Hosting Your Own OTA Update Service
Quinlan Jung
 
Node JS Express : Steps to Create Restful Web App
Edureka!
 
Grunt, Gulp & fabs: Build Systems and Development-Workflow for Modern Web-App...
Philipp Burgmer
 
OSDC.no 2015 introduction to node.js workshop
leffen
 
Quest for the Perfect Workflow for McrFRED
Andi Smith
 
Love at first Vue
Dalibor Gogic
 
Ad

Recently uploaded (20)

PDF
Brief History of Internet - Early Days of Internet
sutharharshit158
 
PDF
How ETL Control Logic Keeps Your Pipelines Safe and Reliable.pdf
Stryv Solutions Pvt. Ltd.
 
PDF
A Strategic Analysis of the MVNO Wave in Emerging Markets.pdf
IPLOOK Networks
 
PDF
Market Insight : ETH Dominance Returns
CIFDAQ
 
PPTX
Agile Chennai 18-19 July 2025 | Workshop - Enhancing Agile Collaboration with...
AgileNetwork
 
PDF
Research-Fundamentals-and-Topic-Development.pdf
ayesha butalia
 
PDF
Trying to figure out MCP by actually building an app from scratch with open s...
Julien SIMON
 
PDF
RAT Builders - How to Catch Them All [DeepSec 2024]
malmoeb
 
PDF
Generative AI vs Predictive AI-The Ultimate Comparison Guide
Lily Clark
 
PDF
Researching The Best Chat SDK Providers in 2025
Ray Fields
 
PDF
State-Dependent Conformal Perception Bounds for Neuro-Symbolic Verification
Ivan Ruchkin
 
PDF
The Future of Mobile Is Context-Aware—Are You Ready?
iProgrammer Solutions Private Limited
 
PDF
How Open Source Changed My Career by abdelrahman ismail
a0m0rajab1
 
PPTX
IT Runs Better with ThousandEyes AI-driven Assurance
ThousandEyes
 
PDF
MASTERDECK GRAPHSUMMIT SYDNEY (Public).pdf
Neo4j
 
PPTX
Introduction to Flutter by Ayush Desai.pptx
ayushdesai204
 
PDF
Presentation about Hardware and Software in Computer
snehamodhawadiya
 
PDF
OFFOFFBOX™ – A New Era for African Film | Startup Presentation
ambaicciwalkerbrian
 
PPTX
Agile Chennai 18-19 July 2025 Ideathon | AI Powered Microfinance Literacy Gui...
AgileNetwork
 
PDF
Build with AI and GDG Cloud Bydgoszcz- ADK .pdf
jaroslawgajewski1
 
Brief History of Internet - Early Days of Internet
sutharharshit158
 
How ETL Control Logic Keeps Your Pipelines Safe and Reliable.pdf
Stryv Solutions Pvt. Ltd.
 
A Strategic Analysis of the MVNO Wave in Emerging Markets.pdf
IPLOOK Networks
 
Market Insight : ETH Dominance Returns
CIFDAQ
 
Agile Chennai 18-19 July 2025 | Workshop - Enhancing Agile Collaboration with...
AgileNetwork
 
Research-Fundamentals-and-Topic-Development.pdf
ayesha butalia
 
Trying to figure out MCP by actually building an app from scratch with open s...
Julien SIMON
 
RAT Builders - How to Catch Them All [DeepSec 2024]
malmoeb
 
Generative AI vs Predictive AI-The Ultimate Comparison Guide
Lily Clark
 
Researching The Best Chat SDK Providers in 2025
Ray Fields
 
State-Dependent Conformal Perception Bounds for Neuro-Symbolic Verification
Ivan Ruchkin
 
The Future of Mobile Is Context-Aware—Are You Ready?
iProgrammer Solutions Private Limited
 
How Open Source Changed My Career by abdelrahman ismail
a0m0rajab1
 
IT Runs Better with ThousandEyes AI-driven Assurance
ThousandEyes
 
MASTERDECK GRAPHSUMMIT SYDNEY (Public).pdf
Neo4j
 
Introduction to Flutter by Ayush Desai.pptx
ayushdesai204
 
Presentation about Hardware and Software in Computer
snehamodhawadiya
 
OFFOFFBOX™ – A New Era for African Film | Startup Presentation
ambaicciwalkerbrian
 
Agile Chennai 18-19 July 2025 Ideathon | AI Powered Microfinance Literacy Gui...
AgileNetwork
 
Build with AI and GDG Cloud Bydgoszcz- ADK .pdf
jaroslawgajewski1
 

Modern Web Application Development Workflow - EclipseCon Europe 2014