JQuery Conf Berlin - Ondrisek - From Java To AngularJS (without pain)

Barbara Ondrisek
Barbara OndrisekCo-Founder & CEO at Chatbots Agency
@electrobabe
From Java To AngularJS
(Without Pain)
9.12.2015 jquery conf berlin @electrobabe
Background
9.12.2015 jquery conf berlin @electrobabe
JavaScript!!!
9.12.2015 jquery conf berlin @electrobabe
Java <3
9.12.2015 jquery conf berlin @electrobabe
JavaScript
9.12.2015 jquery conf berlin @electrobabe
JavaScript is evil
9.12.2015 jquery conf berlin @electrobabe
JavaScript is eval
9.12.2015 jquery conf berlin @electrobabe
JavaScript is evil
9.12.2015 jquery conf berlin @electrobabe
JS: The Home Of Antipatterns
9.12.2015 jquery conf berlin @electrobabe
Some master it...
9.12.2015 jquery conf berlin @electrobabe
MVC in Java
9.12.2015 jquery conf berlin @electrobabe
AngularJS FTW!
9.12.2015 jquery conf berlin @electrobabe
MVW in Angular
9.12.2015 jquery conf berlin @electrobabe
ng-what?
9.12.2015 jquery conf berlin @electrobabe
Live Edit in Browser
9.12.2015 jquery conf berlin @electrobabe
Live Edit in Browser
9.12.2015 jquery conf berlin @electrobabe
Add a Controller to View
9.12.2015 jquery conf berlin @electrobabe
The Controller
9.12.2015 jquery conf berlin @electrobabe
Live Edit in Browser
9.12.2015 jquery conf berlin @electrobabe
Live Edit in Browser
9.12.2015 jquery conf berlin @electrobabe
Live Edit in Browser
9.12.2015 jquery conf berlin @electrobabe
Use A Model
9.12.2015 jquery conf berlin @electrobabe
Different Modules in Controller
9.12.2015 jquery conf berlin @electrobabe
Dependency Injection
9.12.2015 jquery conf berlin @electrobabe
Directives
9.12.2015 jquery conf berlin @electrobabe
Deep Linking & Routing
9.12.2015 jquery conf berlin @electrobabe
Nested Views
9.12.2015 jquery conf berlin @electrobabe
Nested Views
9.12.2015 jquery conf berlin @electrobabe
Nested Views
9.12.2015 jquery conf berlin @electrobabe
Structure
9.12.2015 jquery conf berlin @electrobabe
Testability
9.12.2015 jquery conf berlin @electrobabe
Build
9.12.2015 jquery conf berlin @electrobabe
Dependency Management
9.12.2015 jquery conf berlin @electrobabe
Supporting Frameworks
9.12.2015 jquery conf berlin @electrobabe
Best practices & Lessons Learned
9.12.2015 jquery conf berlin @electrobabe
Downsides
9.12.2015 jquery conf berlin @electrobabe
Downsides
9.12.2015 jquery conf berlin @electrobabe
I can has code? kthxbye
https://github.com/electrobabe/hungry-ui
9.12.2015 jquery conf berlin @electrobabe
Any Questions?
9.12.2015 jquery conf berlin @electrobabe
CATS!
9.12.2015 jquery conf berlin @electrobabe
Links
● Slides and Src on Github
https://github.com/electrobabe/hungry-ui
● http://electrobabe.at
● https://play.google.com/store/apps/details?
id=at.chefbabe.hungry
● https://play.google.com/store/apps/details?
id=com.likeahipster.app
9.12.2015 jquery conf berlin @electrobabe
Credentials
Images from
● hipsterlogogenerator.com
● stocksnap.io
● Wikipedia
● Giphy
1 of 42

Recommended

Concurrent Rendering Adventures in React 18 by
Concurrent Rendering Adventures in React 18Concurrent Rendering Adventures in React 18
Concurrent Rendering Adventures in React 18Maurice De Beijer [MVP]
260 views72 slides
Write Once, Run Everywhere by
Write Once, Run EverywhereWrite Once, Run Everywhere
Write Once, Run EverywhereMike North
28.7K views48 slides
Creating real time applications with Angular and Firebase by
Creating real time applications with Angular and FirebaseCreating real time applications with Angular and Firebase
Creating real time applications with Angular and FirebaseLoiane Groner
402 views75 slides
180929_NextBuild_From_Java_to_Kotlin by
180929_NextBuild_From_Java_to_Kotlin180929_NextBuild_From_Java_to_Kotlin
180929_NextBuild_From_Java_to_KotlinPaulien van Alst
215 views21 slides
What I learned teaching programming to 150 beginners by
What I learned teaching programming to 150 beginnersWhat I learned teaching programming to 150 beginners
What I learned teaching programming to 150 beginnersEtiene Dalcol
19.3K views43 slides
Essentials in JavaScript App Bundling with Webpack by
Essentials in JavaScript App Bundling with WebpackEssentials in JavaScript App Bundling with Webpack
Essentials in JavaScript App Bundling with WebpackKhaled Al-Ansari
296 views18 slides

More Related Content

What's hot

Lightning talk teaching php to kids with atk by
Lightning talk teaching php to kids with atkLightning talk teaching php to kids with atk
Lightning talk teaching php to kids with atkRomans Malinovskis
81 views40 slides
ASP.NET MVC From The Ground Up by
ASP.NET MVC From The Ground UpASP.NET MVC From The Ground Up
ASP.NET MVC From The Ground UpKevin Griffin
3.2K views19 slides
A Lap around ASP.NET 5 - CONDG by
A Lap around ASP.NET 5 - CONDGA Lap around ASP.NET 5 - CONDG
A Lap around ASP.NET 5 - CONDGSam Basu
475 views29 slides
Building high-performance web applications with Preact by
Building high-performance web applications with PreactBuilding high-performance web applications with Preact
Building high-performance web applications with PreactMaurice De Beijer [MVP]
443 views38 slides
Capistrano @ VilniusPHP by
Capistrano @ VilniusPHPCapistrano @ VilniusPHP
Capistrano @ VilniusPHPVidmantas Kabošis
2K views13 slides
Hello Cats: MobileWidgetCamp talk about mobile widgets by
Hello Cats: MobileWidgetCamp talk about mobile widgetsHello Cats: MobileWidgetCamp talk about mobile widgets
Hello Cats: MobileWidgetCamp talk about mobile widgetsMartijn Pannevis
405 views26 slides

What's hot(20)

ASP.NET MVC From The Ground Up by Kevin Griffin
ASP.NET MVC From The Ground UpASP.NET MVC From The Ground Up
ASP.NET MVC From The Ground Up
Kevin Griffin3.2K views
A Lap around ASP.NET 5 - CONDG by Sam Basu
A Lap around ASP.NET 5 - CONDGA Lap around ASP.NET 5 - CONDG
A Lap around ASP.NET 5 - CONDG
Sam Basu475 views
Hello Cats: MobileWidgetCamp talk about mobile widgets by Martijn Pannevis
Hello Cats: MobileWidgetCamp talk about mobile widgetsHello Cats: MobileWidgetCamp talk about mobile widgets
Hello Cats: MobileWidgetCamp talk about mobile widgets
Martijn Pannevis405 views
ASP.NET Quick Wins - 20 Tips and Tricks To Shift Your Application into High Gear by Kevin Griffin
ASP.NET Quick Wins - 20 Tips and Tricks To Shift Your Application into High GearASP.NET Quick Wins - 20 Tips and Tricks To Shift Your Application into High Gear
ASP.NET Quick Wins - 20 Tips and Tricks To Shift Your Application into High Gear
Kevin Griffin1.5K views
jQuery From the Ground Up by Kevin Griffin
jQuery From the Ground UpjQuery From the Ground Up
jQuery From the Ground Up
Kevin Griffin1.3K views
Ryan Christiani I Heard React Was Good by FITC
Ryan Christiani I Heard React Was GoodRyan Christiani I Heard React Was Good
Ryan Christiani I Heard React Was Good
FITC1.1K views
Wordcamp Toronto Presentation by Roy Sivan
Wordcamp Toronto PresentationWordcamp Toronto Presentation
Wordcamp Toronto Presentation
Roy Sivan942 views
WordPress and Client Side Web Applications WCTO by Roy Sivan
WordPress and Client Side Web Applications WCTOWordPress and Client Side Web Applications WCTO
WordPress and Client Side Web Applications WCTO
Roy Sivan1K views
[DevDay 2017] ReactJS Hands on - Speaker: Binh Phan - Developer at mgm techno... by DevDay.org
[DevDay 2017] ReactJS Hands on - Speaker: Binh Phan - Developer at mgm techno...[DevDay 2017] ReactJS Hands on - Speaker: Binh Phan - Developer at mgm techno...
[DevDay 2017] ReactJS Hands on - Speaker: Binh Phan - Developer at mgm techno...
DevDay.org391 views
Building End to-End Web Apps Using TypeScript by Gil Fink
Building End to-End Web Apps Using TypeScriptBuilding End to-End Web Apps Using TypeScript
Building End to-End Web Apps Using TypeScript
Gil Fink2.3K views
[DevDay 2017] Serverless Architecture - Speaker: Trung Huynh - Software Engin... by DevDay.org
[DevDay 2017] Serverless Architecture - Speaker: Trung Huynh - Software Engin...[DevDay 2017] Serverless Architecture - Speaker: Trung Huynh - Software Engin...
[DevDay 2017] Serverless Architecture - Speaker: Trung Huynh - Software Engin...
DevDay.org505 views
How to build a Mobile API or HTML 5 app in 5 minutes by Robert MacLean
How to build a Mobile API or HTML 5 app in 5 minutesHow to build a Mobile API or HTML 5 app in 5 minutes
How to build a Mobile API or HTML 5 app in 5 minutes
Robert MacLean4K views

Similar to JQuery Conf Berlin - Ondrisek - From Java To AngularJS (without pain)

Introduction to AngularJS by
Introduction to AngularJSIntroduction to AngularJS
Introduction to AngularJSJumping Bean
3.5K views23 slides
Mvvm is like born fraction by
Mvvm is like born fractionMvvm is like born fraction
Mvvm is like born fractionKen Haneda
1.5K views32 slides
The Modern Java Web Developer Bootcamp - Devoxx 2013 by
The Modern Java Web Developer Bootcamp - Devoxx 2013The Modern Java Web Developer Bootcamp - Devoxx 2013
The Modern Java Web Developer Bootcamp - Devoxx 2013Matt Raible
28.3K views127 slides
ITB2019 ColdBox APIs + VueJS - powering Mobile, Desktop and Web Apps with 1 V... by
ITB2019 ColdBox APIs + VueJS - powering Mobile, Desktop and Web Apps with 1 V...ITB2019 ColdBox APIs + VueJS - powering Mobile, Desktop and Web Apps with 1 V...
ITB2019 ColdBox APIs + VueJS - powering Mobile, Desktop and Web Apps with 1 V...Ortus Solutions, Corp
603 views60 slides
ColdBox APIs + VueJS - powering Mobile, Desktop and Web Apps with 1 VueJS cod... by
ColdBox APIs + VueJS - powering Mobile, Desktop and Web Apps with 1 VueJS cod...ColdBox APIs + VueJS - powering Mobile, Desktop and Web Apps with 1 VueJS cod...
ColdBox APIs + VueJS - powering Mobile, Desktop and Web Apps with 1 VueJS cod...Gavin Pickin
252 views60 slides
Moving to the Client - JavaFX and HTML5 (PowerPoint Version) by
Moving to the Client - JavaFX and HTML5 (PowerPoint Version)Moving to the Client - JavaFX and HTML5 (PowerPoint Version)
Moving to the Client - JavaFX and HTML5 (PowerPoint Version)Stephen Chin
2.4K views30 slides

Similar to JQuery Conf Berlin - Ondrisek - From Java To AngularJS (without pain)(20)

Introduction to AngularJS by Jumping Bean
Introduction to AngularJSIntroduction to AngularJS
Introduction to AngularJS
Jumping Bean3.5K views
Mvvm is like born fraction by Ken Haneda
Mvvm is like born fractionMvvm is like born fraction
Mvvm is like born fraction
Ken Haneda1.5K views
The Modern Java Web Developer Bootcamp - Devoxx 2013 by Matt Raible
The Modern Java Web Developer Bootcamp - Devoxx 2013The Modern Java Web Developer Bootcamp - Devoxx 2013
The Modern Java Web Developer Bootcamp - Devoxx 2013
Matt Raible28.3K views
ITB2019 ColdBox APIs + VueJS - powering Mobile, Desktop and Web Apps with 1 V... by Ortus Solutions, Corp
ITB2019 ColdBox APIs + VueJS - powering Mobile, Desktop and Web Apps with 1 V...ITB2019 ColdBox APIs + VueJS - powering Mobile, Desktop and Web Apps with 1 V...
ITB2019 ColdBox APIs + VueJS - powering Mobile, Desktop and Web Apps with 1 V...
ColdBox APIs + VueJS - powering Mobile, Desktop and Web Apps with 1 VueJS cod... by Gavin Pickin
ColdBox APIs + VueJS - powering Mobile, Desktop and Web Apps with 1 VueJS cod...ColdBox APIs + VueJS - powering Mobile, Desktop and Web Apps with 1 VueJS cod...
ColdBox APIs + VueJS - powering Mobile, Desktop and Web Apps with 1 VueJS cod...
Gavin Pickin252 views
Moving to the Client - JavaFX and HTML5 (PowerPoint Version) by Stephen Chin
Moving to the Client - JavaFX and HTML5 (PowerPoint Version)Moving to the Client - JavaFX and HTML5 (PowerPoint Version)
Moving to the Client - JavaFX and HTML5 (PowerPoint Version)
Stephen Chin2.4K views
JS FAST Prototyping with AngularJS & RequireJS by Yuriy Silvestrov
JS FAST Prototyping with AngularJS & RequireJSJS FAST Prototyping with AngularJS & RequireJS
JS FAST Prototyping with AngularJS & RequireJS
Yuriy Silvestrov4.9K views
Spring MVC Intro / Gore - Nov NHJUG by Ted Pennings
Spring MVC Intro / Gore - Nov NHJUGSpring MVC Intro / Gore - Nov NHJUG
Spring MVC Intro / Gore - Nov NHJUG
Ted Pennings1.5K views
Java web start Quick Reference by Praveen Kumar
Java web start Quick Reference Java web start Quick Reference
Java web start Quick Reference
Praveen Kumar720 views
AngularJS Beginner Day One by Troy Miles
AngularJS Beginner Day OneAngularJS Beginner Day One
AngularJS Beginner Day One
Troy Miles778 views
Angular Routing - Angular Hack Day Melbourne 2019 by Jernej Kavka (JK)
Angular Routing - Angular Hack Day Melbourne 2019Angular Routing - Angular Hack Day Melbourne 2019
Angular Routing - Angular Hack Day Melbourne 2019
MVC3 Development with visual studio 2010 by AbhishekLuv Kumar
MVC3 Development with visual studio 2010MVC3 Development with visual studio 2010
MVC3 Development with visual studio 2010
AbhishekLuv Kumar2.9K views
Graph ql subscriptions on the jvm by Gerard Klijs
Graph ql subscriptions on the jvmGraph ql subscriptions on the jvm
Graph ql subscriptions on the jvm
Gerard Klijs61 views
React vs angular (mobile first battle) by Michael Haberman
React vs angular (mobile first battle)React vs angular (mobile first battle)
React vs angular (mobile first battle)
Michael Haberman591 views
JavaScript Revolution - 5/Nov/13 - PrDC Saskatoon, SK by David Wesst
JavaScript Revolution - 5/Nov/13 - PrDC Saskatoon, SKJavaScript Revolution - 5/Nov/13 - PrDC Saskatoon, SK
JavaScript Revolution - 5/Nov/13 - PrDC Saskatoon, SK
David Wesst1.7K views
Why you should add React to your Rails application now! by David Roberts
Why you should add React to your Rails application now!Why you should add React to your Rails application now!
Why you should add React to your Rails application now!
David Roberts357 views
Advance Java Tutorial | J2EE, Java Servlets, JSP, JDBC | Java Certification T... by Edureka!
Advance Java Tutorial | J2EE, Java Servlets, JSP, JDBC | Java Certification T...Advance Java Tutorial | J2EE, Java Servlets, JSP, JDBC | Java Certification T...
Advance Java Tutorial | J2EE, Java Servlets, JSP, JDBC | Java Certification T...
Edureka!1K views
Comparing Native Java REST API Frameworks - Seattle JUG 2022 by Matt Raible
Comparing Native Java REST API Frameworks - Seattle JUG 2022Comparing Native Java REST API Frameworks - Seattle JUG 2022
Comparing Native Java REST API Frameworks - Seattle JUG 2022
Matt Raible48 views

More from Barbara Ondrisek

Anatomy Of Chatbots Users Will Love - Bots Meetup Oslo by
Anatomy Of Chatbots Users Will Love - Bots Meetup OsloAnatomy Of Chatbots Users Will Love - Bots Meetup Oslo
Anatomy Of Chatbots Users Will Love - Bots Meetup OsloBarbara Ondrisek
254 views11 slides
Insights into Chatbot - Development Implementing Cross-Platform Chatbots by
Insights into Chatbot - Development Implementing Cross-Platform ChatbotsInsights into Chatbot - Development Implementing Cross-Platform Chatbots
Insights into Chatbot - Development Implementing Cross-Platform ChatbotsBarbara Ondrisek
733 views37 slides
Lessons learned creating a virtual personality - Botscamp - Ondrisek by
Lessons learned creating  a virtual personality - Botscamp - OndrisekLessons learned creating  a virtual personality - Botscamp - Ondrisek
Lessons learned creating a virtual personality - Botscamp - OndrisekBarbara Ondrisek
738 views13 slides
Privacy Week Ondrisek - Data Security And Privacy Of Chatbots by
Privacy Week Ondrisek - Data Security And Privacy Of ChatbotsPrivacy Week Ondrisek - Data Security And Privacy Of Chatbots
Privacy Week Ondrisek - Data Security And Privacy Of ChatbotsBarbara Ondrisek
710 views18 slides
Ondrisek @ DevTernity "Insights into Chatbot Development - Implementing Cros... by
Ondrisek @ DevTernity  "Insights into Chatbot Development - Implementing Cros...Ondrisek @ DevTernity  "Insights into Chatbot Development - Implementing Cros...
Ondrisek @ DevTernity "Insights into Chatbot Development - Implementing Cros...Barbara Ondrisek
2.5K views25 slides
Risiken von E-voting - CryptoParty - Ondrisek by
Risiken von E-voting - CryptoParty - OndrisekRisiken von E-voting - CryptoParty - Ondrisek
Risiken von E-voting - CryptoParty - OndrisekBarbara Ondrisek
743 views16 slides

More from Barbara Ondrisek(16)

Anatomy Of Chatbots Users Will Love - Bots Meetup Oslo by Barbara Ondrisek
Anatomy Of Chatbots Users Will Love - Bots Meetup OsloAnatomy Of Chatbots Users Will Love - Bots Meetup Oslo
Anatomy Of Chatbots Users Will Love - Bots Meetup Oslo
Barbara Ondrisek254 views
Insights into Chatbot - Development Implementing Cross-Platform Chatbots by Barbara Ondrisek
Insights into Chatbot - Development Implementing Cross-Platform ChatbotsInsights into Chatbot - Development Implementing Cross-Platform Chatbots
Insights into Chatbot - Development Implementing Cross-Platform Chatbots
Barbara Ondrisek733 views
Lessons learned creating a virtual personality - Botscamp - Ondrisek by Barbara Ondrisek
Lessons learned creating  a virtual personality - Botscamp - OndrisekLessons learned creating  a virtual personality - Botscamp - Ondrisek
Lessons learned creating a virtual personality - Botscamp - Ondrisek
Barbara Ondrisek738 views
Privacy Week Ondrisek - Data Security And Privacy Of Chatbots by Barbara Ondrisek
Privacy Week Ondrisek - Data Security And Privacy Of ChatbotsPrivacy Week Ondrisek - Data Security And Privacy Of Chatbots
Privacy Week Ondrisek - Data Security And Privacy Of Chatbots
Barbara Ondrisek710 views
Ondrisek @ DevTernity "Insights into Chatbot Development - Implementing Cros... by Barbara Ondrisek
Ondrisek @ DevTernity  "Insights into Chatbot Development - Implementing Cros...Ondrisek @ DevTernity  "Insights into Chatbot Development - Implementing Cros...
Ondrisek @ DevTernity "Insights into Chatbot Development - Implementing Cros...
Barbara Ondrisek2.5K views
Risiken von E-voting - CryptoParty - Ondrisek by Barbara Ondrisek
Risiken von E-voting - CryptoParty - OndrisekRisiken von E-voting - CryptoParty - Ondrisek
Risiken von E-voting - CryptoParty - Ondrisek
Barbara Ondrisek743 views
"Chatbots vs. Apps" Cospace ViennaValley Ondrisek by Barbara Ondrisek
"Chatbots vs. Apps" Cospace ViennaValley Ondrisek"Chatbots vs. Apps" Cospace ViennaValley Ondrisek
"Chatbots vs. Apps" Cospace ViennaValley Ondrisek
Barbara Ondrisek810 views
Insights into Chatbot Development - Implementing Cross-Platform Chatbots by Barbara Ondrisek
Insights into Chatbot Development - Implementing Cross-Platform ChatbotsInsights into Chatbot Development - Implementing Cross-Platform Chatbots
Insights into Chatbot Development - Implementing Cross-Platform Chatbots
Barbara Ondrisek2K views
The Austrian Chatbot Ecosystem - Startup Live Brussels - Ondrisek by Barbara Ondrisek
The Austrian Chatbot Ecosystem - Startup Live Brussels - OndrisekThe Austrian Chatbot Ecosystem - Startup Live Brussels - Ondrisek
The Austrian Chatbot Ecosystem - Startup Live Brussels - Ondrisek
Barbara Ondrisek885 views
Best Practices At Implementing A Cross Platform Chatbot - Webclerks Meetup - ... by Barbara Ondrisek
Best Practices At Implementing A Cross Platform Chatbot - Webclerks Meetup - ...Best Practices At Implementing A Cross Platform Chatbot - Webclerks Meetup - ...
Best Practices At Implementing A Cross Platform Chatbot - Webclerks Meetup - ...
Barbara Ondrisek736 views
The Success Story of Mica, the Hipster Cat Bot by Barbara Ondrisek
The Success Story of Mica, the Hipster Cat BotThe Success Story of Mica, the Hipster Cat Bot
The Success Story of Mica, the Hipster Cat Bot
Barbara Ondrisek230 views
Ondrisek - Mica, the Hipster Cat Bot - Talkabot by Barbara Ondrisek
Ondrisek - Mica, the Hipster Cat Bot - Talkabot Ondrisek - Mica, the Hipster Cat Bot - Talkabot
Ondrisek - Mica, the Hipster Cat Bot - Talkabot
Barbara Ondrisek696 views
Mica, the Hipster Cat Bot - Elevator Pitch by Barbara Ondrisek
Mica, the Hipster Cat Bot - Elevator PitchMica, the Hipster Cat Bot - Elevator Pitch
Mica, the Hipster Cat Bot - Elevator Pitch
Barbara Ondrisek590 views
Simple Mobile Development With Ionic - Ondrisek by Barbara Ondrisek
Simple Mobile Development With Ionic - OndrisekSimple Mobile Development With Ionic - Ondrisek
Simple Mobile Development With Ionic - Ondrisek
Barbara Ondrisek574 views

Recently uploaded

CloudStack Managed User Data and Demo - Harikrishna Patnala - ShapeBlue by
CloudStack Managed User Data and Demo - Harikrishna Patnala - ShapeBlueCloudStack Managed User Data and Demo - Harikrishna Patnala - ShapeBlue
CloudStack Managed User Data and Demo - Harikrishna Patnala - ShapeBlueShapeBlue
68 views13 slides
TrustArc Webinar - Managing Online Tracking Technology Vendors_ A Checklist f... by
TrustArc Webinar - Managing Online Tracking Technology Vendors_ A Checklist f...TrustArc Webinar - Managing Online Tracking Technology Vendors_ A Checklist f...
TrustArc Webinar - Managing Online Tracking Technology Vendors_ A Checklist f...TrustArc
130 views29 slides
NTGapps NTG LowCode Platform by
NTGapps NTG LowCode Platform NTGapps NTG LowCode Platform
NTGapps NTG LowCode Platform Mustafa Kuğu
287 views30 slides
Network Source of Truth and Infrastructure as Code revisited by
Network Source of Truth and Infrastructure as Code revisitedNetwork Source of Truth and Infrastructure as Code revisited
Network Source of Truth and Infrastructure as Code revisitedNetwork Automation Forum
49 views45 slides
Backroll, News and Demo - Pierre Charton, Matthias Dhellin, Ousmane Diarra - ... by
Backroll, News and Demo - Pierre Charton, Matthias Dhellin, Ousmane Diarra - ...Backroll, News and Demo - Pierre Charton, Matthias Dhellin, Ousmane Diarra - ...
Backroll, News and Demo - Pierre Charton, Matthias Dhellin, Ousmane Diarra - ...ShapeBlue
121 views15 slides
Updates on the LINSTOR Driver for CloudStack - Rene Peinthor - LINBIT by
Updates on the LINSTOR Driver for CloudStack - Rene Peinthor - LINBITUpdates on the LINSTOR Driver for CloudStack - Rene Peinthor - LINBIT
Updates on the LINSTOR Driver for CloudStack - Rene Peinthor - LINBITShapeBlue
138 views8 slides

Recently uploaded(20)

CloudStack Managed User Data and Demo - Harikrishna Patnala - ShapeBlue by ShapeBlue
CloudStack Managed User Data and Demo - Harikrishna Patnala - ShapeBlueCloudStack Managed User Data and Demo - Harikrishna Patnala - ShapeBlue
CloudStack Managed User Data and Demo - Harikrishna Patnala - ShapeBlue
ShapeBlue68 views
TrustArc Webinar - Managing Online Tracking Technology Vendors_ A Checklist f... by TrustArc
TrustArc Webinar - Managing Online Tracking Technology Vendors_ A Checklist f...TrustArc Webinar - Managing Online Tracking Technology Vendors_ A Checklist f...
TrustArc Webinar - Managing Online Tracking Technology Vendors_ A Checklist f...
TrustArc130 views
NTGapps NTG LowCode Platform by Mustafa Kuğu
NTGapps NTG LowCode Platform NTGapps NTG LowCode Platform
NTGapps NTG LowCode Platform
Mustafa Kuğu287 views
Backroll, News and Demo - Pierre Charton, Matthias Dhellin, Ousmane Diarra - ... by ShapeBlue
Backroll, News and Demo - Pierre Charton, Matthias Dhellin, Ousmane Diarra - ...Backroll, News and Demo - Pierre Charton, Matthias Dhellin, Ousmane Diarra - ...
Backroll, News and Demo - Pierre Charton, Matthias Dhellin, Ousmane Diarra - ...
ShapeBlue121 views
Updates on the LINSTOR Driver for CloudStack - Rene Peinthor - LINBIT by ShapeBlue
Updates on the LINSTOR Driver for CloudStack - Rene Peinthor - LINBITUpdates on the LINSTOR Driver for CloudStack - Rene Peinthor - LINBIT
Updates on the LINSTOR Driver for CloudStack - Rene Peinthor - LINBIT
ShapeBlue138 views
Declarative Kubernetes Cluster Deployment with Cloudstack and Cluster API - O... by ShapeBlue
Declarative Kubernetes Cluster Deployment with Cloudstack and Cluster API - O...Declarative Kubernetes Cluster Deployment with Cloudstack and Cluster API - O...
Declarative Kubernetes Cluster Deployment with Cloudstack and Cluster API - O...
ShapeBlue59 views
Mitigating Common CloudStack Instance Deployment Failures - Jithin Raju - Sha... by ShapeBlue
Mitigating Common CloudStack Instance Deployment Failures - Jithin Raju - Sha...Mitigating Common CloudStack Instance Deployment Failures - Jithin Raju - Sha...
Mitigating Common CloudStack Instance Deployment Failures - Jithin Raju - Sha...
ShapeBlue113 views
KVM Security Groups Under the Hood - Wido den Hollander - Your.Online by ShapeBlue
KVM Security Groups Under the Hood - Wido den Hollander - Your.OnlineKVM Security Groups Under the Hood - Wido den Hollander - Your.Online
KVM Security Groups Under the Hood - Wido den Hollander - Your.Online
ShapeBlue154 views
Import Export Virtual Machine for KVM Hypervisor - Ayush Pandey - University ... by ShapeBlue
Import Export Virtual Machine for KVM Hypervisor - Ayush Pandey - University ...Import Export Virtual Machine for KVM Hypervisor - Ayush Pandey - University ...
Import Export Virtual Machine for KVM Hypervisor - Ayush Pandey - University ...
ShapeBlue48 views
Extending KVM Host HA for Non-NFS Storage - Alex Ivanov - StorPool by ShapeBlue
Extending KVM Host HA for Non-NFS Storage -  Alex Ivanov - StorPoolExtending KVM Host HA for Non-NFS Storage -  Alex Ivanov - StorPool
Extending KVM Host HA for Non-NFS Storage - Alex Ivanov - StorPool
ShapeBlue56 views
Automating a World-Class Technology Conference; Behind the Scenes of CiscoLive by Network Automation Forum
Automating a World-Class Technology Conference; Behind the Scenes of CiscoLiveAutomating a World-Class Technology Conference; Behind the Scenes of CiscoLive
Automating a World-Class Technology Conference; Behind the Scenes of CiscoLive
How to Re-use Old Hardware with CloudStack. Saving Money and the Environment ... by ShapeBlue
How to Re-use Old Hardware with CloudStack. Saving Money and the Environment ...How to Re-use Old Hardware with CloudStack. Saving Money and the Environment ...
How to Re-use Old Hardware with CloudStack. Saving Money and the Environment ...
ShapeBlue97 views
Elevating Privacy and Security in CloudStack - Boris Stoyanov - ShapeBlue by ShapeBlue
Elevating Privacy and Security in CloudStack - Boris Stoyanov - ShapeBlueElevating Privacy and Security in CloudStack - Boris Stoyanov - ShapeBlue
Elevating Privacy and Security in CloudStack - Boris Stoyanov - ShapeBlue
ShapeBlue149 views
Setting Up Your First CloudStack Environment with Beginners Challenges - MD R... by ShapeBlue
Setting Up Your First CloudStack Environment with Beginners Challenges - MD R...Setting Up Your First CloudStack Environment with Beginners Challenges - MD R...
Setting Up Your First CloudStack Environment with Beginners Challenges - MD R...
ShapeBlue105 views
The Power of Heat Decarbonisation Plans in the Built Environment by IES VE
The Power of Heat Decarbonisation Plans in the Built EnvironmentThe Power of Heat Decarbonisation Plans in the Built Environment
The Power of Heat Decarbonisation Plans in the Built Environment
IES VE67 views
DRBD Deep Dive - Philipp Reisner - LINBIT by ShapeBlue
DRBD Deep Dive - Philipp Reisner - LINBITDRBD Deep Dive - Philipp Reisner - LINBIT
DRBD Deep Dive - Philipp Reisner - LINBIT
ShapeBlue110 views
What’s New in CloudStack 4.19 - Abhishek Kumar - ShapeBlue by ShapeBlue
What’s New in CloudStack 4.19 - Abhishek Kumar - ShapeBlueWhat’s New in CloudStack 4.19 - Abhishek Kumar - ShapeBlue
What’s New in CloudStack 4.19 - Abhishek Kumar - ShapeBlue
ShapeBlue191 views

JQuery Conf Berlin - Ondrisek - From Java To AngularJS (without pain)

Editor's Notes

  1. Hello! My name is Barbara Ondrisek and I&amp;apos;m working as a freelancer for almost 15 years for different companies mostly on Java web projects, but I also like mobile development – especially Android. Currently I&amp;apos;m working for the Erste Bank on the new Version of their netbanking system George.
  2. I have a strong Java background – I love Java - but I always wanted to keep in touch with the Frontend. So last year my team leader asked me wheater I want to join a Full Stack team. BUT! They use JavaScript
  3. BUT Java developers fear Java Script. Why? ps. first I wanted to make a presentation solely with cat pictures but I decided against it
  4. For me object oriented Java is so comforting because it uses a lot of structure – law and order, especially for the &amp;quot;Special Victims Unit&amp;quot; the Java Server Faces guys. There is a huge barrier when you start programming Java, especially when you come from &amp;quot;script land&amp;quot;. But there are many very handy frameworks and standard tools such as Maven, JPA, or Spring that might help you with developing reliable large scale web apps. And for us Java people JS looks like...
  5. Sodom and Gomorrha, because there are sooo many frameworks and tools and noone standardizes anything. Of cause there are certain streams to use structural frameworks such as Backbone, React, ... and now Ecma Script 6 is coming... But for me as a Java developer JS was always a place where every thing is allowed and possible and you can do whatever comes to your mind...
  6. I mean seriously
  7. ...eval is the same as ...
  8. ...evil!
  9. What ever prgramm any antipattern that comes into your mind such as spaghetti code (this is actually a picture of my lunch last week), extension of objects, pollution of the global Namespace, improper Use of Truthy and Falsey Evaluation etc. JS has no standardisation, millions of different, frameworks and github projects... All those strange &amp;quot;undefined is not a function&amp;quot;s and &amp;quot;object Object&amp;quot;s (when you print out a variable and HTML code mixed with javascript... No IDE, no debugging...
  10. Some might see through the matrix, but not many can handle JS code in a proper way that it is maintainable or scalable. BUT web app implementations in Java aren&amp;apos;t much better: ps. now I&amp;apos;m coming to the a little more serious part of my presentation.
  11. Your code base usually grows very fast and you need structure. Model-View-Controller is a pattern meaning the separation of concerns. You seperate the presentation (the view) from the program&amp;apos;s logic (the controller) and the data layer (the model). There are several ways to achieve MVC in Java. A good approach is Spring MVC with Spring Web Flow - but there are also bad and very bad approaches such as JSP or JSF with Beans or Servlets. Old technology I contributed some bad still on my own. So the solution is:
  12. AngularJS FTW! The self-called &amp;quot;Superheroic JavaScript MVW Framework&amp;quot; AngularJS is a state of the art JavaScript tool for single page web applications that offers a lot that JS alone does not - namely structure. And it&amp;apos;s from Google so it can&amp;apos;t be &amp;quot;bad&amp;quot;. In jQuery apps the DOM often represents the model, but with Angular the business logic is decoupled from DOM manipulation. And just a litte disclaimer: I&amp;apos;m talking about Angular 1, not 2, because AFAIK it&amp;apos;s still BETA.
  13. Angular calls their principle &amp;quot;Model-View-Whatever&amp;quot;: You have a single page app devided into modules such as the login, a main screen, config). Simply speaking: An Angular app is a collection of modules. A module consists of different components: * Model (Services / Factories &amp;lt;-&amp;gt; REST API) * &amp;lt;-&amp;gt; Controller (Controllers) * &amp;lt;-&amp;gt; View (Templates with build in Directives)
  14. Here you find a simple html file. I include the angular dependency as js script in the header and define that this references an angular app with &amp;quot;ng-app&amp;quot;. With a very simple reference to &amp;quot;ng-model&amp;quot; I define an object (through data binding) in the current scope respectively DOM that will be initialized on runtime. Next I just display it by referencing it inside this curly braces, which means that it will be &amp;quot;printed out&amp;quot; in the HTML.
  15. When you now open the html file in a browser the browser loads this mini app and when you now enter something in the input field the value is displayed here in this span immediately.
  16. Easy, isn&amp;apos;t it?
  17. Now you add some swag: A Controller. This is an example app I wrote for my talk here, but it is also used with a side project of me: The Hungry? App, an app that uses your location to show you venues such as restaurants close by. In this app you can also save your favorite venue in a list. And this is done on a server. For this server, a REST API, I made this Angular frontend. With &amp;quot;ng-controller&amp;quot; you define a function that encapsulates our logic that is defined in a separate js file. You also have integrated form validations. Here the input type is text with a max lenght of 30. You can also define something like floats or regexs.
  18. A typical controller is placed in a seperate module – in this case we only have one, that is the app, but in the next example there will be more... Now you define the controller as a function that contains the app&amp;apos;s logic such as scope objects and different functions to handle data. This a a super simple example so let me show you a little bit more.
  19. Here you see...
  20. In this example you see the different modules: I defined a module &amp;quot;hungry.controllers&amp;quot;, a module &amp;quot;hungry.constants&amp;quot; and &amp;quot;hungry.factories&amp;quot;. The factories module is the model module, in Angular it is called &amp;quot;Factory&amp;quot;. With my factory I can fetch data from my REST API. This is accomplished with the resource library that I referenced in the html and injected here into my factory. I defined a constants module for some fixed values such as the API path and I defined different controllers. The angular resource library is a jquery tool to fetch data.
  21. Dependency injection is the most amazing feature of AngularJS. It allows you to declaratively describe how your application is wired. This means that your application needs no main() method which is usually an unmaintainable mess. You work modular and can also simply remove or replace components.
  22. Directives is a unique and powerful feature available only in Angular. Directives let you invent new HTML syntax, specific to your application. At a high level, directives are markers on a DOM element (such as an attribute, element name, comment or CSS class) that tell AngularJS&amp;apos;s HTML compiler to attach a specified behavior to that DOM element (e.g. via event listeners), or even to transform the DOM element and its children. Directives are pretty handy, but hard to test because of the HTML code. This is a simple example. One can also use reusable HTML templates and add lots of complexity. Nice is that the scope is directly seperated.
  23. Localization An important part of serious apps is localization. Angular&amp;apos;s locale aware filters and stemming directives give you building blocks to make your application available in all locales. Angular supports i18n/l10n for date, number and currency filters.
  24. Deep Linking A deep link reflects where the user is in the app, this is useful so users can bookmark and email links to locations within apps. Round trip apps get this automatically, but AJAX apps by their nature do not. AngularJS combines the benefits of deep link with desktop app-like behavior. Angular is a single page app, but with these routes you can set ...
  25. For views we use jade templates in our project. And you can nest them inside of each other. Such as headers, menues, and other reusable components
  26. For views we use jade templates in our project. And you can nest them inside of each other.
  27. For views we use jade templates in our project. And you can nest them inside of each other.
  28. Structure by type: controllers, directives, services templates Structure by features
  29. Testable AngularJS was designed from ground up to be testable. It encourages behavior-view separation, comes pre-bundled with mocks, and takes full advantage of dependency injection. It also comes with end-to-end scenario runner which eliminates test flakiness by understanding the inner workings of AngularJS. As tools there are karma and phantom JS. Angular has a built-in mock framework &amp;quot;angular.mock.module&amp;quot;.
  30. Build with gulp! Gulp: Task runner built on Node.js. Build process (less, coffee script / jasmine, jade) Gulp + extensions, such as - babel for ES6 support - lodash
  31. Dependencies are managed by bower resp. Webpack. overview of supporting state of the art frameworks: npm FTW! Bower: Package manager (lodash ) Gulp: Task runner built on Node.js. Build process (less, coffee script / jasmine, jade) Bootstrap UI
  32. overview of supporting state of the art frameworks: npm FTW! lodash Bootstrap UI Etc.etc.
  33. No pain, no gain? Best practices are: Define controllers, factories etc. in seperate files Cache dependencies Don&amp;apos;t use $rootScope. At all. Never live reload as tool Debug in IntelliJ Lessons Learned Integration in mvn, gulp in build (win vs. Osx) Test coverage (no integration in sonar?)
  34. No Downsides at all! ...just kidding
  35. Downsides Structure is provided but not enforced The code is only as good as its programmers Why I love Angular MVC (MVW) Modular design Declarative approach Active development - community