SlideShare a Scribd company logo
Front End Development for Back End Developers
October 25, 2017 #vjug24
Matt Raible ¡ @mraible
Blogger on raibledesigns.com
Web Developer and Java Champion
Father, Skier, Mountain Biker,
Whitewater Rafter
Open Source Connoisseur
Who is Matt Raible?
Bus Lover
Okta Developer Advocate
Front End Development for Back End Developers - vJUG24 2017
Front End Development for Back End Developers - vJUG24 2017
Front End Development for Back End Developers - vJUG24 2017
developer.okta.com
Authentication Standards
OAuth 2.0 Overview
Today’s Agenda
JavaScript / TypeScript

Build Tools

JavaScript Frameworks

CSS

Progressive Web Apps

JHipster
My Web Dev Journey
What is modern front end development?
Web Frameworks Over the Years
https://github.com/mraible/history-of-web-frameworks-timeline
JavaScript Framework Explosion
Front End Development for Back End Developers - vJUG24 2017
Front End Development for Back End Developers - vJUG24 2017
Let’s do some learning!
ES6, ES7 and TypeScript
ES5: es5.github.io 

ES6: git.io/es6features 

ES7: bit.ly/es7features

TS: www.typescriptlang.org
TSES7ES6ES5
http://caniuse.com/#search=es5
http://caniuse.com/#search=es6
TypeScript
$ npm install -g typescript
function greeter(person: string) {

return "Hello, " + person;

}



var user = "Jane User";



document.body.innerHTML = greeter(user);
$ tsc greeter.ts
https://www.typescriptlang.org/docs/tutorial.html
bus.ts
TypeScript 2.3
“Node.js is a JavaScript runtime built on Chrome's V8
JavaScript engine. Node.js uses an event-driven, non-
blocking I/O model that makes it lightweight and
ecient. Node.js' package ecosystem, npm, is the
largest ecosystem of open source libraries in the world.”
https://nodejs.org
https://github.com/creationix/nvm
Front End Build Tools
Old School: Gulp

New School: SystemJS

Hip: Webpack

Web Dependencies:

Old School: Bower

New School: npm

Hip: yarn
Yeoman
The web's scaffolding tool for modern webapps

Helps you kickstart new projects

Promotes the Yeoman workflow
yeoman.io
Browsersync browsersync.io
Gulp
gulp.task('serve', function() {
browserSync.init({
server: './app'
});
gulp.watch(['app/**/*.js', 'app/**/*.css', 'app/**/*.html'])
.on('change', browserSync.reload);
});
Webpack
Write and Bundle
// bar.js
export default function bar() {
// code here
}
// app.js
import bar from './bar';
bar();
// webpack.config.js
module.exports = {
entry: './app.js',
output: {
filename: 'bundle.js'
}
}
<!-- index.html -->
<html>
<head>
...
</head>
<body>
...
<script src="bundle.js"></script>
</body>
</html>
webpack.cong.js
module.exports = {
entry: './src/app.js',
output: {
path: __dirname + '/src/main/webapp/public',
filename: 'bundle.js'
},
module: {
loaders: [
{
test: /.js$/,
loader: 'babel',
exclude: /node_modules/,
query: {
presets: ['es2015', 'react']
}
}
]
}
};
webpack.academy
https://xkcd.com/303/
Leading JavaScript Frameworks in 2017
angular.io
facebook.github.io/react
vuejs.org
Front End Development for Back End Developers - vJUG24 2017
Front End Development for Back End Developers - vJUG24 2017
@spring_io
#springio17
Jobs on Indeed
October 2017
0
2,000
4,000
6,000
8,000
Angular Backbone Ember Knockout Polymer React Vue
@spring_io
#springio17
Stack Overflow Tags
October 2017
0
20,000
40,000
60,000
80,000
Angular Backbone Knockout Ember Polymer React Vue
Stack Overflow Trends
https://stackoverflow.blog/2017/05/09/introducing-stack-overflow-trends
@spring_io
#springio17
GitHub Stars
October
0
20,000
40,000
60,000
80,000
Angular Backbone Knockout Ember Polymer React Vue
@spring_io
#springio17
GitHub Star Growth
Hello World with Angular
import { Component } from '@angular/core';
@Component({
selector: 'my-app',
template: `<h1>Hello {{name}}</h1>`
})
export class AppComponent {
name = 'World';
}
<my-app></my-app>
https://angular.io/guide/quickstart
Hello World with Angular
import { BrowserModule } from '@angular/platform-browser';
import { NgModule } from '@angular/core';
import { FormsModule } from '@angular/forms';
import { HttpModule } from '@angular/http';
import { AppComponent } from './app.component';
@NgModule({
declarations: [
AppComponent
],
imports: [
BrowserModule,
FormsModule,
HttpModule
],
providers: [],
bootstrap: [AppComponent]
})
export class AppModule { }
Hello World with Angular
import { enableProdMode } from '@angular/core';
import { platformBrowserDynamic } from '@angular/platform-browser-dynamic';
import { AppModule } from './app/app.module';
import { environment } from './environments/environment';
if (environment.production) {
enableProdMode();
}
platformBrowserDynamic().bootstrapModule(AppModule);
Front End Development for Back End Developers - vJUG24 2017
Angular CLI
Angular CLI
Front End Development for Back End Developers - vJUG24 2017
Get Started with Angular
Angular QuickStart

https://angular.io/guide/quickstart 

Angular Seed

https://github.com/mgechev/angular-seed

Angular Seed Advanced

https://github.com/NathanWalker/angular-seed-advanced
Angular and Angular CLI Demos
https://github.com/mraible/ng-demo

https://youtu.be/Jq3szz2KOOs
(Building)

https://youtu.be/TksyjxipM4M
(Testing)
Front End Development for Back End Developers - vJUG24 2017
OpenID Connect
https://www.youtube.com/watch?v=Kb56GzQ2pSk
developer.okta.com
developer.okta.com
Ionic Framework
ng-book 2
A comprehensive guide to developing with
Angular 4

Worth all your hard earned $$$

https://www.ng-book.com/2

“Thank you for the awesome book, it's the
bible for Angular.” — Vijay Ganta
Hello World with React
http://codepen.io/gaearon/pen/ZpvBNJ?editors=0100
<div id="root"></div>
<script>
ReactDOM.render(
<h1>Hello, world!</h1>,
document.getElementById('root')
);
</script>
Learning React
https://vimeo.com/213710634
Imperative Code
if (count > 99) {
if (!hasFire()) {
addFire();
}
} else {
if (hasFire()) {
removeFire();
}
}
if (count === 0) {
if (hasBadge()) {
removeBadge();
}
return;
}
if (!hasBadge()) {
addBadge();
}
var countText = count > 99 ? "99+" : count.toString();
getBadge().setText(countText);
Declarative Code
if (count === 0) {
return <div className="bell"/>;
} else if (count <= 99) {
return (
<div className="bell">
<span className="badge">{count}</span>
</div>
);
} else {
return (
<div className="bell onFire">
<span className="badge">99+</span>
</div>
);
}
Front End Development for Back End Developers - vJUG24 2017
Create React App
Create React App
Ships with documentation!
Authentication with React
Hello World with Vue.js
https://jsddle.net/chrisvfritz/50wL7mdz/
<div id="app">
<p>{{ message }}</p>
</div>
<script>
new Vue({
el: '#app',
data: {
message: 'Hello Vue.js!'
}
});
</script>
Learning Vue.js
https://youtu.be/utJGnK9D_UQ
Vue.js Code
<script src="https://unpkg.com/vue/dist/vue.js"></script>
<div id="app">
<button v-on:click="clickedButton()">Click here!</button>
</div>
<script>
new Vue({
el: '#app',
methods: {
clickedButton: function(event) {
console.log(event);
alert("You clicked the button!");
}
}
});
</script>
Front End Development for Back End Developers - vJUG24 2017
Vue CLI
Vue CLI
Authentication with Vue.js
Server-Side Support
Angular Universal merged into Angular 4
mobile.twitter.com
Nuxt.js
Server-Side Java Support
Cascading Style Sheets
#app {
background: #eee;
}
.blog-post {
padding: 20px;
}
.blog-post > p:first {
font-weight: 400;
}
img + span.caption {
font-style: italic;
}
Sass: Syntactically Awesome Style Sheets
#app {
background: #eee;
.blog-post {
padding: 20px;
> p:first {
font-weight: 400;
}
img + span.caption {
font-style: italic;
}
}
} http://sass-lang.com
CSS Frameworks
Bootstrap 4
Bootstrap 4
CSS Framework Stars on GitHub
October 2017
0
30,000
60,000
90,000
120,000
Bootstrap Foundation Pure Skeleton Material Components
CSS Framework Star History
https://github.com/timqian/star-history
Front End Performance Optimization
Reduce HTTP Requests

Gzip HTML, JavaScript, and CSS

Far Future Expires Headers

Code Minication

Optimize Images
HTTP/2
Binary, instead of textual

Fully multiplexed, instead of ordered and
blocking

Can use one connection for parallelism

Uses header compression to reduce overhead

Allows servers to “push” responses
proactively into client caches
Chrome Developer Tools
Follow Umar Hansa - @umaar

Follow Addy Osmani - @addyosmani
Framework Tools
Angular Augury
React Developer Tools
vue-devtools
Progressive Web Apps
“We’ve failed on mobile”

— Alex Russell

https://youtu.be/K1SFnrf4jZo
Mobile Hates You!
How to ght back:

Implement PRPL

Get a ~$150-200 unlocked Android (e.g. Moto G4)

Use chrome://inspect && chrome://inspect?tracing

Lighthouse

DevTools Network & CPU Throttling
The PRPL Pattern
Push 

Render

Pre-cache

Lazy-load
The PRPL Pattern
Push critical resources for the initial URL route

Render initial route

Pre-cache remaining routes

Lazy-load and create remaining routes on demand
Front End Development for Back End Developers - vJUG24 2017
“Reusable UI widgets created using open web technology.” - MDN

Web Components consists of four technologies:

Custom Elements

HTML Templates

Shadow DOM

HTML Imports
Web Components
https://www.polymer-project.org
https://stenciljs.com
https://www.webcomponents.org
Front End Development for Back End Developers - vJUG24 2017
Security: OWASP Top 10
1. Injection

2. Broken Auth & Session Mgmt

3. Cross-Site Scripting (XSS)

4. Broken Access Control

5. Security Misconguration

6. Sensitive Data Exposure

7. Insucient Attack Protection

8. Cross-Site Request Forgery

9. Components w/ Vulnerabilities

10. Underprotected APIs
JHipster jhipster.github.io
Get Started with JHipster 4 Demo
Front End Development for Back End Developers - vJUG24 2017
JHipster 4 Tutorials and Videos
Monolith

https://github.com/mraible/jhipster4-demo 

Microservices

https://developer.okta.com/blog/2017/06/20/develop-
microservices-with-jhipster
The JHipster Mini-Book
Written with Asciidoctor

Quick and to the point, 130 pages

Developed a real world app:

www.21-points.com 

Free Download from 

infoq.com/minibooks/jhipster-4-mini-book
@jhipster_book
21-Points Health v4 now live!
www.21-points.com
What You Learned
ES6 and TypeScript

Node.js and nvm

Angular, React, and Vue.js

CSS and Sass

Front End Performance Optimization

Progressive Web Apps
TRY
Action!
Don’t be afraid to try new things

Learn JavaScript or TypeScript

Try one of these frameworks

Form your own opinions

Or just wait a few months…
Front End Development for Back End Developers - vJUG24 2017
developer.okta.com/blog
Questions?
Keep in touch!

raibledesigns.com

@mraible

Presentations

speakerdeck.com/mraible

Code

github.com/oktadeveloper

More Related Content

PDF
Front End Development for Back End Developers - Denver Startup Week 2017
PDF
Get Hip with Java Hipster - JavaOne 2017
PDF
Front End Development for Back End Java Developers - NYJavaSIG 2019
PDF
Java REST API Framework Comparison - PWX 2021
PDF
Develop Hip APIs and Apps with Spring Boot and Angular - Connect.Tech 2017
PDF
Bootiful Development with Spring Boot and React - RWX 2017
PDF
Front End Development for Back End Java Developers - Jfokus 2020
PDF
Spring Boot APIs and Angular Apps: Get Hip with JHipster! KCDC 2019
Front End Development for Back End Developers - Denver Startup Week 2017
Get Hip with Java Hipster - JavaOne 2017
Front End Development for Back End Java Developers - NYJavaSIG 2019
Java REST API Framework Comparison - PWX 2021
Develop Hip APIs and Apps with Spring Boot and Angular - Connect.Tech 2017
Bootiful Development with Spring Boot and React - RWX 2017
Front End Development for Back End Java Developers - Jfokus 2020
Spring Boot APIs and Angular Apps: Get Hip with JHipster! KCDC 2019

What's hot (20)

PDF
Developing PWAs and Mobile Apps with Ionic, Angular, and JHipster - Devoxx Mo...
PDF
Web App Security for Java Developers - UberConf 2021
PDF
How to Win at UI Development in the World of Microservices - THAT Conference ...
PDF
Front End Development for Backend Developers - GIDS 2019
PDF
Bootiful Development with Spring Boot and React - SpringOne 2017
PDF
Reactive Java Microservices with Spring Boot and JHipster - Denver JUG 2021
PDF
Bootiful Development with Spring Boot and React - UberConf 2018
PDF
A Gentle Introduction to Angular Schematics - Angular SF 2019
PDF
A Gentle Introduction to Angular Schematics - Devoxx Belgium 2019
PPT
Choosing a Java Web Framework
PDF
Angular vs React Smackdown - Devoxx BE 2017
PDF
Mobile Development with Ionic, React Native, and JHipster - ACGNJ Java Users ...
PDF
Bootiful Development with Spring Boot and Angular - Connect.Tech 2017
PDF
Java Web Application Security - UberConf 2011
PDF
Microservices for the Masses with Spring Boot, JHipster, and OAuth - Utah JUG...
PDF
What's New in Spring 3.1
PDF
Clojure Web Development
PDF
Front End Development for Back End Developers - UberConf 2017
PDF
Mobile Development with Ionic, React Native, and JHipster - AllTheTalks 2020
PDF
Front End Development for Back End Developers - Devoxx UK 2017
Developing PWAs and Mobile Apps with Ionic, Angular, and JHipster - Devoxx Mo...
Web App Security for Java Developers - UberConf 2021
How to Win at UI Development in the World of Microservices - THAT Conference ...
Front End Development for Backend Developers - GIDS 2019
Bootiful Development with Spring Boot and React - SpringOne 2017
Reactive Java Microservices with Spring Boot and JHipster - Denver JUG 2021
Bootiful Development with Spring Boot and React - UberConf 2018
A Gentle Introduction to Angular Schematics - Angular SF 2019
A Gentle Introduction to Angular Schematics - Devoxx Belgium 2019
Choosing a Java Web Framework
Angular vs React Smackdown - Devoxx BE 2017
Mobile Development with Ionic, React Native, and JHipster - ACGNJ Java Users ...
Bootiful Development with Spring Boot and Angular - Connect.Tech 2017
Java Web Application Security - UberConf 2011
Microservices for the Masses with Spring Boot, JHipster, and OAuth - Utah JUG...
What's New in Spring 3.1
Clojure Web Development
Front End Development for Back End Developers - UberConf 2017
Mobile Development with Ionic, React Native, and JHipster - AllTheTalks 2020
Front End Development for Back End Developers - Devoxx UK 2017
Ad

Similar to Front End Development for Back End Developers - vJUG24 2017 (20)

PDF
Front End Development for Back End Java Developers - West Midlands Java User ...
PDF
Bootiful Development with Spring Boot and Angular - RWX 2018
PDF
Front End Development for Back End Java Developers - South West Java 2019
PDF
Front End Development for Back End Java Developers - Dublin JUG 2019
PPT
Testable client side_mvc_apps_in_javascript
PDF
Comparing Hot JavaScript Frameworks: AngularJS, Ember.js and React.js - Sprin...
PPTX
AngularJS with TypeScript and Windows Azure Mobile Services
PPT
Introduction To ASP.NET MVC
PPTX
Google I/O 2012 - Protecting your user experience while integrating 3rd party...
PDF
Choose Your Own Adventure with JHipster & Kubernetes - Utah JUG 2020
PDF
Microservices for the Masses with Spring Boot, JHipster, and OAuth - Switzerl...
PDF
It is not HTML5. but ... / HTML5ではないサイトからHTML5を考える
PDF
Maciej Treder "Server-side rendering with Angular—be faster and more SEO, CDN...
 
PPTX
Bootstrap & Mobile-Web
PPTX
Reactive application using meteor
PDF
Use Angular Schematics to Simplify Your Life - Develop Denver 2019
PPT
JBUG 11 - Django-The Web Framework For Perfectionists With Deadlines
PDF
Choose Your Own Adventure with JHipster & Kubernetes - Denver JUG 2020
PPTX
MongoDB.local Seattle 2019: MongoDB Stitch Tutorial
PPTX
Alfresco Development Framework Basic
Front End Development for Back End Java Developers - West Midlands Java User ...
Bootiful Development with Spring Boot and Angular - RWX 2018
Front End Development for Back End Java Developers - South West Java 2019
Front End Development for Back End Java Developers - Dublin JUG 2019
Testable client side_mvc_apps_in_javascript
Comparing Hot JavaScript Frameworks: AngularJS, Ember.js and React.js - Sprin...
AngularJS with TypeScript and Windows Azure Mobile Services
Introduction To ASP.NET MVC
Google I/O 2012 - Protecting your user experience while integrating 3rd party...
Choose Your Own Adventure with JHipster & Kubernetes - Utah JUG 2020
Microservices for the Masses with Spring Boot, JHipster, and OAuth - Switzerl...
It is not HTML5. but ... / HTML5ではないサイトからHTML5を考える
Maciej Treder "Server-side rendering with Angular—be faster and more SEO, CDN...
 
Bootstrap & Mobile-Web
Reactive application using meteor
Use Angular Schematics to Simplify Your Life - Develop Denver 2019
JBUG 11 - Django-The Web Framework For Perfectionists With Deadlines
Choose Your Own Adventure with JHipster & Kubernetes - Denver JUG 2020
MongoDB.local Seattle 2019: MongoDB Stitch Tutorial
Alfresco Development Framework Basic
Ad

More from Matt Raible (20)

PDF
Keep Identities in Sync the SCIMple Way - ApacheCon NA 2022
PDF
Micro Frontends for Java Microservices - Belfast JUG 2022
PDF
Micro Frontends for Java Microservices - Dublin JUG 2022
PDF
Micro Frontends for Java Microservices - Cork JUG 2022
PDF
Comparing Native Java REST API Frameworks - Seattle JUG 2022
PDF
Reactive Java Microservices with Spring Boot and JHipster - Spring I/O 2022
PDF
Comparing Native Java REST API Frameworks - Devoxx France 2022
PDF
Lock That Sh*t Down! Auth Security Patterns for Apps, APIs, and Infra - Devne...
PDF
Native Java with Spring Boot and JHipster - Garden State JUG 2021
PDF
Web App Security for Java Developers - PWX 2021
PDF
Mobile App Development with Ionic, React Native, and JHipster - Connect.Tech ...
PDF
Lock That Shit Down! Auth Security Patterns for Apps, APIs, and Infra - Joker...
PDF
Java REST API Framework Comparison - UberConf 2021
PDF
Native Java with Spring Boot and JHipster - SF JUG 2021
PDF
Lock That Shit Down! Auth Security Patterns for Apps, APIs, and Infra - Sprin...
PDF
Get Hip with JHipster - Colorado Springs Open Source User Group 2021
PDF
JHipster and Okta - JHipster Virtual Meetup December 2020
PDF
Java REST API Comparison: Micronaut, Quarkus, and Spring Boot - jconf.dev 2020
PDF
Security Patterns for Microservice Architectures - SpringOne 2020
PDF
Security Patterns for Microservice Architectures - ADTMag Microservices & API...
Keep Identities in Sync the SCIMple Way - ApacheCon NA 2022
Micro Frontends for Java Microservices - Belfast JUG 2022
Micro Frontends for Java Microservices - Dublin JUG 2022
Micro Frontends for Java Microservices - Cork JUG 2022
Comparing Native Java REST API Frameworks - Seattle JUG 2022
Reactive Java Microservices with Spring Boot and JHipster - Spring I/O 2022
Comparing Native Java REST API Frameworks - Devoxx France 2022
Lock That Sh*t Down! Auth Security Patterns for Apps, APIs, and Infra - Devne...
Native Java with Spring Boot and JHipster - Garden State JUG 2021
Web App Security for Java Developers - PWX 2021
Mobile App Development with Ionic, React Native, and JHipster - Connect.Tech ...
Lock That Shit Down! Auth Security Patterns for Apps, APIs, and Infra - Joker...
Java REST API Framework Comparison - UberConf 2021
Native Java with Spring Boot and JHipster - SF JUG 2021
Lock That Shit Down! Auth Security Patterns for Apps, APIs, and Infra - Sprin...
Get Hip with JHipster - Colorado Springs Open Source User Group 2021
JHipster and Okta - JHipster Virtual Meetup December 2020
Java REST API Comparison: Micronaut, Quarkus, and Spring Boot - jconf.dev 2020
Security Patterns for Microservice Architectures - SpringOne 2020
Security Patterns for Microservice Architectures - ADTMag Microservices & API...

Recently uploaded (20)

PDF
Tally Prime Crack Download New Version 5.1 [2025] (License Key Free
PPTX
Computer Software and OS of computer science of grade 11.pptx
PDF
Internet Downloader Manager (IDM) Crack 6.42 Build 41
PPTX
Agentic AI : A Practical Guide. Undersating, Implementing and Scaling Autono...
PDF
medical staffing services at VALiNTRY
PDF
Product Update: Alluxio AI 3.7 Now with Sub-Millisecond Latency
PPTX
Monitoring Stack: Grafana, Loki & Promtail
PDF
EN-Survey-Report-SAP-LeanIX-EA-Insights-2025.pdf
PDF
Cost to Outsource Software Development in 2025
PPTX
Agentic AI Use Case- Contract Lifecycle Management (CLM).pptx
PDF
Navsoft: AI-Powered Business Solutions & Custom Software Development
DOCX
Greta — No-Code AI for Building Full-Stack Web & Mobile Apps
PPTX
Patient Appointment Booking in Odoo with online payment
PDF
Nekopoi APK 2025 free lastest update
PDF
Design an Analysis of Algorithms II-SECS-1021-03
PPTX
Why Generative AI is the Future of Content, Code & Creativity?
PPTX
history of c programming in notes for students .pptx
PDF
Download FL Studio Crack Latest version 2025 ?
PPTX
Reimagine Home Health with the Power of Agentic AI​
PPTX
Operating system designcfffgfgggggggvggggggggg
Tally Prime Crack Download New Version 5.1 [2025] (License Key Free
Computer Software and OS of computer science of grade 11.pptx
Internet Downloader Manager (IDM) Crack 6.42 Build 41
Agentic AI : A Practical Guide. Undersating, Implementing and Scaling Autono...
medical staffing services at VALiNTRY
Product Update: Alluxio AI 3.7 Now with Sub-Millisecond Latency
Monitoring Stack: Grafana, Loki & Promtail
EN-Survey-Report-SAP-LeanIX-EA-Insights-2025.pdf
Cost to Outsource Software Development in 2025
Agentic AI Use Case- Contract Lifecycle Management (CLM).pptx
Navsoft: AI-Powered Business Solutions & Custom Software Development
Greta — No-Code AI for Building Full-Stack Web & Mobile Apps
Patient Appointment Booking in Odoo with online payment
Nekopoi APK 2025 free lastest update
Design an Analysis of Algorithms II-SECS-1021-03
Why Generative AI is the Future of Content, Code & Creativity?
history of c programming in notes for students .pptx
Download FL Studio Crack Latest version 2025 ?
Reimagine Home Health with the Power of Agentic AI​
Operating system designcfffgfgggggggvggggggggg

Front End Development for Back End Developers - vJUG24 2017