Mit AngularJS Projekte schnell an die Wand fahren
|
|
- Paula Liese Pfaff
- vor 8 Jahren
- Abrufe
Transkript
1 Mit AngularJS Projekte schnell an die Wand fahren Häufige Fehler und wie sie sich vermeiden lassen Rouven Röhrig
2 2 Agenda 1. Herausforderungen in Enterprise-JavaScript-Projekten 2. Was ist AngularJS und was bietet es 3. Wie man Projekte an die Wand fährt und wie man es verhindert 4. Zusammenfassung und Ausblick
3 3 Agenda 1. Herausforderungen in Enterprise-JavaScript-Projekten 2. Was ist AngularJS und was bietet es 3. Wie man Projekte an die Wand fährt und wie man es verhindert 4. Zusammenfassung und Ausblick
4 4 Herausforderungen in Enterprise-JavaScript-Projekten Kein Compiler Keine natürliche Strukturierung Loser Zusammenhang der Dateien Dynamische Typisierung Kein Klassen -Konzept Asynchronität Client-seitige Ausführung
5 5 Agenda 1. Herausforderungen in Enterprise-JavaScript-Projekten 2. Was ist AngularJS und was bietet es 3. Wie man Projekte an die Wand fährt und wie man es verhindert 4. Zusammenfassung und Ausblick
6 6 Was ist AngularJS? JavaScript-Framework für Single-Page-Applikationen Client-seitiges JS für interaktives HTML Kümmert sich um die Abhängigkeiten der Dateien Hilft beim Strukturieren (u.a.) durch das MVVM-Pattern Entworfen für eine hohe Testbarkeit (UI- und Unit-Testing) Ermöglicht expressive HTML
7 7 Was ist eine Single-Page-Applikation? Klassische Webseite Single-Page-Applikation Webseite aufrufen HTTP requests Webseite aufrufen HTTP requests Antwort(en) mit Dateien (HTML, CSS, JS etc.) Antwort(en) mit Dateien (HTML, CSS, JS etc.) Webseite aufbauen Webseite aufbauen Link anklicken Link anklicken (HTTP requests) Send updates
8 8 Was ist expressive HTML? <div> <div> <div> <span>9</span> <span>1</span >... </div> <div> <span> </ span >... </div>... </div> </div> <sudoku> <grid> <row id="row1"> <cell id="r1c1">9</cell> <cell id="r1c2">1</cell>... </row> <row id="row2"> <cell id="r2c1"> </cell>... </row>... </grid> </sudoku>
9 9 MVW-Pattern: Model-View-Whatever-Pattern Angular ermöglicht die Trennung von View und Logik Manche sagen Angular basiert auf dem MVC-Pattern Andere (darunter der Referent) sagen es entspricht eher dem MVVM-Pattern Angular sagt es ist ein Model-View-Whatever-Pattern 1 : Stellen Sie es sich so vor, wie es für Sie am meisten Sinn ergibt! Angular sagt aber auch [ ] it's now closer to MVVM. 1 AngularJS: MVC vs MVVM vs MVP, 19 Juli 2012
10 10 Angulars wichtigste Konzepte Dependency Injection Two-Way-Databinding Expressive HTML
11 11 Angulars wichtigste Bausteine Expressions Direktiven Controller Services Module
12 12 Controller im MVVM Model nicht festgelegt in Angular? ViewModel Controller stellt Daten und Methoden zur Verfügung Databinding View DOM
13 13 Two-way-Databinding Hello World! Hallo!.controller('MyController', function() { this.helloworld = 'Hello World!'; this.input; // 'Hallo!' });
14 14 Zusammenspiel Direktive HTML partial template Direktive Service Service Service Cont roller Cont roller Direktive Cont roller HTML partial HTML partial Service Service Direktive Cont roller HTML partial
15 15 Agenda 1. Herausforderungen in Enterprise-JavaScript-Projekten 2. Was ist AngularJS und was bietet es 3. Wie man Projekte an die Wand fährt und wie man es verhindert 4. Zusammenfassung und Ausblick
16 16 Problem: Unzureichende Automatisierung Wir fangen erst einmal an und automatisieren später Problematik: Manuelle Pflege der Abhängigkeiten Tests geben kein schnelles Feedback Es gibt keinen automatisierten Build-Prozess Build-Server ohne Build- und Test-Ergebnis => Tests werden vernachlässigt => Produktivitätsverlust => Nachgelagerte Automatisierung ist oft teuer!
17 17 Besser: Erst Automatisieren, dann Entwickeln Wir machen Automatisierung zur Voraussetzung! JavaScript-basierte Anwendungen lassen sich sehr gut automatisieren Automatisierung muss mitwachsen Umso später automatisiert wird, umso aufwendiger -> Geeignete Werkzeuge sind notwendig!
18 18 Besser: Erst Automatisieren, dann Entwickeln (2) Build-Prozess: NodeJS und npm NodeJS und npm für Entwicklungsabhängigkeiten npm als Command-line-tool npm als einziger Einstiegspunkt für Abhängigkeitsmanagement und Installation Build-Prozess Testausführung (Unit und GUI) Grunt oder Gulp? JA, Faustregel: npm wenn möglich, Grunt/Gulp wenn nötig
19 19 Besser: Erst Automatisieren, dann Entwickeln (3) Build-Prozess: npm als einziger Einstiegspunkt package.json install postinstall: test: e2e-test: taskxy: Entwicklungsabhängigkeiten Frontend-Abhängigkeiten Unit-Tests UI-Tests gulp complicated-job gulpfile.js gulp.task('complicated-job', );
20 20 Besser: Erst Automatisieren, dann Entwickeln (4) Standardisierte autarke Projekte durch npm Beliebiges JavaScript-Projekt, beliebiger Rechner: Voraussetzung: NodeJS und git 1. git clone 2. npm install (Installiert ALLE Abhängigkeiten lokal) 3. npm test (führt Tests aus) 4. npm start (optional: startet Webserver) -> Komplexität massiv reduziert
21 21 Besser: Erst Automatisieren, dann Entwickeln (5) Bower für Frontend-Abhängigkeiten npm für Entwicklungsabhängigkeiten bower für Frontend-Abhängigkeiten Vorteile: Trennung von Frontend und Backend-Abhängigkeiten. Flacher Abhängigkeitsgraph
22 22 Problem: Keine oder kaum GUI-Tests Problematik: Fehler treten trotz Unit-Tests auf Aufwand des manuellen Testens steigt Fehler bleiben lange unentdeckt => Äußere Qualität ist schlecht => Späte Automatisierung offenbart schlecht testbares HTML
23 23 GUI-Tests ab der ersten Seite Das Gesamtsystem testen GUI-Tests sind aufwendig und veralten schnell Auf wichtige Use Cases konzentrieren -> Smoke-Tests Testbare HTML-Komponenten benötigen IDs Klassen sind fehleranfälliger <row id="row1"> <cell id="r1c1"> </cell> <cell id="r1c2"> </cell> </row> <row id="row2"> <cell id="r2c1"> </cell> </row>
24 24 GUI-Tests: Page Object Pattern Egal ob Protractor oder Selenium, Java oder JavaScript: Page Objects! Ein Page Object repräsentiert eine Webseite weiß wie man darauf zugreift kennt Page Objects verlinkter Seiten Tests verwenden Page Objects statt eigene Locator Vorteil: Ändert sich eine Webseite, ändert sich nur ein Page Object
25 GUI-Tests: Page Object Pattern (2) Eine von vielen Möglichkeiten, die auf die Folie gepasst hat! 25 describe('login Page', function() { it('a user can login', function() { var loginpage = new LoginPage(); loginpage.get(); Für Page Objects bieten sich auch Singletons an! loginpage.setusernameandpassword('user1', 'abc'); var overviewpage = loginpage.clickloginexpectsuccess(); expect(overviewpage.isdisplayed()).tobe(true); }); });
26 GUI-Tests: Page Object Pattern (3) Eine von vielen Möglichkeiten, die auf die Folie gepasst hat! 26 function LoginPage() { this.get = function () { return browser.get('/#/login'); }; this.setusernameandpassword = function(username, password) { element(by.id('login-username')).sendkeys(username); element(by.id('login-password')).sendkeys(password); }; this.clickloginexpectsuccess = function() { element(by.id('login-button')).click(); return new OverviewPage(); }; }
27 27 Problem: Keine oder wenig Unit-Tests Das Frontend lässt sich nicht Unit-Testen Problematik: Viele Fehler Fehler werden spät entdeckt Entwicklung per Trial and Error Schlecht wartbarer und nicht testbarer Code => Schlechte innere und äußere Qualität => langsame riskante Entwicklung
28 28 Besser: Von Anfang an Unit-Tests Noch besser: TDD oder Test-first Testbarkeit ist wichtige Metrik für Qualität In Angular: Nur ein testbarer Controller kann ein guter Controller sein Frontend-Code lässt sich auch testen (Direktiven und Controller) Strikte Trennung von View und Logik Controller darf nicht vom DOM abhängen (nur Zustand und Methoden) Direktiven: Operationen möglich mit Tools Fokus auf Controller
29 29 Besser: Von Anfang an Unit-Tests (2) Geeignete Werkzeuge Test-Framework: Jasmine oder Mocha Test-Runner: Karma Testausführung in verschiedenen Browsern Viele Erweiterungen: Code-Coverage Ergebnis für Build-Server (z.b. Jenkins) Automatisierung: npm führt Karma aus, Karma führt Jasmine-Tests aus
30 30 Besser: Von Anfang an Unit-Tests (3) Automatisierung Automatisierung Viele Projekte haben einen größeren Build-Prozess z.b. Minification, Uglification, Sass-Build etc. Häufig muss der Code gebaut werden, bevor er getestet wird Okay und gut für Build-Server Schlecht für TDD und schnelles Feedback Empfehlung: Unit-Tests müssen auch ohne Build laufen Oder watch-task für Entwickler der wirklich schnell ist
31 31 Problem: Keine einheitlichen Codekonventionen Problematik: Flüchtigkeitsfehler schleichen sich ein Einfache Programmierfehler treten auf Schlechte Lesbarkeit und Wartbarkeit => Verringerte Softwarequalität => Verringerte Produktivität
32 32 Codekonventionen durchsetzen Linter findet einfache Fehler und stellt Konventionen sicher Statische Codeanalyse überprüft Codekonventionen und findet typische Fehler Bekannte Linter: JSLint: Fester Standard JSHint: Konfigurierbar ESLint: Konfigurierbar und erweiterbarer Zusätzlich: HTML validieren => Gute IDEs integrieren Linter-Errors
33 33 Problem: IDE unterstützt JavaScript unzureichend Wir entwickeln schon immer mit <BLANK>. Problematik: Schlechter oder kein JavaScript-Support Kein Syntax-Highlighting Keine Funktionen Keine automatisierten Refactorings Keine Linter-Integration => Langsame Entwicklungsgeschwindigkeit => Viele überflüssige Fehler
34 34 Eine IDE mit guter JavaScript-Integration Folgende IDEs bieten eine Integration WebStorm (kommerziell) Brackets, Atom, Sublime et al. (nicht-kommerziell) Visual Studio (kommerziell) => Aufwand und Kosten amortisieren sich schnell!
35 35 Problem: Code-Duplikationen Problematik: Änderungen müssen an vielen Stellen erfolgen Gefixte Fehler tauchen wieder auf Features sind nicht an allen Stellen implementiert => Änderungen und Erweiterungen sind teuer => Zunehmend unwartbarer Code => Schlechte Codequalität
36 36 Keine Code-Duplikationen Aber wie? HTML-Duplikationen Controller-unabhängig: Template-Direktive Controller-abhängig: Direktive (mit eigenem Controller) Duplikationen im Controller: Wiederverwendbarer Service JavaScript-Objekt
37 37 Keine Code-Duplikationen (2) JavaScript-Objekte explizit modellieren Objekte können on-the-fly erzeugt werden -> Führt zu Code-Duplikationen function Message(title, content) { var message = { title: 'a title', content: 'a message' }; Besser Eine von vielen Möglichkeiten, die auf die Folie gepasst hat! } this.title = title; this.content = content;.factory('message', function() { return Message; });
38 38 Keine Code-Duplikationen (3) Kleine Controller, Direktiven und Services Methodik: Große Controller lassen sich schlecht testen, daher: TDD! -> Kann ich einen Controller schwer Unit-Testen, ist er häufig zu groß. Werkzeuge: Services: (Wiederverwendbare) Logik auslagern Template-Direktiven: (Wiederverwendbare) HTML-Templates Direktiven: (Wiederverwendbare) UI-Aspekte kapseln
39 39 Problem: ng-controller statt Direktiven Problematik: ng-controller wird verwendet HTML-Code-Duplikationen Ähnliche oder duplizierte Controller => Komplizierte Scope-Abhängigkeiten => Schwer verständlicher Code => Duplizierter Code
40 40 Besser: Domänenspezifische Sprache mit Direktiven Direktiven sind das Feature von AngularJS Eine Direktive ist in sich abgeschlossen, bestehend aus: HTML-Template Controller Styling Unit-Test ;-) Eine Direktive manipuliert nur ihren eigenen DOM
41 41 Besser: Domänenspezifische Sprache mit Direktiven (2).directive('infobox', function() { return { templateurl: 'infobox.html', controller: function() {...}, controlleras: 'infobox', scope: { 'text': '@', }, bindtocontroller: true }; }); <div class="alert alert-info"> {{infobox.text}} <div> infobox{ /* styling */ } <infobox text="hello World!"/> Hello World!
42 42 Besser: Domänenspezifische Sprache mit Direktiven (3).directive('anotherDirective', function() { return { /* */ }; }); anotherdirective{ /* styling */ } <infobox ng-if="{{anotherdirective.somecondition}}" text="{{anotherdirective.status}}"/> <input /> <button.../>
43 43 Problem: Callback-based APIs Problematik: Führt meist in die Callback Hell [1] Abhängigkeiten schlecht parallelisierbar Aufwendige Fehlerbehandlung Keine Trennung von Fehler- und Erfolgsfall [1]
44 44 Besser: Promise-based APIs Angular bietet eigene API für Promises Promises ermöglichen Einheitliches API-Design Trennung von Fehler- und Erfolgsfall Promise chaining Sauberer Code loaddata(42).then( preprocessdata ).then( displayresult ).catch( alertuser ).finally( clearloadingflag ); => Achtung Design und Testing eigener APIs ist dennoch anspruchsvoll
45 45 Agenda 1. Herausforderungen in Enterprise-JavaScript-Projekten 2. Was ist AngularJS und was bietet es 3. Wie man Projekte an die Wand fährt und wie man es verhindert 4. Zusammenfassung und Ausblick
46 46 Empfehlungen Automatisierung von Anfang an GUI-Tests ab der ersten Seite Unit-Tests -> TDD oder Test-first Hohe Testabeckung -> Testabdeckung messen! Code-Konventionen -> Linter und gute IDE Keine Code-Duplikationen -> Angulars Möglichkeiten nutzen Promise-based APIs
47 47 Rahmenbedingungen von Enterprise-JavaScript-Projekten Kein Compiler Testautomatisierung Keine natürliche Strukturierung Disziplin und Angular-Module Loser Zusammenhang der Dateien Angular-Module Dynamische Typisierung Testautomatisierung Kein Klassen -Konzept Explizit modellierte Objekte Asynchronität ~ Promise-based APIs Client-seitige Ausführung => Einige Probleme werden von EcmaScript2015 adressiert
48 48 Noch besserer Code durch TypeScript Vorteile von Angular mit TypeScript Typisierung (Typdeklaration, Klassen, Interfaces) Compile-Errors Typsichere Rest-Schnittstelle Serverseitiges DTO (z.b. in Java geschrieben) kann als TypeScript-DTO generiert werden -> TypeScript-Compile-Errors Kommt mit vielen zukünftigen EcmaScript-Features (Debugging mit Source in TypeScript-Dateien möglich)
49 49 Noch besserer Code durch TypeScript (2) Einschränkungen beim Einsatz von TypeScript mit Angular Konversion nicht immer ohne Cast möglich Compiler-Schritt kostet etwas Zeit Typdefinitionen für externen JavaScript-Code => Angular 2 wird mit TypeScript entwickelt
50 50 Vielen Dank für Ihre Aufmerksamkeit
Mit AngularJS Projekte schnell an die Wand fahren
Mit AngularJS Projekte schnell an die Wand fahren Häufige Fehler und wie sie sich vermeiden lassen Rouven Röhrig 2 Agenda 1. Herausforderungen in Enterprise-JavaScript-Projekten 2. Was ist AngularJS und
MehrFrontend-Entwicklung mit JavaScript
headquarter Frontend-Entwicklung mit JavaScript Single Page Applications Server-Side HTML Rendering Client-Side HTML Rendering kein JavaScript wenig JavaScript nur JavaScript Der Browser bietet viele neue
MehrOliver Zeigermann http://zeigermann.eu. JavaScript für Java-Entwickler
Oliver Zeigermann http://zeigermann.eu JavaScript für Java-Entwickler 4 Vorurteile 1. JavaScript ist eine tote Sprache 2. Java als Sprache ist sauberer und klarerer als JavaScript 3. JavaScript-Anwendungen
MehrAuf einen Blick. 1 Einführung Funktionen und funktionale Aspekte Objektorientierte Programmierung mit JavaScript...
Auf einen Blick Auf einen Blick 1 Einführung... 17 2 Funktionen und funktionale Aspekte... 61 3 Objektorientierte Programmierung mit JavaScript... 121 4 ECMAScript 6... 173 5 Der Entwicklungsprozess...
MehrSchnelle Winkel. Performantere JEE Webapps mit AngularJS
Schnelle Winkel Performantere JEE Webapps mit AngularJS Lernplattform mit sozialer Komponente Portal & CMS JEE-Basis Wir fangen dann schon mal an! Portal? Forum? Social? CMS? Da gibts doch schon was?!
MehrWir bringen Ihre Notes/Domino Anwendungen sicher ins Web 19.11.2015, Bilster Berg Drive Resort Michael Steinhoff, agentbase AG. www.agentbase.
Wir bringen Ihre Notes/Domino Anwendungen sicher ins Web 19.11.2015, Bilster Berg Drive Resort Michael Steinhoff, agentbase AG www.agentbase.de 1 Agenda Grundlagen Modernisierung Möglichkeiten mit Domino
MehrSchnelle Winkel. 10x schnellere Webapps mit AngularJS und Jee
Schnelle Winkel 10x schnellere Webapps mit AngularJS und Jee Lernplattform mit sozialer Komponente Portal & CMS JEE-Basis Wir fangen dann schon mal an! Portal? Forum? Social? CMS? Da gibts doch schon was?!
MehrVorwort Einleitung Entstehung und Historie 18
Inhalt Vorwort 13 1 Einführung n 1.1 Einleitung 17 1.2 Entstehung und Historie 18 1.3 Einsatzgebiete von JavaScript 19 1.3.1 Clientseitige JavaScript-Webanwendungen 19 1.3.2 Serverseitige JavaScript-Anwendungen
MehrTypeScript JavaScript mit ohne Kopfschmerzen. Veit Weber 3. JUG Saxony Day Radebeul
TypeScript JavaScript mit ohne Kopfschmerzen Veit Weber 3. JUG Saxony Day 30.09.2016 Radebeul Über mich blog.pikodat.com veit_weber Workshops Apps AngularJS Java EE Agenda 01 02 03 Die Krankheit JavaScript
MehrENTERPRISEY ANGULAR.JS
ENTERPRISEY ANGULAR.JS THE GOOD, THE BAD, AND THE UGLY EnterJS 2015 - Ralph Guderlei Technology Advisor @ @rguderlei ENTERPRISE APPLICATIONS? komplexe Datenmodelle (100+ Entities) komplexe Geschäftsprozesse
MehrZenQuery - Enterprise Backend as a Service Single Page Applications mit AngularJS und Spring MVC. - Björn Wilmsmann -
ZenQuery - Enterprise Backend as a Service Single Page Applications mit AngularJS und Spring MVC - Björn Wilmsmann - ZenQuery Enterprise Backend as a Service Unternehmen horten Daten in Silos ZenQuery
MehrAachen, den 19. Januar 2016
Einführung in AngularJS anhand einer Single Page Application zur Darstellung und Bearbeitung von Fragebögen in MS Dynamics CRM 2013 Aachen, den 19. Januar 2016 Übersicht 1. Grundlagen 2. Die Applikation
MehrFortgeschrittene Webentwicklung
Fortgeschrittene Webentwicklung Hochschule Darmstadt, Fachbereich Informatik, Wintersemester 2016/2017 Christopher Dörge, Thomas Sauer, David Müller Vorlesung 1 Einleitung 05.10.2016 Wer sind wir? Für
MehrAngular & TypeScript. Grundlagen
Angular & TypeScript Grundlagen Überblick TypeScript Typen & Grundlagen Klassen & Interfaces Dekoratoren Module Tooling Modul Systeme & Module Loader TypeScript Compiler & Linting BuildSystem:
MehrÜbung 1: Von einer naiven JavaScript Applikation zu einem modernen Front-End Build:
Übung 1: Von einer naiven JavaScript Applikation zu einem modernen Front-End Build: Teil 1: Refactoring der naiven Applikation Wechseln Sie in das Verzeichnis 01-Intro/01-SimplisticToDoNaive Öffnen Sie
MehrKompendium der Web-Programmierung
. Thomas Walter Kompendium der Web-Programmierung Dynamische Web-Sites Mit 510 Abbildungen und 22 Tabellen 4ü Springer OOM- Hinweise zum Gebrauch des Buches XIII Teil I Grundlagen der Web-Programmierung
MehrAutomatisieren von Alltagsaufgaben. Tobias Meier BridgingIT GmbH
Automatisieren von Alltagsaufgaben Tobias Meier BridgingIT GmbH Tobias Meier Lead Softwarearchitekt Microsoft Blog: http://blog.bridging-it.de/author/tobias.meier Twitter: @bittobiasmeier Email: Tobias.Meier@bridging-it.de
MehrD3kjd3Di38lk323nnm. AngularJS. Philipp Tarasiewicz / Robin Böhm, AngularJS, dpunkt.verlag, ISBN
D3kjd3Di38lk323nnm AngularJS Philipp Tarasiewicz / Robin Böhm, AngularJS, dpunkt.verlag, ISBN 978-3-86490-154-6 Über die Autoren Philipp Tarasiewicz ist im Web groß geworden und arbeitet als freiberuflicher
MehrLT 56 - NODE.JS ES GIBT AUCH SCHÖNE MOMENTE. Ralf Enderle
LT 56 - NODE.JS ES GIBT AUCH SCHÖNE MOMENTE Ralf Enderle BE AWARE! Wir betrachten in diesem Lighting Talk ausschließlich die schönen Effekte einiger Feature von Node.js bzw. JavaScript. Über die dunklen
Mehrals Ober äche für Enterprise Java Projekte Bastian Voigt @BastianVoigt xing.com/pro"le/bastian_voigt ConceptPeople IT-Talk 8.09.
als Ober äche für Enterprise Java Projekte Bastian Voigt @BastianVoigt xing.com/pro"le/bastian_voigt ConceptPeople IT-Talk 8.09.2014 Gliederung 1) Über mich 2) Was ist Enterprise Java Softwareentwicklung?
MehrSkill Profil & Projekt CV. Version Datum 05. April 2018
Skill Profil & Projekt CV Version 2018.4 Datum 05. April 2018 SkPr REACTIVE SYSTEMS KONTAKT POSTANSCHRIFT BÜROANSCHRIFT Ingo Grebe +49 (176) 225 179 15 Tulpenweg 17 Christian-Kremp-Straße 11 Dipl.-Inform.
MehrApp-Entwicklung mit React-Native, React und Redux
Experts in agile software engineering App-Entwicklung mit React-Native, React und Redux - Ein Erfahrungsbericht Rouven Röhrig und Raphael Knecht 2017 andrena objects ag Experts in agile software engineering
MehrNode.js Einführung Manuel Hart
Node.js Einführung Manuel Hart Seite 1 Inhalt 1. Node.js - Grundlagen 2. Serverseitiges JavaScript 3. Express.js 4. Websockets 5. Kleines Projekt Seite 2 1. Node.js Grundlagen Node.js is a JavaScript runtime
MehrEchte Cross-Plattform Anwendungen mit Angular 2 in Action!
Browser, Mobile & Desktop Echte Cross-Plattform Anwendungen mit Angular 2 in Action! Christian Weyer Thinktecture AG @christianweyer 2 Christian Weyer Mitgründer & Principal Consultant Thinktecture AG
MehrVorstellung e.solutions
Vorstellung e.solutions JavaScript, TDD und Code-Katas 1 Copyright e.solutions 5/3/2017 e.solutions Das Joint Venture von Audi und Elektrobit Bereiche bei e.solutions Bereiche bei e.solutions Erlangen
MehrWebentwicklung mit Vaadin 7. Theoretische und praktische Einführung in Vaadin 7. Christian Dresen, Michael Gerdes, Sergej Schumilo
Webentwicklung mit Vaadin 7 Theoretische und praktische Einführung in Vaadin 7 Christian Dresen, Michael Gerdes, Sergej Schumilo Agenda Allgemeines Architektur Client-Side Server-Side Vaadin UI Components
MehrReact.js flottes Front-End für Domino. Knut Herrmann
React.js flottes Front-End für Domino Knut Herrmann Knut Herrmann Senior Software Architekt Leonso GmbH Notes Domino Entwickler seit Version 2 Web-App-Entwickler aktiv auf StackOverflow E-Mail: knut.herrmann@leonso.de
MehrEin UI in zwei Welten - Controls in HTML5 und WPF. Timo Korinth
Ein UI in zwei Welten - Controls in HTML5 und WPF Timo Korinth Timo Korinth Lead Developer HTML5 bei maximago Zuvor.NET / WPF Entwicklung Warum überhaupt HTML5 und WPF? Was bedeutet Control-Entwicklung
MehrApp-Entwicklung mit React-Native, React und Redux
Experts in agile software engineering App-Entwicklung mit React-Native, React und Redux - Ein Erfahrungsbericht Rouven Röhrig und Raphael Knecht Experts in agile software engineering 2 andrena Experts
MehrEntwicklung von effizienten UI-basierten Akzeptanztests für Webanwendungen
Entwicklung von effizienten UI-basierten Akzeptanztests für Webanwendungen Präsentation bei den Stuttgarter Testtagen 21.März 2013 NovaTec - Ingenieure für neue Informationstechnologien GmbH Leinfelden-Echterdingen,
MehrSkalierbare Enterprise Architekturen für Universal Windows Platform Apps
Agenda Ziele Portable Class Libraries Projektaufbau MVVM Databinding #1 MVVM Light Inversion of Control & Dependency Injection Repository Pattern Databinding #2 Skalierbare Enterprise Architekturen für
MehrSEQIS 10 things. Herzlich Willkommen! Alexander Weichselberger SEQIS Geschäftsleitung
SEQIS 10 things SEQIS 10 things Herzlich Willkommen! Alexander Weichselberger SEQIS Geschäftsleitung SEQIS 10 things Programm 2014 20.03.14 Business Analyse Einführung in den BABOK Guide 26.06.14 API Testing:
MehrJavaScript: Von einfachen Scripten zu komplexen Anwendungen. MMT 28 3. Dezember 2011
JavaScript: Von einfachen Scripten zu komplexen Anwendungen MMT 28 3. Dezember 2011 Guten Tag Mathias Schäfer (molily) molily.de Software-Entwickler bei 9elements.com Spezialgebiet JavaScript Worum geht
MehrClient-Architektur. in Angular. Philipp Burgmer
Client-Architektur in Angular Philipp Burgmer Über mich Philipp Burgmer Entwickler, Trainer, Speaker Web-Technologien TypeScript, Angular 1 Über uns W11K GmbH - The Web Engineers Gegründet 2000
MehrWebprojekte mit AngularJS und JHipster
Webprojekte mit AngularJS und JHipster Lessons learned Michel Mathis mp technology AG November 2015 Über mp technology mp technology AG, Zürich www.mptechnology.ch Individual-Software für Intranet und
MehrMaximilian Berghoff 2
ANGULAR ANGULAR WORKSHOP MAXIMILIAN BERGHOFF - 25.08.2018 - FROSCON 1 2 Maximilian Berghoff 2 Maximilian Berghoff @ElectricMaxxx 2 Maximilian Berghoff @ElectricMaxxx github.com/electricmaxxx 2 Maximilian
MehrVorwort... 3 Angular CLI: Der Codegenerator für unser Projekt Vorstellung Installation Die wichtigsten Befehle...
D3kjd3Di38lk323nnm xv Vorwort................................................... vii I Einführung 1 1 Haben Sie alles, was Sie benötigen?.................... 3 1.1 Visual Studio Code.........................................
Mehr1 mysap.com und der Web Application Server 1
D3kjd3Di38lk323nnm xi 1 mysap.com und der Web Application Server 1 1.1 Das Zeitalter der Portale... 1 1.2 Die mysap-technologie im Detail... 3 1.3 Funktionen des SAP Web Application Server... 5 2 Die Systemarchitektur
MehrRuby on Rails. Thomas Baustert Ralf Wirdemann www.b-simple.de. Alternative zur Web-Entwicklung mit Java? 27.06.2005 www.b-simple.
Ruby on Rails Alternative zur Web-Entwicklung mit Java? Thomas Baustert Ralf Wirdemann www.b-simple.de 27.06.2005 www.b-simple.de 1 Überblick Was ist Ruby on Rails? Weblog Demo Rails Komponenten Controller,
MehrUI / UX Designer (m/w)
UI / UX Designer (m/w) Konzeption und Design für Webportale, Shopsysteme und mobile Anwendungen Erstellen von Wireframes und Prototypen für neue Projekte und Features Resposive Design von Benutzeroberflächen
MehrÜber die Autoren. www.dpunkt.de/plus
Über die Autoren Philipp Tarasiewicz ist im Web groß geworden und arbeitet als freiberuflicher Technologieberater, Autor, Sprecher und Coach. Seit einigen Jahren hat er sich auf den Bereich Enterprise
MehrÜber mich. Daniel Bälz. Softwareentwickler (inovex GmbH) github.com/dbaelz
Quo vadis Dart? Über mich Daniel Bälz Softwareentwickler (inovex GmbH) dbaelz.de plus.dbaelz.de github.com/dbaelz Agenda Was Wie Warum Wohin Was ist Dart? Übersicht Einsatzgebiet Client (Browser, CLI)
MehrBe dynamic! RichClient-Funktionalitäten mit dem Google Web Toolkit
Be dynamic! RichClient-Funktionalitäten mit dem Google Web Toolkit DOAG Konferenz 16. 18.11.2010, Nürnberg Julian Gärtner info@ordix.de www.ordix.de Heutiges Ziel Einordnen von GWT in die Welt der Rich
MehrDies ist der zweite Artikel einer Serie über Electron.
Electron WebDeskApps Dies ist der zweite Artikel einer Serie über Electron. Im ersten Artikel wurden die Grundlagen von Elektron, und die benötigten Ressourcen, die man benötigt um eine Elektron-App zu
Mehrbsc Education Center bsc solutions GmbH & Co. KG Industriestr. 50 b, Walldorf Tel:
bsc Education Center bsc solutions GmbH & Co. KG Industriestr. 50 b, 69190 Walldorf education@bsc-solutions.com Tel: +49 6227 384 85-100 www.bsc-solutions.com SCHULUNGSÜBERSICHT: SAPUI5 / SAP Fiori BSC-UI-300
MehrDesign for Testability in der Praxis David Völkel, codecentric AG
Design for Testability in der Praxis David Völkel, codecentric AG http://commons.wikimedia.org/wiki/file:pit_crew_hudson_valley.jpg http://commons.wikimedia.org/wiki/file:carservice.jpg David Völkel *
MehrTragfähige Frontend-Architekturen
Tragfähige Frontend-Architekturen Till Schulte-Coerne JavaLand 2014 Wir lösen das persönlich! Frontend-Architektur? Software-Architektur! Frontend Backend Fertig! DB Was wo hin? Frontend Backend DB Rest
MehrWebComponents. Bausteine des modernen Web
WebComponents Bausteine des modernen Web Thomas Kruse Entwickler, Trainer, Berater www.trion.de @everflux Java User Group Münster Frontend Freunde Münster Karsten Sitterberg Entwickler, Trainer, Berater
MehrFlorian Rappl. TypeScript
Florian Rappl TypeScript Profil Freiberuflicher IT-Berater Doktorand Theoretische Physik Microsoft MVP für Visual C# CodeProject MVP Kurzer Abriss Aufschwung von JS Vielzahl von Bibliotheken / Code Größere
Mehrauxiliary - Objektorientiertes Framework für PHP 5 Frank Kleine auxiliary Objektorientiertes Framework für PHP5
auxiliary Objektorientiertes Framework für PHP5 Agenda Hintergründe zu auxiliary Basisfunktionalität Aktueller Status Ein paar Begriffe Beispiel: Aufbau einer Seite Spotlight: Features Selbstkritik Ausblick
MehrContinuous Integration mit VSTS Dieter Rüetschi
Continuous Integration mit VSTS Dieter Rüetschi (ruetschi@ability-solutions.ch) 1 2 Warum ist Continuous Delivery so wichtig? Geschwindigkeit schnell auf dem Markt Unterstützung und Teil des ALM 3 DevOps
MehrNILS HARTMANN OLIVER ZEIGERMANN EINSTIEG IN. React.
NILS HARTMANN OLIVER ZEIGERMANN EINSTIEG IN React http://bit.ly/react-lehmanns LEHMANNS MEDIA HAMBURG SEPTEMBER 2016 NILS HARTMANN @NILSHARTMANN OLIVER ZEIGERMANN @DJCORDHOSE HTTP://REACTBUCH.DE SINGLE
MehrKurs-Dokumentation. Zentrum für Informatik ZFI AG. Angular 6+? Der komplette Leitfaden (JANG-0319) -IT Ausbildung nach Mass
Zentrum für Informatik - Angular 6+? Der komplette Leitfaden (JANG-... 1/9 Kurs-Dokumentation Zentrum für Informatik ZFI AG Angular 6+? Der komplette Leitfaden (JANG-0319) -IT Ausbildung nach Mass http://www.zfi.ch/jang-0319
MehrTesten von sicherheitskritischer Embedded Software mit frei verfügbaren Tools. - ein Erfahrungsbericht
Testen von sicherheitskritischer Embedded Software mit frei verfügbaren Tools - ein Erfahrungsbericht Martin Mühlemann CSA Engineering AG, CH-4500 Solothurn Ausgangslage Embedded-Firmware testen für ein
MehrDabei sollen die Nutzern nach einer Authentifizierung entsprechend ihren Rechten Begriffe ändern, anlegen und kommentieren können.
Seite: 1 / 10 Designentwurf 1 Allgemeines 1.1 Kurzcharakterisierung Die Glossarverwaltung soll eine einheitliche Terminologie zwischen allen Beteiligten sicherstellen, hier zwischen den Mitarbeitern der
MehrWEBAPPLIKATIONEN MIT PHP. Wo gibt es Hilfe? Wie fang ich an?
WEBAPPLIKATIONEN MIT PHP Wo gibt es Hilfe? Wie fang ich an? Tools Webapplikationen bestehen aus Textdateien Lassen sich in Texteditoren schreiben Alternativen: Eclipse (PDT) Netbeans (Dynamic Languages)
MehrPraktikum Datenbanksysteme. Ho Ngoc Duc IFIS - Universität zu Lübeck 01.06.2005
Praktikum Datenbanksysteme Ho Ngoc Duc IFIS - Universität zu Lübeck 01.06.2005 Tomcat-Installation $JAVA_HOME (z.b. /home/dbp00/j2sdk1.4.2) $CATALINA_HOME (/home/dbp00/jakarta-tomcat-4) Skripte zum Start/Stop:
Mehr10 things I wished they d told me! Automate your mobile 10 instruktive Tipps zur Testautomation mobiler Endgeräte. 10 Tipps & Tricks zum Nachlesen
10 things I wished they d told me! Automate your mobile 10 instruktive Tipps zur Testautomation mobiler Endgeräte Markus Schwabeneder 10 Tipps & Tricks zum Nachlesen Vorwort SEQIS, der führende österreichische
MehrC++ OpenCppCoverage. Detlef Wilkening
http://www.wilkening-online.de Seite 1 / 52 C++ OpenCppCoverage Detlef Wilkening 10.11.2016 http://www.wilkening-online.de Seite 2 / 52 Warum überhaupt dieser Vortrag? Wir waren mal wieder in einer Gruppe
MehrQualität im Web Frontend
Qualität im Web Frontend Werkzeuge und Vorgehen vor Produktion Fokus Überblick zur Technik - nicht in diesem Talk komplementäre Praktiken Code-Review / Pull-Requests / Pairing Karsten Sitterberg Entwickler,
MehrNILS HARTMANN. React MODERNE WEB-ANWENDUNGEN MIT. Slides: BED-CON BERLIN SEPTEMBER
NILS HARTMANN React MODERNE WEB-ANWENDUNGEN MIT Slides: http://bit.ly/bedcon-react BED-CON BERLIN SEPTEMBER 2017 @NILSHARTMANN NILS HARTMANN Programmierer aus Hamburg Java JavaScript, TypeScript Trainings
MehrMVVM in Windows 8 und Windows Phone 8
Basel MVVM in Windows 8 und Windows Phone 8 Thomas Claudius Huber Trivadis AG Thomas Claudius Huber Principal Consultat bei Trivadis www.trivadis.com www.thomasclaudiushuber.com Trainer, Coach, Developer,
MehrContainerized End 2 End Testing
Containerized End 2 End Testing + Referent: Tobias Schneck, ConSol Software GmbH Agenda 1. Einordnung End 2 End Testing 2. Welche Vorteile bieten Container Technologien? 3. Der Sakuli End 2 End Testing
MehrEchte Cross-Plattform Anwendungen mit Angular 2 in Action!
Browser, Mobile & Desktop Echte Cross-Plattform Anwendungen mit Angular 2 in Action! Christian Weyer Thinktecture AG @christianweyer 2 Christian Weyer Mitgründer & Principal Consultant Thinktecture AG
MehrREST-API mit Node, Express und MongoDB
REST-API mit Node, Express und MongoDB 1 Installation von Node.js, MongoDB Download nodejs.org, mongodb.com Test $ node -v v10.15.0 $ npm -v 6.4.1 $ mongo --version MongoDB shell version v4.0.5 (evtl.
MehrRobuste und Praktikable Ansätze zur Verhinderung von Sicherheitsdefekten. Christoph Kern, Google
Robuste und Praktikable Ansätze zur Verhinderung von Sicherheitsdefekten Christoph Kern, Google Weit verbreitete Sicherheitslücken SQL-injection, XSS, XSRF, etc -- OWASP Top 10 Grundproblem: APIs/Frameworks
MehrARS. JavaScript/node.js Entwickler (m/w) ARS Computer und Consulting GmbH /
JavaScript/node.js Entwickler (m/w) Computer und Consulting GmbH www.ars.de / hr@ars.de DAS INTERVIEW HR Managerin Anita Feuchtinger im Interview mit einem unserer JavaScript Entwickler: HR: Wo arbeitest
MehrInhaltsverzeichnis. Vorwort 15
Vorwort 15 Einleitung 17 Über dieses Buch 18 Wie Sie dieses Buch verwenden 18 Wer dieses Buch lesen sollte 18 Meilensteine 18 Codekonventionen und Downloads 19 Softwareanforderungen 20 Danksagung 20 Teil
MehrAngular in der Praxis: Do s and Don'ts WJAX 2018
Angular in der Praxis: Do s and Don'ts WJAX 2018 Karsten Sitterberg Trainer Autor Entwickler https://sitterberg.com/ karsten@sitterberg.com @kakulty Typisch(e) Kunden Enterprise Anwendungen Komplexe Anwendungen
MehrDer frühe Tester fängt den Bug
Der frühe Tester fängt den Bug Kein Teststress am Entwicklungsende dank Webtest-First André Petry (Kühne + Nagel) SEACON 2013 16. / 17.05.2013 Agenda Vorstellung Persönlich Projekt Warum Testen oft schwierig
MehrMaven 2 Softwareprojekte mit Kultur
Maven 2 Softwareprojekte mit Kultur Patrick Zeising 28.05.2010 Motivation Projekte unterscheiden sich stark im Aufbau Abläufe beim Übersetzen und Deployen unterscheiden sich stark
MehrCode-Organisation in JavaScript
Code-Organisation in JavaScript Webworker-Stammtisch NRW 10. Januar 2013 Frederic Hemberger Codekapselung What happens in Vegas, stays in Vegas. Warum sollte man Code kapseln? Wir haben immer mehr Scripte
MehrWERDEGANG BENJAMIN STELLJES FULL STACK WEB DEVELOPER
KURZPROFIL Die Softwareentwicklung erfordert viele Voraussetzungen an eine Person wie analytisches Denken, Kompetenzen in der Problemlösung und natürlich fachliche Fähigkeiten in der Anwendungsentwicklung.
MehrDiagramme - Next Generation
Diagramme - Next Generation D3.js im Unternehmen nutzen Carsten Czarski Business Unit Database Oracle Deutschland B.V. & Co KG Was ist D3js? Daten-Visualisierung im Browser mit HTML5 und Javascript Basiert
MehrAutomatisierte Akzeptanztests für ios-apps. Sven Günther it-agile GmbH
Automatisierte Akzeptanztests für ios-apps Sven Günther it-agile GmbH Wer entwickelt native Apps? Wer testet die Apps selbst? Wer hat externe Testdienstleister? Wer hat Unit-Tests? Wer hat Akzeptanztests?
MehrLegacy Web-Apps mit AngularJS pimpen
Legacy Web-Apps mit AngularJS pimpen Über uns Jan Blankenhorn und Philipp Burgmer Software Developers w11k.com / thecodecampus.de > Esslingen / Stuttgart Schulungen, Projekt-Kickoff Consulting, Softwareentwicklung
MehrElectron - WebDeskApps
Electron - WebDeskApps Dies ist der dritte Artikel einer Serie über Electron. Im ersten Artikel wurden die Grundlagen von Electron, und die verschiedenen Ressourcen, die man benötigt um eine Electron-App
MehrMichael C. Feathers. Legacy Code. Effektives Arbeiten mit. Refactoring und Testen bestehender Software
Michael C. Feathers Effektives Arbeiten mit Legacy Code Refactoring und Testen bestehender Software Vorwort................................................... 13 Geleitwort.................................................
MehrHochschule Darmstadt Fachbereich Informatik
Hochschule Darmstadt Fachbereich Informatik Entwicklung webbasierter Anwendungen Tipps und Tricks zur Software Installation 1 Vorbemerkung Auf den Laborrechnern ist natürlich alles installiert! Die Installation
MehrMobile hybride Applikationen Investment-App der BW-Bank
Mobile hybride Applikationen Investment-App der BW-Bank avono Aktiengesellschaft Breite Straße 2 70173 Stuttgart www.avono.de Fon (0711) 28 07 57 0 Fax (0711) 28 07 57-28 Ihr Referent Manfred Heiland Senior
MehrWeb-Techniken Einführung in JavaScript
Web-Techniken Einführung in JavaScript Prof. Dr. Axel Böttcher Winter 2012/13 15. September 2012 Ausführung von JavaScript Variante 1: Ausführung im Browser durch direktes Einbetten: 1 2
MehrErfahrungen und Erkenntnisse. Klaus Richarz, HBT GmbH
Erfahrungen und Erkenntnisse Klaus Richarz, HBT GmbH Java Enterprise Edition 5.0 JBoss Seam Konsequenzen für Realisierung Qualitätssicherung Build & Deployment Fazit & Empfehlungen JBoss Seam in Projekten,
MehrWERDEGANG BENJAMIN STELLJES FULL STACK WEB DEVELOPER
KURZPROFIL Die Softwareentwicklung erfordert viele Voraussetzungen an eine Person wie analytisches Denken, Kompetenzen in der Problemlösung und natürlich fachliche Fähigkeiten in der Anwendungsentwicklung.
MehrWebApps in spezieller Umgebung
WebApps in spezieller Umgebung Neuentwicklung des dm Service-Punkts #devfestka2016 Matthias Reuter inovex GmbH @gweax Philipp Christoph FILIADATA GmbH Grafk: Polygon GmbH Alles neu?! SPAF Service-Punkt
MehrUnternehmensdokumente mit dem XML Publisher erzeugen
Unternehmensdokumente mit dem XML Publisher erzeugen Jürgen Menge TSBU Middleware ORACLE Deutschland GmbH XML-Publisher Moderne Lösung zur Entwicklung und Verteilung von Geschäftsdokumenten (Output Management)
MehrMOC 20486 - Entwicklung von ASP.NET MVC 4 Webapplikationen
MOC 20486 - Entwicklung von ASP.NET MVC 4 Webapplikationen Kompakt-Intensiv-Training Diese Schulung bereitet Sie optimal auf die MOC-Zertifzierung vor. Zu Beginn der Schulung erhalten Sie einen Überblick
MehrEine technische Plattform für Smart-Client-Systeme. Alexander Ziegler
Eine technische Plattform für Smart-Client-Systeme Alexander Ziegler Agenda Ausgangssituation Smart Client Ansatz Technische Kernthemen Erfahrungen 1 Agenda Ausgangssituation Smart Client Ansatz Erfahrungen
MehrEvaluation von Angular als Framework für Single-Page-Webanwendungen
Evaluation von Angular als Framework für Single-Page-Webanwendungen Seminarvortrag - David Simons 24.01.2018 Inhaltsverzeichnis Einleitung Motivation Kriterien Framework Vorstellung Community Auswahl Angular
MehrReferat. Continuous Integration. mit Maven und Jenkins. Benjamin Keeser. Hochschule für angewandte Wissenschaften München FB 07 Informatik (Master)
# Entwicklung verteilter Java Anwendungen # Referat Continuous Integration mit Maven und Jenkins Benjamin Keeser Hochschule für angewandte Wissenschaften München FB 07 Informatik (Master) 2 Ablauf... Continuous
MehrCross-Platform Mobile mit.net
Cross-Platform Mobile mit.net Mobile Entwicklungslandschaft Nativ Crosscompiled Hybrid Web Beste Usability? Überschaubare Kosten? Was ist Xamarin? Was ist Xamarin? 2011 Gegründet aus dem Ximian, Novell
MehrKomponentenorientierte Software-Entwicklung. Seite 1 / 42
Seite 1 / 42 Wiederholung Messaging Java Messaging Service (JMS) Pub/Sub P2P Messaging Middleware XMPP-Protokoll Java API for XML-Processing (JAXP) Java API for XML-Binding Webservices / SOA Simple Object
MehrSebastian Springer
Sebastian Springer ist Diplom-Informatiker (FH) und arbeitet als JavaScript-Entwickler bei der Mayflower GmbH in München. Neben seiner Tätigkeit als Consultant unterrichtet er als Dozent an der Hochschule
MehrContinuous Integration mit TravisCI u.a. Jan Steemann
Continuous Integration mit TravisCI u.a. Jan Steemann Ziele für heute sind: eine kleine Applikation und Code-Änderungen daran automatisiert zu testen Build-Status und Coverage zu veröffentlichen die Code-Coverage
MehrEntwicklung einer IDE unabhängigen Benutzeroberfläche für Saros. Matthias Bohnstedt Betreuer: Franz Zieris Eingereicht bei: Prof. Dr.
Entwicklung einer IDE unabhängigen Benutzeroberfläche für Saros Matthias Bohnstedt Betreuer: Franz Zieris Eingereicht bei: Prof. Dr. Prechelt Aufbau des Vortrags Einleitung Motivation: Saros für IntelliJ
MehrTest Driven Development
Test Driven Development Definition & Motivation [~15min] Demo [~10min] Stubs & Mocks [~15min] Übliche Fehler [~5min] Folie 1 TDD [Kent Beck] Schreibe keine Zeile Code ohne einen fehlschlagenden (roten)
Mehrdvconfig Webservice Produktkonfiguration mit Constraints TYPO3 Camp Berlin Juli 2016 Dr. Rico Schüppel
dvconfig Webservice Produktkonfiguration mit Constraints TYPO3 Camp Berlin Juli 2016 Dr. Rico Schüppel dvconfig Webservice Produktkonfiguration mit Constraints: Trennung von FrontEnd und Logik Produktkonfiguratoren
Mehr