SlideShare a Scribd company logo
Modern workflows for JavaScript integration
x

@mitemitreski
blog.mitemitreski.com
Application that can be written in JavaScript,
will eventually be written in JavaScript.
- Atwood’s Law ( Jeff Atwood aka @codinghorror)
Java2day 2013 : Modern workflows for javascript integration
Java2day 2013 : Modern workflows for javascript integration
Java2day 2013 : Modern workflows for javascript integration
How do we manage dependencies?
●
●
●
●

Don’t manage them
Just use copy/paste
Obey the framework’s preferred way
Use a build tool
Web Jars
<dependency>
<groupId>org.webjars</groupId>
<artifactId>jquery</artifactId>
<version>1.8.2</version>
</dependency>
compile 'org.webjars:jquery:1.8.2'
Tools tools and more tools
Successful programmers are ?
A. Lazy
B. Dumb
C. All above
D. None
What are you doing to save time?
Pick tools that you will use
Yeoman.io

Tooling workflow for modern JavaScript development
Toolset
● Think of ANT, Maven, Make, Gradle …
● Huge ecosystem
● 1800 + plugins
Gruntfile.js
module.exports = function(grunt) {
grunt.initConfig({
concat: {
options: {
separator: ';'
},
dist: {
src: ['src/**/*.js'],
dest: 'dist/<%= pkg.name %>.js'
}
},
watch: {
files: ['<%= jshint.files %>'],
tasks: ['jshint', 'qunit']
}
});
}
What’s running the JS?
Package.json
{
"name": "temp",
"version": "0.0.0",
"dependencies": {},
"devDependencies": {
"grunt": "~0.4.1",
"grunt-autoprefixer": "~0.4.0",
"karma": "~0.10.6",
"karma-ng-html2js-preprocessor": "~0.1.0"
},
"engines": {
"node": ">=0.8.0"
}
..}
How are the frontend libs managed?
● Runs over Git
● 5000 + packages
● Flat hierarchy
Bower.json
{
"name": "myapp",
"version": "0.0.0",
"dependencies": {
"sass-bootstrap": "~3.0.0",
"requirejs": "~2.1.8",
"modernizr": "~2.6.2",
"jquery": "~1.10.2"
},
"devDependencies": {}
}
Semantic versioning
MAJOR.MINOR.PATCH (2.3.3)
● MAJOR - backward incompatible
● MINOR - new features backwards
compatible
● PATCH - bugfixes, fully compatible
YO
● Workflow and glue code
● Initial project scaffolding
● 400 + generators with a lot subsections
What about tests?
● Karma test runner
○ Reporters
○ Test framework support

● Phantom JS
Demo time
> npm search yeoman-generator
> npm install -g generator-angular
> yo angular
Maven integration

<plugin>
<groupid>org.codehaus.mojo
</groupid>
<artifactid>exec-maven-plugin
</artifactid>
<version>1.2.1</version>

● yeoman-maven-plugin
● maven-exec-plugin

<executions>
<execution>
<id>some-execution
</id>
<phase>compile</phase>
<goals>
<goal>exec</goal>
</goals>

+ some maven-asembly

</execution>
</executions>
<configuration>
<executable>yo</executable>
</configuration>
</plugin>
Links
●
●
●
●
●
●

webjars.org
yeoman.io
gruntjs.com
npmjs.org
karma-runner.github.io
npmjs.org

More Related Content

What's hot (20)

PPTX
Introduction to ReactJs & fundamentals
websyndicate
 
PPTX
React vs Angular: ups & downs (speaker Oleksandr Kovalov, Binary Studio)
Binary Studio
 
PPTX
intro to Angular js
Brian Atkins
 
PPTX
007. Redux middlewares
Binh Quan Duc
 
PDF
JS Chicago Meetup 2/23/16 - Redux & Routes
Nick Dreckshage
 
PDF
React vs angular (mobile first battle)
Michael Haberman
 
PDF
Grunt.js and Yeoman, Continous Integration
David Amend
 
PPTX
GWTcon 2015 - Best development practices for GWT web applications
Arcbees
 
PDF
AWS Lambda with ClaudiaJS
Riza Fahmi
 
PDF
Front end microservices - October 2019
Mikhail Kuznetcov
 
PPTX
Decoupled drupal + vue.js
Eugene Vozniuk
 
PDF
Angular 2 vs React
Iran Reyes Fleitas
 
PDF
Pre rendering media sites with nuxt.js & netlify
nuppla
 
PPT
Grails Connecting to MySQL
ashishkirpan
 
PPTX
An Overview on Nuxt.js
Squash Apps Pvt Ltd
 
PDF
Web view
YAMANE Toshiaki
 
PDF
Vue.jsをはじめる
Reo Mori
 
PPTX
Lazy angular w/ webpack
Rich Snapp
 
PPTX
A Brief Introduction to React.js
Doug Neiner
 
PDF
The Art of Angular in 2016 - Devoxx France 2016
Matt Raible
 
Introduction to ReactJs & fundamentals
websyndicate
 
React vs Angular: ups & downs (speaker Oleksandr Kovalov, Binary Studio)
Binary Studio
 
intro to Angular js
Brian Atkins
 
007. Redux middlewares
Binh Quan Duc
 
JS Chicago Meetup 2/23/16 - Redux & Routes
Nick Dreckshage
 
React vs angular (mobile first battle)
Michael Haberman
 
Grunt.js and Yeoman, Continous Integration
David Amend
 
GWTcon 2015 - Best development practices for GWT web applications
Arcbees
 
AWS Lambda with ClaudiaJS
Riza Fahmi
 
Front end microservices - October 2019
Mikhail Kuznetcov
 
Decoupled drupal + vue.js
Eugene Vozniuk
 
Angular 2 vs React
Iran Reyes Fleitas
 
Pre rendering media sites with nuxt.js & netlify
nuppla
 
Grails Connecting to MySQL
ashishkirpan
 
An Overview on Nuxt.js
Squash Apps Pvt Ltd
 
Web view
YAMANE Toshiaki
 
Vue.jsをはじめる
Reo Mori
 
Lazy angular w/ webpack
Rich Snapp
 
A Brief Introduction to React.js
Doug Neiner
 
The Art of Angular in 2016 - Devoxx France 2016
Matt Raible
 

Viewers also liked (20)

PPT
Hetklasjevancircusnirkus
Webredactie_Zwijsen
 
PDF
Adultlrngarticle2 110322082122-phpapp02 (2)
IMiera
 
PPT
Voorleeskwartierklasjecircus
Webredactie_Zwijsen
 
PDF
istSOS: an extended Sensor Observation Service implementation for Environment...
Massimiliano Cannata
 
PPTX
LESS CSS Processor
sdhoman
 
PDF
Inchiesta risparmiare-in-tempo-di-crisi (1)
Cagliostro Puntodue
 
PPT
Engineers, 3D Objects, and Rhetoric
Tom Burns
 
PPSX
Lcf building life
vinod kumar
 
PPT
Curricularesprimerainf
Carlos Soto
 
PDF
Zone-S
Ellen Holleman
 
XLSX
F 3-2011-1-110623082754-phpapp01
cepmaio
 
PPTX
Croche1
rosemere12
 
PPT
Deep sec talk - Addressing the skills gap
Colin McLean
 
PPTX
ITS Corporate Introduction - HQ in Simi Valley, the heart of Southern Califo...
ITS - Integrated Telemanagement Services, Inc.
 
DOCX
Arquivo 2004 de a a z
cepmaio
 
PDF
Episode 3(1): Cognitive tools for the individual - Meetup session 9
William Hall
 
PPTX
Me n pia
Shweta Chaturvedi
 
PPT
Tugas Psikologi Sosial Terapan, Htmansystem: From Lossy to Glossy
vj_brian
 
PDF
Archivo de-educacion
Cornelio Ramos Mondragon
 
Hetklasjevancircusnirkus
Webredactie_Zwijsen
 
Adultlrngarticle2 110322082122-phpapp02 (2)
IMiera
 
Voorleeskwartierklasjecircus
Webredactie_Zwijsen
 
istSOS: an extended Sensor Observation Service implementation for Environment...
Massimiliano Cannata
 
LESS CSS Processor
sdhoman
 
Inchiesta risparmiare-in-tempo-di-crisi (1)
Cagliostro Puntodue
 
Engineers, 3D Objects, and Rhetoric
Tom Burns
 
Lcf building life
vinod kumar
 
Curricularesprimerainf
Carlos Soto
 
F 3-2011-1-110623082754-phpapp01
cepmaio
 
Croche1
rosemere12
 
Deep sec talk - Addressing the skills gap
Colin McLean
 
ITS Corporate Introduction - HQ in Simi Valley, the heart of Southern Califo...
ITS - Integrated Telemanagement Services, Inc.
 
Arquivo 2004 de a a z
cepmaio
 
Episode 3(1): Cognitive tools for the individual - Meetup session 9
William Hall
 
Tugas Psikologi Sosial Terapan, Htmansystem: From Lossy to Glossy
vj_brian
 
Archivo de-educacion
Cornelio Ramos Mondragon
 
Ad

Similar to Java2day 2013 : Modern workflows for javascript integration (20)

PDF
Full Stack React Workshop [CSSC x GDSC]
GDSC UofT Mississauga
 
PDF
Android Jump Start
Haim Michael
 
PPT
SF JUG - GWT Can Help You Create Amazing Apps - 2009-10-13
Fred Sauer
 
PPTX
Starting with jQuery
Anil Kumar
 
PDF
Android Made Simple
Gabriel Dogaru
 
PPTX
Pain Driven Development by Alexandr Sugak
Sigma Software
 
PPTX
An overview of node.js
valuebound
 
PPT
jQuery and_drupal
BlackCatWeb
 
PDF
Rapid and Reliable Developing with HTML5 & GWT
Manuel Carrasco Moñino
 
PPTX
Web summit.pptx
171SagnikRoy
 
PDF
Delegating user tasks in applications
Friedger Müffke
 
PPT
Google Web Toolkit
Michael Angelo Rivera
 
PDF
Android workshop material
Reza Yogaswara
 
PPT
Integrate Shindig with Joomla
Anand Sharma
 
PPTX
jQuery - the world's most popular java script library comes to XPages
Mark Roden
 
PDF
Real time web
Medhat Dawoud
 
PDF
jQuery: The World's Most Popular JavaScript Library Comes to XPages
Teamstudio
 
PPTX
jQuery Conference Austin Sept 2013
dmethvin
 
ODP
Using WordPress for Rapid Prototyping
Drew Morris
 
PDF
How to create high scalable JavaScript apps for Java Portals
Zeno Rocha
 
Full Stack React Workshop [CSSC x GDSC]
GDSC UofT Mississauga
 
Android Jump Start
Haim Michael
 
SF JUG - GWT Can Help You Create Amazing Apps - 2009-10-13
Fred Sauer
 
Starting with jQuery
Anil Kumar
 
Android Made Simple
Gabriel Dogaru
 
Pain Driven Development by Alexandr Sugak
Sigma Software
 
An overview of node.js
valuebound
 
jQuery and_drupal
BlackCatWeb
 
Rapid and Reliable Developing with HTML5 & GWT
Manuel Carrasco Moñino
 
Web summit.pptx
171SagnikRoy
 
Delegating user tasks in applications
Friedger Müffke
 
Google Web Toolkit
Michael Angelo Rivera
 
Android workshop material
Reza Yogaswara
 
Integrate Shindig with Joomla
Anand Sharma
 
jQuery - the world's most popular java script library comes to XPages
Mark Roden
 
Real time web
Medhat Dawoud
 
jQuery: The World's Most Popular JavaScript Library Comes to XPages
Teamstudio
 
jQuery Conference Austin Sept 2013
dmethvin
 
Using WordPress for Rapid Prototyping
Drew Morris
 
How to create high scalable JavaScript apps for Java Portals
Zeno Rocha
 
Ad

More from Mite Mitreski (9)

PDF
Getting all the 99.99(9) you always wanted
Mite Mitreski
 
PDF
The core libraries you always wanted - Google Guava
Mite Mitreski
 
PDF
Micro service pitfalls voxxed days istanbul 2015
Mite Mitreski
 
PDF
Devoxx 2014 : Sparky guide to bug free JavaScirpt
Mite Mitreski
 
PDF
Microservice pitfalls
Mite Mitreski
 
PDF
Unix for developers
Mite Mitreski
 
PDF
State of the lambda
Mite Mitreski
 
PDF
Google Guava for cleaner code
Mite Mitreski
 
PDF
Eclipse 10 years Party
Mite Mitreski
 
Getting all the 99.99(9) you always wanted
Mite Mitreski
 
The core libraries you always wanted - Google Guava
Mite Mitreski
 
Micro service pitfalls voxxed days istanbul 2015
Mite Mitreski
 
Devoxx 2014 : Sparky guide to bug free JavaScirpt
Mite Mitreski
 
Microservice pitfalls
Mite Mitreski
 
Unix for developers
Mite Mitreski
 
State of the lambda
Mite Mitreski
 
Google Guava for cleaner code
Mite Mitreski
 
Eclipse 10 years Party
Mite Mitreski
 

Recently uploaded (20)

PPTX
From Sci-Fi to Reality: Exploring AI Evolution
Svetlana Meissner
 
PPTX
Mastering ODC + Okta Configuration - Chennai OSUG
HathiMaryA
 
PPTX
New ThousandEyes Product Innovations: Cisco Live June 2025
ThousandEyes
 
PDF
SIZING YOUR AIR CONDITIONER---A PRACTICAL GUIDE.pdf
Muhammad Rizwan Akram
 
PPTX
Future Tech Innovations 2025 – A TechLists Insight
TechLists
 
PDF
UPDF - AI PDF Editor & Converter Key Features
DealFuel
 
PDF
Transforming Utility Networks: Large-scale Data Migrations with FME
Safe Software
 
PDF
What’s my job again? Slides from Mark Simos talk at 2025 Tampa BSides
Mark Simos
 
PDF
ICONIQ State of AI Report 2025 - The Builder's Playbook
Razin Mustafiz
 
PDF
“Voice Interfaces on a Budget: Building Real-time Speech Recognition on Low-c...
Edge AI and Vision Alliance
 
PDF
NLJUG Speaker academy 2025 - first session
Bert Jan Schrijver
 
PDF
🚀 Let’s Build Our First Slack Workflow! 🔧.pdf
SanjeetMishra29
 
PDF
“Squinting Vision Pipelines: Detecting and Correcting Errors in Vision Models...
Edge AI and Vision Alliance
 
PDF
Bitcoin for Millennials podcast with Bram, Power Laws of Bitcoin
Stephen Perrenod
 
PDF
Kit-Works Team Study_20250627_한달만에만든사내서비스키링(양다윗).pdf
Wonjun Hwang
 
PPTX
The Project Compass - GDG on Campus MSIT
dscmsitkol
 
PPTX
Digital Circuits, important subject in CS
contactparinay1
 
PPTX
MuleSoft MCP Support (Model Context Protocol) and Use Case Demo
shyamraj55
 
PDF
POV_ Why Enterprises Need to Find Value in ZERO.pdf
darshakparmar
 
PDF
Staying Human in a Machine- Accelerated World
Catalin Jora
 
From Sci-Fi to Reality: Exploring AI Evolution
Svetlana Meissner
 
Mastering ODC + Okta Configuration - Chennai OSUG
HathiMaryA
 
New ThousandEyes Product Innovations: Cisco Live June 2025
ThousandEyes
 
SIZING YOUR AIR CONDITIONER---A PRACTICAL GUIDE.pdf
Muhammad Rizwan Akram
 
Future Tech Innovations 2025 – A TechLists Insight
TechLists
 
UPDF - AI PDF Editor & Converter Key Features
DealFuel
 
Transforming Utility Networks: Large-scale Data Migrations with FME
Safe Software
 
What’s my job again? Slides from Mark Simos talk at 2025 Tampa BSides
Mark Simos
 
ICONIQ State of AI Report 2025 - The Builder's Playbook
Razin Mustafiz
 
“Voice Interfaces on a Budget: Building Real-time Speech Recognition on Low-c...
Edge AI and Vision Alliance
 
NLJUG Speaker academy 2025 - first session
Bert Jan Schrijver
 
🚀 Let’s Build Our First Slack Workflow! 🔧.pdf
SanjeetMishra29
 
“Squinting Vision Pipelines: Detecting and Correcting Errors in Vision Models...
Edge AI and Vision Alliance
 
Bitcoin for Millennials podcast with Bram, Power Laws of Bitcoin
Stephen Perrenod
 
Kit-Works Team Study_20250627_한달만에만든사내서비스키링(양다윗).pdf
Wonjun Hwang
 
The Project Compass - GDG on Campus MSIT
dscmsitkol
 
Digital Circuits, important subject in CS
contactparinay1
 
MuleSoft MCP Support (Model Context Protocol) and Use Case Demo
shyamraj55
 
POV_ Why Enterprises Need to Find Value in ZERO.pdf
darshakparmar
 
Staying Human in a Machine- Accelerated World
Catalin Jora
 

Java2day 2013 : Modern workflows for javascript integration