SlideShare ist ein Scribd-Unternehmen logo
1 von 51
Downloaden Sie, um offline zu lesen
ElitePartner

„Tech Stack – Pants Down”

AngularJS + REST
Marcel Sauer, Head of Software Development, ElitePartner
Oliver Ochs (@oochs), Leitung Geschäftsfeld Architektur, Holisticon
Oliver Zeigermann (@DJCordhose), Entwickler, Autor, Ninja
ElitePartner ist die beliebteste Partnervermittlung (DISQ 06/2012)

10.12.2013

1
ElitePartner

Inhalt
Mobile @ ElitePartner
–

Iphone, Android (kurze Vorstellung der App(s))

–

m.elitepartner.de

Tech Stack
–

Frontend: AngularJS

–

Backend: REST(ful) API

–

Build Process

–

Testing – Unit / e2e / on-device

–

CI (Build Prozess)

–

Deployment Process (TC, Capistrano, Puppet)

–

Logging

Lessons Learned
ElitePartner ist die beliebteste Partnervermittlung (DISQ 06/2012)

2
ElitePartner

Mobile @ ElitePartner
Mobile

ElitePartner ist die beliebteste Partnervermittlung (DISQ 06/2012)

3
ElitePartner

iPhone

ElitePartner ist die beliebteste Partnervermittlung (DISQ 06/2012)

4
ElitePartner

Android

ElitePartner ist die beliebteste Partnervermittlung (DISQ 06/2012)

5
ElitePartner

m.elitepartner.de

ElitePartner ist die beliebteste Partnervermittlung (DISQ 06/2012)

6
ElitePartner

Persönlichkeitstest

ElitePartner ist die beliebteste Partnervermittlung (DISQ 06/2012)

7
ElitePartner

Persönlichkeitstest

ElitePartner ist die beliebteste Partnervermittlung (DISQ 06/2012)

8
ElitePartner

Persönlichkeitstest

ElitePartner ist die beliebteste Partnervermittlung (DISQ 06/2012)

9
ElitePartner

Persönlichkeitstest

ElitePartner ist die beliebteste Partnervermittlung (DISQ 06/2012)

10
ElitePartner

Angular.js
HTML enhanced for web apps!

ElitePartner ist die beliebteste Partnervermittlung (DISQ 06/2012)

11
ElitePartner

Angular.js


Client-Side MVC-Framework



Reiches HTML ala Web-Components



2-Wege Bindung von Modell und UI



Erlaubt SPA und Offline-Modus



Grundlage für mobilen Persönlichkeitstest



Komplette Anwendung


inkl. HTML-Templates in Modulen minifizierte JS-Files ~ 75kB

ElitePartner ist die beliebteste Partnervermittlung (DISQ 06/2012)

12
ElitePartner

ElitePartner ist die beliebteste Partnervermittlung (DISQ 06/2012)

13
ElitePartner

REST


Backend in Java und Tomcat



MongoDB für Test-Daten



Endpunkte mit Jersey



Authentisierung über oauth mit Spring-Security



Übertragung im JSON-Format



Typisierung im JavaScript-Client über TypeScript

ElitePartner ist die beliebteste Partnervermittlung (DISQ 06/2012)

14
ElitePartner

ElitePartner ist die beliebteste Partnervermittlung (DISQ 06/2012)

15
Buildprozess

Bild: CC BY-SA by Tony Buser
ElitePartner

Node.js

Werkzeuge basieren auf Node.js und dem
„Node Packaged Modules“ Package Manager „npm“

ElitePartner ist die beliebteste Partnervermittlung (DISQ 06/2012)

17
ElitePartner

ElitePartner ist die beliebteste Partnervermittlung (DISQ 06/2012)

18
ElitePartner

Yeoman
Yo generiert das
Grundgerüst für eine
neue Anwendung,
schreibt eine
entsprechende GruntKonfiguration und trägt
nötige Abhänigkeiten für
NPM und Bower ein.

ElitePartner ist die beliebteste Partnervermittlung (DISQ 06/2012)

19
ElitePartner

Bower
Bower wird für das
Dependency-Management
verwendet. So müssen keine
Scripte von Dritten
heruntergeladen und
eingecheckt werden.

ElitePartner ist die beliebteste Partnervermittlung (DISQ 06/2012)

20
ElitePartner

Bower Dependencies

ElitePartner ist die beliebteste Partnervermittlung (DISQ 06/2012)

21
ElitePartner

GRUNT
Grunt wird als Buildsystem zum
Testen, für Previews und zum
Build verwendet. Es gibt eine
Vielzahl von grunt-contributions
(PlugIns).

ElitePartner ist die beliebteste Partnervermittlung (DISQ 06/2012)

22
ElitePartner

Verwendete NPMs

ElitePartner ist die beliebteste Partnervermittlung (DISQ 06/2012)

23
ElitePartner

JSHint
Überprüft Best-Practices und unsere Coding
Conventions, definiert in “.jshint.rc”.

ElitePartner ist die beliebteste Partnervermittlung (DISQ 06/2012)

24
ElitePartner

UseMin
Baut Gruntfile und kümmert sich um
Konkatenierung, Minifizierung
(Uglify.js, CSSMin, HTMLMin) und
Fingerprinting/Revving.

Bild: Dr. E Brown Enterprises,
http://www.xconsoles.com/

ElitePartner ist die beliebteste Partnervermittlung (DISQ 06/2012)

25
ElitePartner

UseMin

ElitePartner ist die beliebteste Partnervermittlung (DISQ 06/2012)

26
ElitePartner

Compass
Sass / Compass für CSS
Preprocessing und Spriting.

ElitePartner ist die beliebteste Partnervermittlung (DISQ 06/2012)

27
ElitePartner

Plato

ElitePartner ist die beliebteste Partnervermittlung (DISQ 06/2012)

28
ElitePartner

Testing

ElitePartner ist die beliebteste Partnervermittlung (DISQ 06/2012)

29
ElitePartner

Unit-Tests mit Jasmine

describe("Jasmine", function() {
it("makes testing JavaScript awesome!", function() {
expect(yourCode).toBeLotsBetter();
});
});

ElitePartner ist die beliebteste Partnervermittlung (DISQ 06/2012)

30
ElitePartner

ElitePartner ist die beliebteste Partnervermittlung (DISQ 06/2012)

31
ElitePartner

E2E-Tests mit Angular-Scenario

ElitePartner ist die beliebteste Partnervermittlung (DISQ 06/2012)

32
ElitePartner

Karma-Server
Durch einen Karma-Server lassen
sich echte Browser fernsteuern.

ElitePartner ist die beliebteste Partnervermittlung (DISQ 06/2012)

33
ElitePartner

Karma-Server

ElitePartner ist die beliebteste Partnervermittlung (DISQ 06/2012)

34
ElitePartner

Karma-Server

ElitePartner ist die beliebteste Partnervermittlung (DISQ 06/2012)

35
ElitePartner

ElitePartner ist die beliebteste Partnervermittlung (DISQ 06/2012)

36
ElitePartner

Coverage

ElitePartner ist die beliebteste Partnervermittlung (DISQ 06/2012)

37
ElitePartner

CI - Teamcity

ElitePartner ist die beliebteste Partnervermittlung (DISQ 06/2012)

38
ElitePartner

ElitePartner ist die beliebteste Partnervermittlung (DISQ 06/2012)

39
ElitePartner

Puppet

ElitePartner ist die beliebteste Partnervermittlung (DISQ 06/2012)

40
ElitePartner

Testumgebung

ElitePartner ist die beliebteste Partnervermittlung (DISQ 06/2012)

41
ElitePartner

CI - Teamcity

ElitePartner ist die beliebteste Partnervermittlung (DISQ 06/2012)

42
ElitePartner

CI - Teamcity

ElitePartner ist die beliebteste Partnervermittlung (DISQ 06/2012)

43
ElitePartner

ElitePartner ist die beliebteste Partnervermittlung (DISQ 06/2012)

44
ElitePartner

Capistrano

ElitePartner ist die beliebteste Partnervermittlung (DISQ 06/2012)

45
ElitePartner

Logging

ElitePartner ist die beliebteste Partnervermittlung (DISQ 06/2012)

46
ElitePartner

Logging

ElitePartner ist die beliebteste Partnervermittlung (DISQ 06/2012)

47
ElitePartner

Logging

ElitePartner ist die beliebteste Partnervermittlung (DISQ 06/2012)

48
ElitePartner

Learnings
JS für Java-Entwickler
Turnaround Zeiten
Tool-Support (WebStorm, Chrome Dev Tools)
HTML5-Support auf Mobile Devices
Design (responsive / adaptive) & Styling
RESTful API
CI-Prozess

ElitePartner ist die beliebteste Partnervermittlung (DISQ 06/2012)

49
ElitePartner

Demo

www.elitepartner.de/mobile

ElitePartner ist die beliebteste Partnervermittlung (DISQ 06/2012)

50
ElitePartner

Danke
Fragen
Diskussionen
P.S.: We are hiring ;-)
https://www.elitepartner.de/jobs/
EliteMedianet GmbH  Am Sandtorkai 50  20457 Hamburg
www.ElitePartner.de  www.ElitePartner.de/Magazin  www.ElitePartner.de/Forum  www.ElitePartner-Akademie.de

ElitePartner ist die beliebteste Partnervermittlung (DISQ 06/2012)

51

Weitere ähnliche Inhalte

Andere mochten auch

LeanIX Swagger REST API @ Open Source Konferenz FrosCon, Sankt Augustin
LeanIX Swagger REST API @ Open Source Konferenz FrosCon, Sankt AugustinLeanIX Swagger REST API @ Open Source Konferenz FrosCon, Sankt Augustin
LeanIX Swagger REST API @ Open Source Konferenz FrosCon, Sankt AugustinLeanIX GmbH
 
Digital 시대의 Open Banking Platform 구축 전략
Digital 시대의 Open Banking Platform 구축 전략Digital 시대의 Open Banking Platform 구축 전략
Digital 시대의 Open Banking Platform 구축 전략Seong-Bok Lee
 
figo Banking API: A Banking Service Provider for FinTech Startups
figo Banking API: A Banking Service Provider for FinTech Startupsfigo Banking API: A Banking Service Provider for FinTech Startups
figo Banking API: A Banking Service Provider for FinTech StartupsLars Markull
 
Open Bank Project workshop at API Days, Open BankIng and Fintech, London 2015
Open Bank Project workshop at API Days, Open BankIng and Fintech, London 2015Open Bank Project workshop at API Days, Open BankIng and Fintech, London 2015
Open Bank Project workshop at API Days, Open BankIng and Fintech, London 2015TESOBE
 
The API SlideShare for Bankers and Fintech Executives
The API SlideShare for Bankers and Fintech ExecutivesThe API SlideShare for Bankers and Fintech Executives
The API SlideShare for Bankers and Fintech ExecutivesMX
 
Understanding REST
Understanding RESTUnderstanding REST
Understanding RESTNitin Pande
 
Design Beautiful REST + JSON APIs
Design Beautiful REST + JSON APIsDesign Beautiful REST + JSON APIs
Design Beautiful REST + JSON APIsStormpath
 
PSD2: Making it actionable
PSD2: Making it actionablePSD2: Making it actionable
PSD2: Making it actionableBackbase
 
Embracing FinTech
Embracing FinTechEmbracing FinTech
Embracing FinTechBackbase
 

Andere mochten auch (12)

LeanIX Swagger REST API @ Open Source Konferenz FrosCon, Sankt Augustin
LeanIX Swagger REST API @ Open Source Konferenz FrosCon, Sankt AugustinLeanIX Swagger REST API @ Open Source Konferenz FrosCon, Sankt Augustin
LeanIX Swagger REST API @ Open Source Konferenz FrosCon, Sankt Augustin
 
API is the New Black
API is the New BlackAPI is the New Black
API is the New Black
 
Digital 시대의 Open Banking Platform 구축 전략
Digital 시대의 Open Banking Platform 구축 전략Digital 시대의 Open Banking Platform 구축 전략
Digital 시대의 Open Banking Platform 구축 전략
 
figo Banking API: A Banking Service Provider for FinTech Startups
figo Banking API: A Banking Service Provider for FinTech Startupsfigo Banking API: A Banking Service Provider for FinTech Startups
figo Banking API: A Banking Service Provider for FinTech Startups
 
Open Bank Project workshop at API Days, Open BankIng and Fintech, London 2015
Open Bank Project workshop at API Days, Open BankIng and Fintech, London 2015Open Bank Project workshop at API Days, Open BankIng and Fintech, London 2015
Open Bank Project workshop at API Days, Open BankIng and Fintech, London 2015
 
The API SlideShare for Bankers and Fintech Executives
The API SlideShare for Bankers and Fintech ExecutivesThe API SlideShare for Bankers and Fintech Executives
The API SlideShare for Bankers and Fintech Executives
 
Understanding REST
Understanding RESTUnderstanding REST
Understanding REST
 
Design Beautiful REST + JSON APIs
Design Beautiful REST + JSON APIsDesign Beautiful REST + JSON APIs
Design Beautiful REST + JSON APIs
 
RESTful API Design, Second Edition
RESTful API Design, Second EditionRESTful API Design, Second Edition
RESTful API Design, Second Edition
 
RESTful Web Services
RESTful Web ServicesRESTful Web Services
RESTful Web Services
 
PSD2: Making it actionable
PSD2: Making it actionablePSD2: Making it actionable
PSD2: Making it actionable
 
Embracing FinTech
Embracing FinTechEmbracing FinTech
Embracing FinTech
 

Ähnlich wie ElitePartner: Mobile mit AngularJS und REST

Tobias Nebel - Herausforderungen und Changen in Full-Stack-IoT-Projekten
Tobias Nebel - Herausforderungen und Changen in Full-Stack-IoT-ProjektenTobias Nebel - Herausforderungen und Changen in Full-Stack-IoT-Projekten
Tobias Nebel - Herausforderungen und Changen in Full-Stack-IoT-ProjektenDevDay Dresden
 
2008 - Gewinnung von OPEN SOURCE Techniken für junge Unternehmen
2008 - Gewinnung von OPEN SOURCE Techniken für junge Unternehmen2008 - Gewinnung von OPEN SOURCE Techniken für junge Unternehmen
2008 - Gewinnung von OPEN SOURCE Techniken für junge UnternehmenBjoern Reinhold
 
Global Sourcing Partner in IT-Projekten steuern
Global Sourcing Partner in IT-Projekten steuernGlobal Sourcing Partner in IT-Projekten steuern
Global Sourcing Partner in IT-Projekten steuernpliXos GmbH
 
Django trifft Flutter
Django trifft FlutterDjango trifft Flutter
Django trifft Flutterroskakori
 
Five Finger Death Punch
Five Finger Death PunchFive Finger Death Punch
Five Finger Death PunchMT AG
 
Zurück in die Zukunft - DNUG 2014 - Track 5.2
Zurück in die Zukunft - DNUG 2014 - Track 5.2Zurück in die Zukunft - DNUG 2014 - Track 5.2
Zurück in die Zukunft - DNUG 2014 - Track 5.2panagenda
 
Testing einer Angular App
Testing einer Angular AppTesting einer Angular App
Testing einer Angular AppFlorian Bader
 
ICIS User Group - Oberflächentests mittels LCT deklarativ angehen
ICIS User Group - Oberflächentests mittels LCT deklarativ angehenICIS User Group - Oberflächentests mittels LCT deklarativ angehen
ICIS User Group - Oberflächentests mittels LCT deklarativ angehenKai Donato
 
ONE Konferenz: Von der Idee zur App
ONE Konferenz: Von der Idee zur AppONE Konferenz: Von der Idee zur App
ONE Konferenz: Von der Idee zur AppNetcetera
 
.NET Core Architecture (UI)
.NET Core Architecture (UI).NET Core Architecture (UI)
.NET Core Architecture (UI)Robin Sedlaczek
 
Sii IT Nearshore - Sharepoint
Sii IT Nearshore - SharepointSii IT Nearshore - Sharepoint
Sii IT Nearshore - SharepointPiotr Bizukojć
 
Sii IT Nearshore - Sharepoint
Sii IT Nearshore - SharepointSii IT Nearshore - Sharepoint
Sii IT Nearshore - SharepointPiotr Bizukojć
 
Pixel Rank - die bessere Metrik für dein Ranking?
Pixel Rank - die bessere Metrik für dein Ranking?Pixel Rank - die bessere Metrik für dein Ranking?
Pixel Rank - die bessere Metrik für dein Ranking?Johanna Maier
 
Forms and Reports 12c - Processes and Automation in Development and Operations
Forms and Reports 12c - Processes and Automation in Development and OperationsForms and Reports 12c - Processes and Automation in Development and Operations
Forms and Reports 12c - Processes and Automation in Development and OperationsTorsten Kleiber
 
Mobile Testautomatisierung mit Robotium
Mobile Testautomatisierung mit RobotiumMobile Testautomatisierung mit Robotium
Mobile Testautomatisierung mit RobotiumDaniel Knott
 
Jakarta EE 10: Was gibt es Neues?
Jakarta EE 10: Was gibt es Neues?Jakarta EE 10: Was gibt es Neues?
Jakarta EE 10: Was gibt es Neues?gedoplan
 

Ähnlich wie ElitePartner: Mobile mit AngularJS und REST (20)

Tobias Nebel - Herausforderungen und Changen in Full-Stack-IoT-Projekten
Tobias Nebel - Herausforderungen und Changen in Full-Stack-IoT-ProjektenTobias Nebel - Herausforderungen und Changen in Full-Stack-IoT-Projekten
Tobias Nebel - Herausforderungen und Changen in Full-Stack-IoT-Projekten
 
UI Techradar - Ein Blick in die Glaskugel
UI Techradar - Ein Blick in die GlaskugelUI Techradar - Ein Blick in die Glaskugel
UI Techradar - Ein Blick in die Glaskugel
 
Speed und Compliance - Freunde oder Gegner?
Speed und  Compliance - Freunde oder Gegner?Speed und  Compliance - Freunde oder Gegner?
Speed und Compliance - Freunde oder Gegner?
 
2008 - Gewinnung von OPEN SOURCE Techniken für junge Unternehmen
2008 - Gewinnung von OPEN SOURCE Techniken für junge Unternehmen2008 - Gewinnung von OPEN SOURCE Techniken für junge Unternehmen
2008 - Gewinnung von OPEN SOURCE Techniken für junge Unternehmen
 
Global Sourcing Partner in IT-Projekten steuern
Global Sourcing Partner in IT-Projekten steuernGlobal Sourcing Partner in IT-Projekten steuern
Global Sourcing Partner in IT-Projekten steuern
 
Django trifft Flutter
Django trifft FlutterDjango trifft Flutter
Django trifft Flutter
 
Five Finger Death Punch
Five Finger Death PunchFive Finger Death Punch
Five Finger Death Punch
 
Zurück in die Zukunft - DNUG 2014 - Track 5.2
Zurück in die Zukunft - DNUG 2014 - Track 5.2Zurück in die Zukunft - DNUG 2014 - Track 5.2
Zurück in die Zukunft - DNUG 2014 - Track 5.2
 
Testing einer Angular App
Testing einer Angular AppTesting einer Angular App
Testing einer Angular App
 
ICIS User Group - Oberflächentests mittels LCT deklarativ angehen
ICIS User Group - Oberflächentests mittels LCT deklarativ angehenICIS User Group - Oberflächentests mittels LCT deklarativ angehen
ICIS User Group - Oberflächentests mittels LCT deklarativ angehen
 
ONE Konferenz: Von der Idee zur App
ONE Konferenz: Von der Idee zur AppONE Konferenz: Von der Idee zur App
ONE Konferenz: Von der Idee zur App
 
.NET Core Architecture (UI)
.NET Core Architecture (UI).NET Core Architecture (UI)
.NET Core Architecture (UI)
 
Sii IT Nearshore - Sharepoint
Sii IT Nearshore - SharepointSii IT Nearshore - Sharepoint
Sii IT Nearshore - Sharepoint
 
Sii IT Nearshore - Sharepoint
Sii IT Nearshore - SharepointSii IT Nearshore - Sharepoint
Sii IT Nearshore - Sharepoint
 
Pixel Rank - die bessere Metrik für dein Ranking?
Pixel Rank - die bessere Metrik für dein Ranking?Pixel Rank - die bessere Metrik für dein Ranking?
Pixel Rank - die bessere Metrik für dein Ranking?
 
Forms and Reports 12c - Processes and Automation in Development and Operations
Forms and Reports 12c - Processes and Automation in Development and OperationsForms and Reports 12c - Processes and Automation in Development and Operations
Forms and Reports 12c - Processes and Automation in Development and Operations
 
2020 oracle lizenznews
2020 oracle lizenznews2020 oracle lizenznews
2020 oracle lizenznews
 
OC|Webcast: Oracle Lizenzierung - Lizenznews 2021
OC|Webcast: Oracle Lizenzierung - Lizenznews 2021OC|Webcast: Oracle Lizenzierung - Lizenznews 2021
OC|Webcast: Oracle Lizenzierung - Lizenznews 2021
 
Mobile Testautomatisierung mit Robotium
Mobile Testautomatisierung mit RobotiumMobile Testautomatisierung mit Robotium
Mobile Testautomatisierung mit Robotium
 
Jakarta EE 10: Was gibt es Neues?
Jakarta EE 10: Was gibt es Neues?Jakarta EE 10: Was gibt es Neues?
Jakarta EE 10: Was gibt es Neues?
 

ElitePartner: Mobile mit AngularJS und REST