Dienstag, 20. Juni 2017

ECMAScript 2015-17 in der Praxis

Der ECMA2015-Standard hat viele Verbesserungen in JavaScript eingebracht. ES2017 erscheint voraussichtlich wieder im Juni. Nach wie vor geht die Adaption neuerer Sprachfeatures in der Industrie aber leider eher zögerlich voran.
Dabei gibt es dafür keinen Grund. Dank Transpilern wie Babel lassen sich die meisten Features problemlos auch auf älteren Browsern verwenden.
In diesem Workshop lernen Sie, Features von ES15-17 in der Praxis einzusetzen. Wir zeigen Ihnen, wo es sinnvoll ist, und geben wertvolle Tipps aus der Praxis.
Benötigt wird ein eigenes Notebook. Wenn Sie bereits über eine installierte Umgebung verfügen, können Sie diese gerne einsetzen. Ansonsten stellen wir eine zur Verfügung.

Vorkenntnisse: JavaScript-Grundlagen.

Lernziele: Ziel ist es, ECMAScript 2015-2017 am Ende des Workshops in der Praxis einsetzen zu können.

Technische Voraussetzungen: Benötigt wird ein eigenes Notebook. Wenn Sie bereits eine Entwicklungsumgebung (Editor und Testframework) installiert haben, können Sie diese gerne einsetzen. Ansonsten stellen wir eine zur Verfügung.

Agenda:
8:30 Uhr Registrierung

9:30 Uhr: Beginn des Workshops
Einführung & Warmup

11:00 - 11:15 Uhr Kaffeepause
Fat-Arrow und Higher-Order-Functions

12:30 - 13:30 Uhr Mittagessen
Klassen und OOP in ES2015+

15:00 - 15:15 Uhr: Kaffeepause
Async/Await
Destructuring
Weitere ES2015/16-Katas nach Wahl
Retrospektive

ca. 17:30 Uhr: Ende

Marco Emrich
(webmasters akademie)

Wolfram Kriesing

Dienstag, 20. Juni 2017
09:30h

Einstieg in Angular

Angular ist das erfolgreichste JavaScript-Framework unserer Zeit. Es unterstützt Sie dabei, moderne clientseitige Web-Anwendungen zu erstellen. Bewährte Konzepte wie Dependency Injection und testgetriebene Entwicklung finden nun auch Einzug in die JavaScript-Welt und machen diese somit attraktiv für den Enterprise-Einsatz. Durch die Umsetzung in TypeScript fällt der Einstieg besondern Entwicklern aus der Java- oder C# Welt oft viel leichter als in andere Frameworks. Dieser Workshop führt Sie an die Entwicklung mit Angular heran. Es werden die Basis-Komponenten und Konzepte von Angular vermittelt.

Vorkenntnisse: Grundlagen Web, HTML, JavaScript/TypeScript wünschenswert.

Lernziele: Grundlagen des Frameworks Angular verstehen und anwenden können.

Technische Voraussetzungen: Die Teilnehmer sollten ihren eigenen Laptop mitbringen und folgende Vorbereitung in unserem Classlab durchgeführt haben: https://workshops.de/classroom/enterjs-angular-workshop-2017/aufgaben?token=angular-enterjs-2017
Hinweis an die Teilnehmer: Falls Sie ein Gerät Ihrer Firma verwenden, überprüfen Sie vorher bitte, ob eines der folgenden, gelegentlich vorkommenden Probleme bei Ihnen auftreten könnte.
- Workshop-Teilnehmer hat keine Administrator-Rechte
- Corporate Laptops mit übermäßig penibler Sicherheitssoftware
- Gesetzte Corporate-Proxies, über die man in der Firma kommunizieren muss, die aber in einer anderen Umgebung entsprechend nicht erreicht werden

Agenda:
8:30 Uhr Registrierung

9:30 Uhr: Beginn des Workshops
Grundkonzepte von Angular
Aufsetzen eines gemeinsamen Projektes mit Angular-CLI

11:00 - 11:15 Uhr Kaffeepause
Arbeiten mit Komponenten und Services
Dependency Injection

12:30 - 13:30 Uhr Mittagessen
Routing
Formulare

15:00 - 15:15 Uhr: Kaffeepause
Der Build Prozess
Best Practices
Offene Fragenrunde

ca. 17:30 Uhr: Ende

Robin Böhm
(AngularJS.DE)

Dienstag, 20. Juni 2017
09:30h

Angular für Fortgeschrittene

Mittlerweile gibt es unzählige Einführungen zu Angular. Doch das neue SPA-Framework aus der Feder von Google hat weitaus mehr zu bieten, als in einer typischen Einführung Platz hat. Aus diesem Grund behandelt dieser Workshop für alle, die schon mit Angular gearbeitet oder sich zumindest mit dem Tutorial auf angular.io vorbereitet haben, fortgeschrittene Themen. Dazu zählen erweiterte Routing-Techniken, Authentifizierung und Autorisierung, mehrere Formen der Performance-Optimierung, Internationalisierung und erweiterte Aspekte von Komponenten. All diese Themen werde anhand eines durchgängigen Beispiels vermittelt.

Vorkenntnisse: Grundlagen von Angular.

Lernziele: Weiterführende Themen anhand eines durchgängigen Beispiels zeigen.

Technische Voraussetzungen: Die Teilnehmer benötigen einen Laptop mit ca. 100 MB freien Speicher, NodeJS in der LTS-Version (https://nodejs.org/en/), einen Editor mit Unterstützung für TypeScript, z.B. Visual Studio Code (freie Lösung für Mac, Windows und Linux, https://code.visualstudio.com/) oder IntelliJ/ WebStorm.
Falls Sie ein Gerät Ihrer Firma verwenden, überprüfen Sie vorher bitte, ob eines der folgenden, gelegentlich vorkommenden Probleme bei Ihnen auftreten könnte:
- Workshop-Teilnehmer hat keine Administrator-Rechte
- Corporate Laptops mit übermäßig penibler Sicherheitssoftware
- Gesetzte Corporate-Proxies, über die man in der Firma kommunizieren muss, die aber in einer anderen Umgebung entsprechend nicht erreicht werden

Agenda:
8:30 Uhr Registrierung

9:30 Uhr: Beginn des Workshops
Erweiterte Routing-Techniken und Performance
Aux-Routes
Lazy Loading
Preloading
AOT und Tree Shaking
Datenbindungsperformance mit OnPush

11:00 - 11:15 Uhr Kaffeepause
Internationalisierung (I18N) und Authentifizierung
I18N mit dem Angular Compiler
I18N mit ngx-translate (vormals ng2-translate)
Moderne Authentifizierungsszenarien mit OAuth 2 und OpenId Connect

12:30 - 13:30 Uhr Mittagessen
Übungen

15:00 - 15:15 Uhr: Kaffeepause
Übungen

ca. 17:30 Uhr: Ende

Manfred Steyer
(SOFTWAREarchitekt)

Dienstag, 20. Juni 2017
09:30h

Einführung in React

Airbnb, Dropbox, Expedia, Instagram, Netflix, Salesforce, Twitter, Whatsapp - all dies sind Firmen, die Frontend Applikationen mit React JS implementiert haben. Die Gründe dafür sind vielfältig. Hohe Performance, gute Integrierbarkeit in bestehende Systeme, leicht nachvollziehbarer Code und nicht zuletzt eine steile Lernkurve tragen zur großen Popularität bei.
Dieser Workshop dient als Einstieg in die Programmierung von modernen Webapplikationen mit React JS. Im ersten Teil des Workshops lernen Sie React's modulares Komponentensystem, die Funktionsweise des Virtual DOM und alle weiteren Grundprinzipien kennen. Außerdem betrachten wir im Überblick die für eine React-Applikation zusätzlich notwendigen Technologien wie ES6, Babel, Webpack und Redux. Anschließend wenden wir die erlernten Kenntnisse im praktischen Teil an und entwickeln zusammen eine vollwertige React Webapplikation.
Ausgestattet mit vielen Tipps aus der Praxis können Sie nach dem Workshop Ihr nächstes Projekt selbstbewusst mit React starten.

Vorkenntnisse: Grundlegende Kenntnisse in JavaScript und HTML.

Lernziele: Prinzipien der React Programmierung kennen lernen und praktisch anwenden können.

Technische Voraussetzungen: Für den praktischen Teil des Workshops benötigen Sie einen Laptop. Folgende Vorbereitungen sind nötig:
- Installieren Sie Node.js. Für schnellere Installationen laden Sie bitte eine Version >=6 herunter bzw. updaten, wenn bereits vorhanden.
- Mit der Installation von Node.js erhalten Sie automatisch npm in seiner neuesten stabilen Version. Sollten Sie npm bereits installiert haben, updaten Sie bitte auf eine npm Version >=3.
- Installieren Sie bitte eine Entwicklungsumgebung oder einen Texteditor Ihrer Wahl, bei dem Sie leicht die Ordnerstruktur eines Projekts einsehen können (z.B. Sublime, Atom, Webstorm oder Visual Studio Code).
Innerhalb des Praxis-Teils werden Sie in Kleingruppen die Funktionalität einer vollwertigen React Applikation programmieren, welche Sie dann den weiteren Teilnehmern vorstellen und deren Lösungsansätze und Varianten wir in der Gruppe besprechen. Bitte stellen Sie daher sicher, dass Ihr Laptop über einen HDMI-Anschluss für die Verbindung zu einem Beamer verfügt. Falls Sie ein Gerät Ihrer Firma verwenden, überprüfen Sie vorher bitte, ob eines der folgenden, gelegentlich vorkommenden Probleme bei Ihnen auftreten könnte.
- Workshop-Teilnehmer hat keine Administrator-Rechte
- Corporate Laptops mit übermäßig penibler Sicherheitssoftware
- Gesetzte Corporate-Proxies, über die man in der Firma kommunizieren muss, die aber in einer anderen Umgebung entsprechend nicht erreicht werden

Agenda:
8:30 Uhr: Registrierung

9:30 Uhr: Beginn des Workshops
Theorie I - Grundprinzipien von React JS

11:00 - 11:15 Uhr: Kaffeepause
Theorie II - React in seinem Ecosystem: ES6, Babel, Webpack, Redux im Überblick

12:30 - 13:30 Uhr: Mittagessen
Praxis I - Entwicklung einer Webanwendung mit React im Pair Programming

15:00 - 15:15 Uhr: Kaffeepause
Praxis II - Präsentation der praktischen Ergebnisse und Ausblick

ca. 17:30 Uhr: Ende

Kristin Baumann

Dienstag, 20. Juni 2017
09:30h

Einstieg in Node.js

Sie wollten schon immer wissen, wie man Applikationen in Node.js schreibt? Dann ist dieser Workshop genau das Richtige für Sie.
Von der Kommandozeile über Webapplikationen bis hin zu installierbaren Desktopapplikationen lässt sich mit Node.js nahezu alles umsetzen – man muss nur wissen wie. In diesem Workshop lernen Sie den Aufbau einer Node.js-Applikation und zahlreiche Best Practices im Umgang mit der JavaScript-Plattform kennen. Außerdem werden Themen wie Architektur, Design Patterns und Qualitätssicherung behandelt.
Zu jedem Thema gibt es praktische Beispiele, die Sie auch selbst mit- und weiterentwickeln können. Und natürlich bleibt genügend Zeit, um Ihre Fragen zum Thema Node.js zu beantworten.

Vorkenntnisse: Grundlegende JavaScript-Kenntnisse.

Lernziele: Sie lernen den Aufbau einer Node.js-Applikation sowie entsprechende Best Practices kennen. Darüber hinaus erhalten Sie praktische Hinweise zu Architektur, Design Patterns und Qualitätssicherung in Node.js-Projekten.

Technische Voraussetzungen: Bitte bringen Sie für die praktischen Übungen einen eigenen Rechner mit und installieren Sie vorher möglichst folgende Software:
- Auf dem Rechner sollte Node.js in der Version 7.10 (die aktuellste) installiert sein.
- Der NPM sollte in Version 4.2 (auch die aktuellste) installiert sein (wird automatisch mit Node.js installiert).
- Als Entwicklungsumgebung sollten Sie im Idealfall WebStorm oder Visual Studio Code installiert haben.
- Wenn Sie über VPN oder einen Proxy arbeiten, stellen Sie bitte sicher, dass Sie über NPM Pakete installieren können.
Falls Sie ein Gerät Ihrer Firma verwenden, überprüfen Sie vorher bitte, ob eines der folgenden, gelegentlich vorkommenden Probleme bei Ihnen auftreten könnte:
- Workshop-Teilnehmer hat keine Administrator-Rechte.
- Corporate Laptops mit übermäßig penibler Sicherheitssoftware
- Gesetzte Corporate-Proxies, über die man in der Firma kommunizieren muss, die aber in einer anderen Umgebung entsprechend nicht erreicht werden.

Agenda:
8:30 Uhr: Registrierung

9:30 Uhr: Beginn des Workshops
Node.js-Grundlagen, NPM/Yarn, Node.js auf der Kommandozeile

11:00 - 11:15 Uhr: Kaffeepause
Dateisystem, Streams, Asynchronität

12:30 - 13:30 Uhr: Mittagessen
Webserver, Node.js als Client, Express

15:00 - 15:15 Uhr: Kaffeepause
Testing, Tools

ca. 17:30 Uhr: Ende

Sebastian Springer
(MaibornWolff)

Dienstag, 20. Juni 2017
09:30h

Event-getriebene Entwicklung und Architektur

Zahlreiche Softwareprojekte scheitern. Das liegt nicht nur an den gewählten Technologien, sondern häufig vor allem an einem Mangel an interdisziplinärer Kommunikation. Entwickler und Fachleute sprechen verschiedene Sprachen und verstehen einander nicht. Susanna Roden, Matthias Wagler und Golo Roden zeigen in diesem Workshop, wie die Event-getriebene Entwicklung nicht nur das Fundament für besser wartbare Software legt, sondern auch die sprachliche Kluft verringert. Die Teilnehmer entwickeln eine Software von der Idee bis zur fertigen Implementierung. Quasi im Vorbeigehen entsteht auf diesem Weg genau das, was der Kunde tatsächlich haben wollte.

Vorkenntnisse: Erfahrung mit JavaScript und Node.js, Interesse an Architektur, Frontend- und Backend-Entwicklung.

Lernziele: In kürzerer Zeit bessere Software schreiben, die den Anforderungen des Kunden tatsächlich gerecht wird.

Technische Voraussetzungen: Keine (ein Notebook wird *nicht* benötigt)

Agenda:
8:30 Uhr: Registrierung

9:30 Uhr: Beginn des Workshops
Theorie: CQRS, DDD, Eventsourcing & Co.

11:00 - 11:15 Uhr: Kaffeepause
Praxis: Modellieren

12:30 - 13:30 Uhr: Mittagessen
Praxis: Modellieren + Implementieren

15:00 - 15:15 Uhr: Kaffeepause
Praxis: Präsentation der praktischen Ergebnisse
Implementieren + Zusammenfassung

ca. 17:30 Uhr: Ende

Golo Roden
(the native web)

Susanna Roden
(the native web)

Matthias Wagler
(the native web)

Dienstag, 20. Juni 2017
09:30h

Mittwoch, 21. Juni 2017

An Exaggeration, But Only Sort Of: Governance, Politics, and Sustainability in Open Source Software

"Value your freedom or you will lose it, teaches history. 'Don't bother us with politics', respond those who don't want to learn."
-Richard M. Stallman

Many tech media publications have happily declared that Open Source is eating the software world and it's hard to deny that the once 'too political' software principle is successfully spreading, among individual practitioners and enterprise organizations alike. Yet still today, 'Keep your politics out of my code' is a common rallying cry amongst developers.

In this talk, I'll define Open Source Software as a deeply political practice, with social and economic implications. In doing so, I'll address my role as Individual Membership Director on the Node.js Foundation Board of Directors and the work that is currently being done to improve and sustain the Node.js Open Source Community.

Vorkenntnisse: No special prior knowledge necessary.

Lernziele: Attendees will leave this talk with a new perspective on software development, and, armed with a toolkit of definitions and strategies, be prepared to take a more political role as open source developers.

Ashley Williams
(npm, Inc.)

Mittwoch, 21. Juni 2017
09:30h

Verteilte Architektur für Unternehmen

In alten Technologien geschriebene CRUD-Anwendungen sind in die Jahre gekommen und machen uns das Leben schwer. Die Zeit ist reif für skalierbare und elastische Architekturen, die Unternehmen zugleich auch auf die Cloud vorbereiten. Eine solche Architektur ist CQRS, deren Umsetzung allerdings gar nicht so leicht fällt. Es gilt zahlreiche Hürden zu meistern, konzeptioneller wie technischer Natur: CAP, Eventual Consistency, Streams, Asynchronität – das sind nur einige der Aspekte, die heikel werden können. Golo Roden erklärt Ihnen in dieser Session, wie Sie CQRS angehen, worauf es zu achten gilt und wie Sie die auftretenden Probleme meistern.

Vorkenntnisse: Erfahrung mit JavaScript und Node.js, Interesse an Architektur, Frontend- und Backend-Entwicklung.

Lernziele: In kürzerer Zeit bessere Software schreiben, die den Anforderungen des Kunden tatsächlich gerecht wird.

Golo Roden
(the native web)

Mittwoch, 21. Juni 2017
10:25h

Using the web to build your app.

Streamline your products by having a single build and deploy pipeline to ship a single app for the Web Android and a myriad of other platforms. By taking advantage of the Web's ubiquity and new features in the browser the Web can provide a powerful platform delivering your apps to a very wide range of devices. This talk aims introduce the Web App Manifest, Service Workers for making websites work offline and adding Push Notifications.

Vorkenntnisse: Web technologies such as HTML and JavaScript.

Lernziele: By the end of the talk, users should feel comfortable to build a web app or add app-like functionality to their existing website.

Ada Rose Edwards
(Samsung)

Mittwoch, 21. Juni 2017
10:25h

AngularJS-1-Anwendungen nach Angular 2.x migrieren

AngularJS 1 war in den letzten Jahren eines der am meisten verwendeten Frameworks für SPAs. Mit Angular 2 und den darauf folgenden Versionen steht seit einiger Zeit der Nachfolger bereit. Für viele Entwickler und Projektmanager stellen sich jetzt die Fragen: Upgrade? Und wenn ja, wie?
Dieser Vortrag gibt einen Überblick über die Möglichkeiten, eine AngularJS-1.x-Anwendung schrittweise zu migrieren, und beantwortet Fragen, die dabei auftauchen: Baut man TypeScript ein? Wie sieht es mit Build-Systemen aus? Kann ich den Angular-2-Coding-Style in meiner AngularJS-1.x-Anwendung verwenden? Wie kann ich AngularJS 1 und Angular 2 parallel einsetzen? Außerdem wird gezeigt, welche Stolpersteine auftreten können und wie man trotzdem zum Ziel kommt.

Vorkenntnisse: AngularJS-1- und Angular-Grundwissen.

Lernziele: Zuhörer sollen einen Überblick darüber erhalten, wie eine Migration aussehen kann.

Philipp Burgmer
(W11K)

Mittwoch, 21. Juni 2017
10:25h

Asynchrones JavaScript in fünf Varianten

Callbacks, Events oder Promises? Oder doch yield mit Generatorfunktionen? Oder auf ES7 warten? Und wenn: nativ oder mit Library? Das Problem: Sie müssen sich für irgendetwas entscheiden, wissen aber nicht, warum Sie gerade dieses oder jenes Konzept wählen sollten. Diese Session erklärt und vergleicht die verschiedenen Ansätze und kann Ihnen im Alltag eine wertvolle Entscheidungshilfe bieten.

Vorkenntnisse: Interesse an JavaScript, Neugier auf asynchrone Programmierung.

Lernziele: Das Ziel ist eine Entscheidungshilfe, wann man welches asynchrone Programmiermodell verwenden sollte.

Golo Roden
(the native web)

Mittwoch, 21. Juni 2017
11:40h

Die Desktopanwendung ist tot, lang lebe die Single-Page Application – ein Umstellungsbericht der LVM Versicherung

Großunternehmen müssen sich der Herausforderung stellen, ihre IT-Systeme zukunftsfähig zu halten. So werden User-Clients immer häufiger als Web-Clients umgesetzt.
Die LVM Versicherung wagt nun den Schritt, ihren selbst entwickelten, vollintegrierten und monolithischen Java-Swing-Client schrittweise durch SPA-Clients für die Versicherungssparten abzulösen. Dabei ist das Beibehalten einer sehr guten User Experience auch während der Ablösung für die ca. 10.600 Mitarbeiter äußerst wichtig.
Dieser Vortrag soll den eingeschlagenen Weg zu einem zukunftsfähigen Architekturansatz und seine Herausforderungen beschreiben und die ersten Erfahrungen aus den entwickelnden Teams vorstellen.

Vorkenntnisse: Vertrautheit mit Softwarearchitektur im Unternehmensumfeld.

Lernziele: Ziel ist es, zu zeigen, wie eine SPA mit Angular in große, gewachsene Unternehmensstrukturen integriert wird. Es sollen der Entscheidungsprozess und Alternativen der Integration verdeutlicht werden.

Michael Füser
(LVM Versicherung)

Christian Grünberg
(LVM Versicherung)

Mittwoch, 21. Juni 2017
11:40h

#neuland

Neue Schnittstellen erweitern das Web Tag für Tag um mehr Funktionalität. In diesem Vortrag werden diverse neue APIs gezeigt, die fast alle noch hinter Browser-Flags versteckt sind. So werden zum Beispiel Web Bluetooth, Web USB, Payment Request API und einige mehr erläutert und anhand einiger Code-Beispiele und Live-Demos veranschaulicht. Außerdem wird gezeigt, wie mit Chrome Origin Trials neue Web APIs bereits heute auch mit einer breiten Masse an Benutzer getestet werden können.

Vorkenntnisse: Grundlegende Kenntnisse in JavaScript.

Lernziele: Zuhörer lernen in diesem Vortrag die grundlegende Funktionsweise diverser neuer Web APIs und mögliche Einsatzgebiete kennen.

Tim Roes
(inovex)

Mittwoch, 21. Juni 2017
11:40h

Am Smartphone arbeiten? Electron all the things!

Das Web entwickelt sich stetig weiter. Bluetooth, Offline-Möglichkeiten, sogar 'Virtual Reality' sind inzwischen im Browser möglich und mobile Geräte sind weit mehr als nur ein Trend. Bedeutet das, dass Desktop-Applikationen nun überflüssig sind?
Ich denke nicht! Die meisten von uns verbringen immerhin mehr als 8 Stunden vor ihrem Rechner. Und dank Electron kann man nun auch Desktop-Apps einfach in HTML, CSS und JavaScript verfassen.
In diesem Talk schauen wir, wie schwer es wirklich ist, eine Desktop-App mit Web-Technologie zu schreiben.

Vorkenntnisse: Grundlegendes Node.js- und Frontend-Wissen.

Lernziele: Zuhörer sollen Electron kennenlernen und sehen, wie einfach sich damit Cross-Plattform-Desktop-Anwendungen erstellen lassen.

Stefan Judis
(Contentful)

Mittwoch, 21. Juni 2017
12:35h

It’s all about the domain – Erfahrungen aus 10 Jahren Domain Driven Design

Beim Bauen von Software werden tolle Technologien, Programmiersprachen und Tools eingesetzt. Das ist gut und richtig. Aber leider wird dabei oft aus den Augen verloren, dass das Entscheidende nicht die Technik, sondern die Fachlichkeit ist. Wenn wir in der Software nicht das fachliche Modell abbilden, wird sie unseren Anwendern nicht bei Ihrer Arbeit helfen. Davor schützt uns keine Technologie der Welt.
Um das zu verhindern, zeigt dieser Vortrag, wie man die Architektur so baut, dass sie die Fachlichkeit darstellt, und wie Domain Driven Design und Microservices dabei helfen können.

Vorkenntnisse: Ein Jahr Programmiererfahrung.

Lernziele: Entwickler sollen ein grundlegendes Verständnis von DDD erhalten und dessen Vorteile erkennen.

Carola Lilienthal
(WPS - Workplace Solutions)

Mittwoch, 21. Juni 2017
12:35h

From bleeding edge to state of the art: One year with Angular

On March 31, 2016, NPR launched a production web app built with Angular 2, which was still in beta at the time; the final, stable release of v2.0 went live on September 14.
As early adopters, we faced challenges ranging from convincing internal stakeholders to put our fates in the hands of a pre-release framework, to collaborating with a different team that was using React, to making technical design decisions while navigating API changes and incomplete documentation.
Come learn what we love the most about Angular, the best resources for getting started, what we would do differently if we were to start all over again, and why we think you might want to consider using it for your next project.

Vorkenntnisse: This talk is most appropriate for those not yet familiar with Angular, but it includes lessons learned from running a production app for one year, which is useful if you already have Angular experience.

Lernziele: This talk teaches the differences between versions 1 and 2, the core design principles for Angular apps, the best ways to get started, and lessons learned from running a production app for one year.

Nara Kasbergen
(National Public Radio)

Mittwoch, 21. Juni 2017
12:35h

Understanding JavaScript-code through dynamic analysis

Dynamic analysis tools can help us locate bugs and understand the behavior of our code. Beyond just observing execution in a debugger, we can access past program states and look for an explanation for the behavior we observed.
This talk will explain what dynamic analysis is, show how to build dynamic analysis tools, and give examples of the insights they can provide.

Vorkenntnisse: A good understanding of JavaScript.

Lernziele: At the end of the talk, attendees will understand dynamic analysis tools and when to use them in practice.

Matt Zeunert
(Matt Zeunert Ltd)

Mittwoch, 21. Juni 2017
14:20h

Wie geht eigentlich Softwareentwicklung?

Viele Teams und Unternehmen streben nach einem modernen Entwicklungsprozess. Leider mangelt es jedoch häufig an Wissen und Erfahrung, wie ein solcher im Detail funktioniert. Übrig bleiben viele Fragen: Wie wichtig ist das Verwenden von Feature-Branches? Wie steht es um Continuous-Deployment? Welche Rolle spielt die Cloud? Und Kanban? Alle diese Fragen beantwortet Golo Roden in dieser Session. Er fügt die vielen kleinen Puzzleteile zu einem großen Bild zusammen und erklärt, wie ein moderner Softwareentwicklungsprozess aussieht, wie man ihn umsetzt, und worauf es dabei zu achten gilt.

Vorkenntnisse: Bereitschaft für unbequeme Veränderung, die die eigene Komfortzone gefährden könnte ...

Lernziele: Verständnis und Wissen, wie und warum moderne Softwareentwicklung funktioniert.

Golo Roden
(the native web)

Mittwoch, 21. Juni 2017
14:20h

React & Redux: Skalierbar bleiben – auch in komplexen Architekturen

Eine Todo-Listen App schreiben kann jeder. Aber wenn die App dann größer werden soll, fangen die Probleme an ...
Um auch in großen Projekten und komplexen Architekturen skalierbar zu bleiben, ist ein solides Fundament wichtig. Wie muss meine Applikations-Architektur aussehen, damit man sich auch mit vielen Entwicklern nicht gegenseitig 'auf die Füße tritt'? Was kann man tun um Code nachhaltig wartbar zu halten? Wie muss ein Entwicklerteam 'funktionieren' um sowohl Geschwindigkeit als auch die Qualität aufrecht halten zu können?

Vorkenntnisse:

Lernziele: Zuhörer sollen die größten Stolpersteine in komplexen Projekten erkennen, die Philosophie hinter React und Redux verstehen und Konzepte wie Modularisierung, Flux und Immutability gewinnbringend einsetzen sowie Entwicklerteams motivieren.

Michael Seel
(nexum)

Mittwoch, 21. Juni 2017
14:20h

Stellvertretungsberechtigt – das JS-Proxy-Objekt

Dass sich ein JavaScript-Objekt versiegeln oder einfrieren lässt, dürfte weithin bekannt sein. Aber das Metamodell von JavaScript hat noch weit mehr zu bieten: Mit Hilfe des standardisierten Proxy-Objekts lassen sich nämlich alle Herzenswünsche erfüllen, die auch über die eines Bibliotheksentwicklers hinaus gehen.
Deshalb zeigt dieser Vortrag, was das Proxy-Objekt alles leistet und wozu man es auch als normalsterblicher Entwickler einsetzen kann, um die eigene Software sicherer, robuster und flexibler zu machen.

Vorkenntnisse: Rudimentäre Kenntnisse in JavaScript.

Lernziele: Den Teilnehmern soll vermittelt werden, wie das Proxy-Objekt arbeitet und welchen konkreten Nutzen dessen Einsatz bietet.

Michael Wiedeking
(MATHEMA Software)

Mittwoch, 21. Juni 2017
15:15h

Vue.js - klare Konzepte, vielseitig, performant

Vue.js tritt als modernes Webframework an, das einen einfachen Einstieg bietet und modulare Anwendungen ermöglicht. Inzwischen liegt Version 2 vor, und über 45.000 Github-Sterne zeigen seine Beliebtheit. Der Vortrag stellt die Konzepte von Vue.js vor, wie einfache und fortgeschrittene Anwendungen aussehen können, und welche Werkzeuge für Entwickler vorliegen. Er basiert auf den Erfahrungen, die wir mit dem Einsatz von Vue.js 1 und der Migration auf Vue.js 2 gesammelt haben.

Vorkenntnisse: Grundlegende JavaScript-Kenntnisse.

Lernziele: Zuhörer sollen die Konzepte hinter Vue.js kennenlernen und es nach dem Vortrag besser einschätzen können. Außerdem werden Erfahrungen vom Update-Prozess geteilt.

Alexander Schwartz
(msg systems)

Mittwoch, 21. Juni 2017
15:15h

Schnellere Single-Page Applications mit AOT und Tree Shaking am Beispiel einer Angular-Anwendung

Ahead-of-Time-Compiling (AOT-Compiling) lagert viele Aufgaben, die Angular 2 sonst beim Programmstart erledigen müsste, in die Build-Phase aus. Das Ergebnis ist eine schnellere, aber auch schlankere Anwendung. In Kombination mit Tree-Shaking lässt sich die Größe der auszuliefernden Bundles weiter drastisch verringern.
In dieser Session erfahren Sie anhand einer Angular-Anwendung, was sich hinter diesen Konzepten verbirgt und wie Sie damit die Leistung Ihrer Anwendungen optimieren können.

Vorkenntnisse: SPA-Grundlagen werden vorausgesetzt. Angular-Grundlagen sind von Vorteil, aber nicht zwingend nötig.

Lernziele: Entwickler erfahren, was AOT und Tree Shaking ist und wie man beides durchführen kann.

Manfred Steyer
(SOFTWAREarchitekt)

Mittwoch, 21. Juni 2017
15:15h

Los geht's mit TypeScript!

Eine der größten Diskussionen in der Welt der Programmiersprachen dreht sich um deren Typsysteme. TypeScript ist Microsofts Versuch, JavaScript mit einem stärkeren Typsystem auszustatten und dabei alle Fraktionen glücklich zu halten.
Wir werden nicht in die endlose Debatte eintauchen und uns stattdessen darauf konzentrieren, wann TypeScript Sinn macht und wie Sie noch heute TypeScript in Ihrem Projekt nutzen können.

Vorkenntnisse: Grundlegende JavaScript-Kenntnisse.

Lernziele: Zuhörer sollen in diesem Talk die verschiedenen Aspekte von TypeScript kennenlernen und lernen, wie man sowohl ein neues Projekt damit beginnt als auch alte nach TypeScript umzieht.

Dominik Kundel
(Twilio)

Mittwoch, 21. Juni 2017
16:30h

Test all the things – eine Testpyramide für Node.js-Microservices

Bei einer Architektur mit vielen Microservices sind gute End-2-End- und Smoke-Tests unerlässlich, um sicherzustellen, dass alle Komponenten reibungslos zusammenspielen. Gleichzeitig gibt es bei Node.js in diesem Bereich bisher wenige Standard-Module und -Vorgehensweisen.
Im Vortrag wird vorgestellt, welches System von Tests wir bei Shopgate nutzen, um diesem Problem zu begegnen: von Unit- über Integrations- und End-2-End- bis hin zu Smoke-Tests . Neben der Auswahl nützlicher npm-Module wird dargestellt, wie docker-compose uns bei der Arbeit hilft (lokal und in der Cloud).

Vorkenntnisse: Grundverständnis von Node.js, der Microservices-Architektur und Docker.

Lernziele: Zuhörer sollen lernen, wie sich mit den richtigen Modulen und Docker mit überschaubarem Aufwand verschiedene Arten von Tests für ein System aus Node.js-Microservices entwickeln lassen.

Franziska Klingner
(Shopgate)

Mittwoch, 21. Juni 2017
16:30h

Goodbye Flatland! An introduction to WebVR and what it means for web developers

Vortragssprache wird nach Rücksprache mit dem Publikum bestimmt / Talk will be held in German or English, depending on the audience's wishes!

'I come to proclaim that there is a land of three dimensions', said the perfect circle to the two-dimensional Mr. Square in one of my favorite novels 'Flatland' by Edwin A. Abott.
It's 2017 and Mr. Square's and my dream has finally come true: virtual reality devices are ready to delight a large audience. Fortunately there are not only proprietary tools to built VR experiences, but there is also an experimental API for the browser.
My talk will give you an overview of the WebVR ecosystem, beginning with a short introduction of the basic VR concepts, like head tracking sensors, importance of the field of view and how stereoscopic images simulate three dimensions in your brain. You will also see the current status of the WebVR API in action with some code samples of a 360 degree video for VR and – of course – fallbacks for incompatible devices. Which leads to another important point of this talk: the struggles of creating VR applications today. There are a lot of unanswered questions, e.g. UX design challenges, input devices, motion sickness or browser support. This is why the talk ends with my advice on how to create responsible applications, that won't harm your users – neither physically nor psychologically.

Vorkenntnisse: No special previous knowledge needed.

Lernziele: You will learn how virtual reality in the web works and which APIs and frameworks you can use, to create responsible WebVR applications.

Michaela Lehr
(geildanke.com)

Mittwoch, 21. Juni 2017
16:30h

An introduction to neural nets and Machine Learning with JS

Neural nets are sparklingly fascinating. Maybe there are less sparkles at first, but they definitely become great once you get to understand the nets.
In this talk, I would like to take you through my personal journey of learning Neural Nets and Machine Learning and spread the excitement bug to all of you. I will explain what Neural Nets are, give some examples, talk about how they learn and, with the help of the demo gods, build a 'Hello World' example from scratch.

Vorkenntnisse: No previous knowledge necessary.

Lernziele: Hopefully the talk will spread excitement about neural nets and give you some ideas on how to incorporate them into your own projects.

Carmen Popoviciu

Mittwoch, 21. Juni 2017
17:25h

Flowtype – strikte JavaScript-Typisierung, in beliebiger Dosis

const x: bool = '1';// This type is incompatible with boolean.
Der Trend, JavaScript-Code mit (strikten) Typen anzureichern, hält an. So hat Facebook mit Flow ein Tool gebaut, um JavaScript-Code optional mit Typedefinitionen zu versehen. Ob es darum geht, die IDE bei der Autovervollständigung zu unterstützen, die Anzahl der Tests zu reduzieren oder wirklich den Code sicherer zu machen, Flow macht es möglich. Gewusst wie!
Von simpler Annotation bis hin zum Erstellen komplexer Typen, Realtime Type Checking und schnellem Feedback – in diesem Vortrag werde ich ein wenig von den Erfahrung mit Flow aus dem letzten Jahr erzählen und echte Szenarien, Grenzfälle und auch Fragen diskutieren.

Vorkenntnisse: JavaScript, vielleicht etwas Typisierung und Neugier.

Lernziele: Zuhörer sollen eine Vorstellung der realen Einsatzmöglichkeiten von Flow erhalten und lernen, es in Frage zu stellen, um eine Grundlage für eine Entscheidung für oder gegen den Einsatz von Flow zu bekommen.

Wolfram Kriesing

Mittwoch, 21. Juni 2017
17:25h

Website-Barrierefreiheit verstehen und umsetzen

Was bedeutet Barrierefreiheit für Websites? Warum ist das Thema wichtig und was sind die Vorteile für Website-Betreiber? Nach welchen Kriterien wird Barrierefreiheit im Web gemessen und beurteilt und wie kann man diese Kriterien in den Entwicklungsprozess einfließen lassen und umsetzen?
All diese Fragen möchte ich in dieser Grundlagen-Session zum Thema Website-Barrierefreiheit klären.

Vorkenntnisse: Kein Vorwissen nötig.

Lernziele: Zuhörer sollen am Ende des Vortrags Barrierefreiheit verstehen und die Kriterien im Entwicklungsprozess von Webprojekten berücksichtigen und umsetzen können.

Saskia Bader

Mittwoch, 21. Juni 2017
17:25h

Donnerstag, 22. Juni 2017

UX patterns for web developers

Are you willing to go the extra mile to make your UX shiny and joyful? Most of us developers underestimate the importance of the Human-Computer Interaction. Join this talk for web developer-friendly UX patterns that you can start using in your everyday code.
In this talk, we will explore the best of both worlds: Nicole will talk about UX best practices to make your product much more powerful, and Jad will explain the technical perspective behind each one by using the newest techniques of the modern web. We will cover topics like performance, mobile optimization, offline experiences & more.

Vorkenntnisse: Basic front-end development.

Lernziele: The audience will learn developer-friendly best practices of user experience to build powerful products.

Nicole Saidy

Jad Joubran

Donnerstag, 22. Juni 2017
09:00h

Package dependencies: The good, the bad, the ugly

Für kaum eine andere Programmiersprache gibt es ein so feingranulares Ökosystem von teilweise sehr kleinen und spezialisierten Paketen wie für Node.js. Das hat sowohl Vor- als auch Nachteile.
In unserem Projekt entwickeln wir Software für eingebettete Systeme in Autos. Der Vortrag soll einen Einblick darüber geben, was hier die Herausforderungen sind und was speziell im Unternehmensumfeld zu beachten ist. Der Themenschwerpunkt liegt dabei auf dem Umgang mit Open-Source-Lizenzen und den damit verbundenen Herausforderungen, insbesondere im Kontext der Mikropaketierung in Node.js. Die Frage lautet: Wie können die Open-Source-Lizenzen verwaltet werden?

Vorkenntnisse: Basiswissen über Node.js und npm.

Lernziele: Der Vortrag zeigt einige Fallstricke in der Entwicklung mit Node.js auf. Dabei soll hauptsächlich für den richtigen Umgang mit Open Source sensibilisiert werden.

Patrick Daether
(BMW Car IT)

Donnerstag, 22. Juni 2017
09:00h

Single-Page Apps – Ein Framework-agnostischer Ansatz

Bei der Entwicklung von Single-Page Apps haben Entwickler bei der verwendeten Technologie die Qual der Wahl. Meist fällt die Entscheidung auf eines der zahlreichen JavaScript-Frameworks, ohne das Produkt zuvor hinreichend analysiert zu haben. Was genau sind eigentlich Single Page Apps? Braucht man immer ein Framework? Und wie entscheidet man sich eigentlich für eine Technologie?
Dieser Talk schaut hinter die Kulissen von SPAs und beleuchtet gängige Konzepte und Patterns. Im Anschluss wird per Live Coding gezeigt, wie sich SPAs ohne Frameworks mit ES2015+ entwickeln lassen.

Vorkenntnisse: Grundlegende JavaScript-Kenntnisse.

Lernziele: Teilnehmer sollen die Prinzipien und Patterns hinter Single Page Apps kennenlernen und Einblick in die Implementierung von SPAs mit ES2015+ erhalten.

René Viering
(Micromata)

Donnerstag, 22. Juni 2017
09:00h

The dark ages of IoT

Advertisements suggest that we are at the zenith of mankind's scientific knowledge and technological power, but when it comes to IoT and the so called 'Smart Home', we are clearly not. In fact, we are in the middle of the dark age.
I'll explain the challenges that we're facing today, what's 'wrong' with our current products & show you how a smart 'Smart Home' experience could look like in the near future.

Vorkenntnisse:

Lernziele:

Sebastian Golasch
(Deutsche Telekom)

Donnerstag, 22. Juni 2017
09:55h

Pack Wars: JavaScript distribution in a galaxy far, far away

Front-end development is becoming increasingly complex. In the past you could just serve your CSS, JS and image files and you were good to go. Nowadays you have single-page apps and modules and assets and images and libraries and frameworks and oh god what not.
Let me help you with your analysis paralysis. I went through all the options for modularizing, bundling and serving your code so you don’t have to. I’ll explain the problem and present current solutions like Webpack, Browserify and System.js, their use cases, their merits and their faults so you can stop worrying and start coding.

Vorkenntnisse: Attendees need to be familiar with basic Javascript development processes.

Lernziele: Attendees will learn about the different methods to pack and prepare production ready code and assets using AMD, CommonJS, ES2016 modules, Webpack, Browserify, RequireJS, and SystemJS.

Opher Vishnia
(Eko)

Donnerstag, 22. Juni 2017
09:55h

Serverless Node.js-Webanwendungen mit AWS Lambda entwickeln

Das Thema Serverless gewinnt immer mehr an Bedeutung. Die vielfältigen Einsatzmöglichkeiten erschweren die Beurteilung, ob der Einsatz für das eigene Projekt sinnvoll ist. In diesem Vortrag wird gezeigt, wie sich ein Backend für eine Website mit AWS Lambda realisieren lässt. Dabei wird neben dem Programmiermodell auch auf die Laufzeitumgebung und die Besonderheiten von Serverless eingegangen. Erklärt werden unter anderem die Konfiguration des API Gateway, die Anbindung an CloudFront sowie der Zugriff auf Datenbanken. Viele Tipps und Tricks für den Betrieb runden den Vortrag ab.

Vorkenntnisse: Grundlegende Kenntnisse von HTTP (Request, Response, Status codes, etc.) und Node.js (Objekte, Callbacks, etc.).

Lernziele: Der Vortrag soll den Zuhörern das notwendige Wissen vermitteln, um selbständig Webanwendungen für AWS Lambda zu entwickeln und betreiben zu können.

Oliver Gutperl
(DigitalSailors)

Donnerstag, 22. Juni 2017
09:55h

Wie webpack funktioniert?

Besonders wegen seiner hohen Anpassbarkeit eignet sich webpack gut für Unternehmen mit einzigartigen Anwendungsfällen. Der Vortrag bietet einen Einblick in die Funktionsweise von webpack und erklärt die internen Prozesse und Strukturen. Mit diesem Wissen soll es der/dem interessierten Zuhörer(in) möglich sein, zu verstehen, ob und wie sie/er webpack für ihren/seinen Anwendungsfall einsetzen und anpassen kann beziehungsweise in welche Details sie/er sich dazu einarbeiten kann.

Vorkenntnisse: Grundlegende Kenntnisse über die Anwendung von webpack.

Lernziele: Überblick über die Funktionsweise von webpack. Kenntnis über die Möglichkeiten zur Anpassung.

Tobias Koppers

Donnerstag, 22. Juni 2017
11:10h

'Das Frontend ist ja dann trivial' - Microservices und Web-Frontends

Microservices sind eine Möglichkeit, ein Backend in viele kleine eigenständige Services zu unterteilen, die unabhängig voneinander entwickelt, deployt und skaliert werden können, wobei das ganze System nicht zusammenbricht, wenn einzelne Services ausfallen. Und das Frontend ist ja dann trivial - oder?! Wir zeigen, welche Probleme und Lösungen wir bei der Entwicklung von waipu.tv hatten, und welche Alternativen es gibt. Dabei wird sich leider herausstellen, dass es keinen idealen Weg gibt, sondern eine Fülle von Optionen, deren Vor- und Nachteile man gegeneinander abwägen muss.

Vorkenntnisse: Interesse an Web-Frontendarchitektur im Microservice-Umfeld.

Lernziele: Überblick geben über die architektonischen Herausforderungen für Web-Frontends bei Microservices. Erfahrungen aus dem Projektalltag weitergeben. Entscheidungsgrundlagen geben für eigene Projekte.

Matthias Reuter
(inovex)

Michael Bruns
(inovex)

Donnerstag, 22. Juni 2017
11:10h

OpenID Connect & OAuth 2.0 in JavaScript-Anwendungen

Moderne JavaScript-Anwendungen verwenden OpenID Connect & OAuth 2.0 für die Authentifizierung von Benutzern sowie den Zugriff auf APIs. Für den Praxiseinsatz sind ein paar Vorkenntnisse über die Protokolle und Token-basierte Systeme notwendig. Mit diesen Grundlagen im Hinterkopf lässt sich danach einfach eine passende Client-Bibliothek auswählen, die die 'harte Arbeit' übernimmt. Dominick Baier zeigt das Wie, Was und Warum.

Vorkenntnisse: Basiswissen Authentifizierung und Softwaresicherheit.

Lernziele: Besucher sollen ein Verständnis für OpenID Connect und OAuth 2.0 entwickeln, um selbst in der Lage zu sein, es einzusetzen.

Dominick Baier

Donnerstag, 22. Juni 2017
11:10h

Die Mär der JavaScript-Performance

Performance ist ein entscheidender Faktor für den Erfolg vieler moderner JavaScript-Anwendungen. Der Begriff Performance steht dabei häufig für unterschiedliche Aspekte, wie Durchsatz, Ladezeit oder Responsiveness der Anwendung, und alle diese Aspekte sind in hohem Maße abhängig von Optimierungen innerhalb der JavaScript-VM. Haben Sie sich schon einmal gefragt, welche Benchmarks JavaScript VMs für ihre Optimierungen einsetzen?
In diesem Talk werfen wir einen Blick auf einige dieser Benchmarks, und geben einen Einblick in einige interessante Performance-Charakteristika aus Sicht der JavaScript-Anwendungen-VM.
Des Weiteren werfen wir einen Blick auf die neuen Technologien, die das V8-Team einsetzt, um Performance von Webanwendungen zu messen, und damit sicherzustellen, dass Performance-Optimierungen auch wirklich diesen zugute kommen und nicht lediglich den Score auf synthetischen Benchmarks in die Höhe treiben.

Vorkenntnisse: Grundlegende Kenntnisse der JavaScript-Sprachkonstrukte, inklusive ES2015 und kommender Ergänzungen. Grundlegende VM-Kenntniss (Compiler, Inline Cache, Garbage Collection, etc.).

Lernziele: Zuhörer sollen Einblicke in VM-Optimierungen erhalten, erfahren, was möglich und unmöglich ist und warum die Dinge so sind, wie sie sind, wenn es um JavaScript-Performance geht.

Benedikt Meurer
(Google)

Donnerstag, 22. Juni 2017
12:05h

Web APIs you must know about in 2017

The future of web and mobile web development is promising with the release of a bunch of web APIs that will make our lives as developers much easier.
In this talk, we will start by exploring some of the web APIs that were released a bit less than a year ago and then expand into the future.
We will be covering APIs that affect performance such as passive event listeners, intersection observer, CSS containment and many more.

Vorkenntnisse: Attendees need to have intermediate knowledge of HTML, CSS & JavaScript.

Lernziele: The audience will learn about upcoming Web APIs (performance & other).

Jad Joubran

Donnerstag, 22. Juni 2017
12:05h

Content Security Policy – war es das mit XSS?

Cross-site Scripting (XSS) ist seit Bestehen der OWASP Top Ten immer auf einem der drei vorderen Plätze vertreten gewesen. Nach über einem Jahrzehnt voller furchtbarer Angriffe und Probleme gibt es nun endlich Hoffnung. Mit Content Security Policy (CSP) gibt es einen aktuellen Standard, der von den meisten Browsern umgesetzt wird und XSS Einhalt gebieten kann – wenn man weiß, wie.
Doch nicht jede Website kann von CSP profitieren, teilweise sind erhebliche Umbauarbeiten notwendig.
In dieser Session werfen wir einen kurzen Blick auf den aktuellen Stand von XSS und analysieren dann alle wichtigen Aspekte von CSP, inklusive Features, Einschränkungen, Einsatzmöglichkeiten und Browserunterstützung.

Vorkenntnisse: Kein spezielles Vorwissen nötig.

Lernziele: Entwickler sollen am Ende der Session einschätzen können, ob CSP eine Option für die eigene Webanwendung ist und wie viel Arbeitsaufwand erforderlich ist.

Christian Wenz
(Arrabiata Solutions)

Donnerstag, 22. Juni 2017
12:05h

ECMAScript of the Future: ES2017 & Beyond

ECMA TC39, the standards committee that works on the JavaScript language, now releases new versions of ECMAScript every year. I will cover how the new process works and briefly touch on a few awesome new language features in the standards pipeline. New capabilities for async programming will drastically clean up your async code. New RegExp features will bring in much-missed RegExp features from other languages. JavaScript will get even better for functional programming. And most importantly: you can help make TC39 design these new features, so come find out how!

Vorkenntnisse: Basic JavaScript knowledge.

Lernziele: Learn about the standardisation process and upcoming JavaScript features.

Brian Terlson
(Microsoft)

Donnerstag, 22. Juni 2017
13:50h

Browser-Rendering-Performance verstehen

Um aus HTML, CSS und JavaScript eine Reihe von Pixeln auf dem Bildschirm zu machen, muss im Browser eine Menge Arbeit getan werden. Leider bleibt oft nur das nebulöse Wort 'hardwarebeschleunigt', um zwischen guten und weniger guten Methoden zu unterscheiden – aber was heißt das?
In diesem Vortrag gehen wir auf eine kleine Entdeckungsreise und schauen uns an, wie Tiles und Layers, Compositing und Painting aus Markup endlich unsere Webanwendung werden lassen und warum 'hardwarebeschleunigt' so schnell ist. Wir schauen uns außerdem CSS, Canvas 2D und WebGL an.

Vorkenntnisse: HTML-, CSS-, JavaScript-Grundlagen.

Lernziele: Verständnis des Renderingprozesses und welche Methoden die Performance beeinflussen können.

Martin Splitt
(Archilogic)

Donnerstag, 22. Juni 2017
14:45h

Isomorphes JavaScript mit ReactJS – warum und wie?

Das Web startete damit, dass Server Webseiteninhalte an eher schwache Browser sendeten. Mit dem Aufkommen von modernen Webframeworks wie Angular und deutlich stärkeren Browsern hat sich dies in Richtung clientseitigem Rendering verschoben, wobei der Server nur noch als API genutzt wird. Doch das bringt auch Nachteile mit sich, die leicht vergessen, aber später schnell bereut werden. Abhilfe schafft isomorphes JavaScript als Kombination beider Ansätze.
Dieser Talk frischt das Client-Server-Prinzip im Zeitalter der SPAs auf, erklärt den isomorphen Ansatz und beschreibt praxisnah, wie React nicht nur im Client, sondern mit Hilfe von Node.js auch auf dem Server rendern kann.

Vorkenntnisse: Grundkenntnisse in React.

Lernziele: Zuhörer sollen Vor- und Nachteile von clientseitigem, serverseitigem und isomorphem Rendering in den modernen Webframeworks abwägen können und einen praktischen Einblick in isomorphes JavaScript mit React bekommen.

Kristin Baumann

Donnerstag, 22. Juni 2017
14:45h

How to build an offline-first app with React Native and Realm

React Native is a rapidly-growing framework for natively rendering iOS and Android applications by using JavaScript. One of the biggest challenges nowadays is building an offline-first app. We are going to present that by perfectly combining React Native with Realm. Join me in this talk to learn more.

Vorkenntnisse: Javascript ES6, Basic knowledge of React Native, Basic knowledge of Xcode, Cloud Databases

Lernziele: Implement Realm cloud database for data sync, JSX components, Design patterns for React Native, Building process

Juljan Sevo
(diconium)

Donnerstag, 22. Juni 2017
14:45h

Fortgeschrittene Patterns für React-Anwendungen

Mit React ist es sehr einfach, Komponenten und Webanwendungen zu bauen. Allerdings gibt React selbst nur wenig vor, wie eine Anwendung am besten strukturiert und in Komponenten aufgeteilt werden sollte. Daraus ergeben sich schnell Fragen: Wo halte ich den Zustand? Wie kommuniziere ich zwischen meinen Komponenten? Wie kann ich 3rd-Party-Bibliotheken, die nicht in React geschrieben sind, in meine React-Anwendung integrieren? Und was kann ich tun, um die Performance meiner Anwendung zu erhöhen?
In diesem Talk werden Patterns vorgestellt, mit denen man eine Anwendung strukturieren kann, und es wird gezeigt, wie man 3rd-Party-Bibliotheken einbindet und die Performance einer Anwendung für die Produktion optimiert.

Vorkenntnisse: Erste React-Kenntnisse.

Lernziele: Erlernen von Patterns, die typischerweise in React-Anwendungen eingesetzt werden.

Oliver Zeigermann
(zeigermann.eu / embarc)

Nils Hartmann
(EOS Technology Solutions)

Donnerstag, 22. Juni 2017
15:50h

Open Source im unternehmerischen Kontext: Lizenzen und Compliance

Der Einsatz von Open-Source- beziehungsweise freier Software gehört in vielen Unternehmen zum Alltag. Nicht alle, die sich damit beschäftigen, wissen jedoch um die rechtlichen Implikationen und Risiken. Was ist eine Lizenz? Welche Bedingungen muss ich einhalten, wenn ich Open-Source-Software für meine Produkte verwenden will? Und was passiert, wenn ich Open-Source-Software mit verschiedenen Lizenzen einsetzen möchte?
Der Vortrag gibt einen Überblick über rechtliche Hintergründe und die verschiedenen Lizenztypen und umreißt die wichtigsten Compliance-Themen im Zusammenhang mit Open-Source- und freier Software.

Vorkenntnisse: Kein spezielles Vorwissen nötig.

Lernziele: Die Teilnehmer sollen in die Lage versetzt werden, unter rechtlichen Aspekten souverän mit Open-Source-Software umzugehen und wichtige Compliance-Themen selbst zu erkennen.

Lina Böcker
(jbb Rechtsanwälte Partnerschaft mbB)

Donnerstag, 22. Juni 2017
15:50h

Node.js in ressourcenbeschränkten Embedded-Linux-Umgebungen

Der Vortrag behandelt die Einsatzmöglichkeiten von Node.js in einer OpenEmbedded-basierten Umgebung. Das umfasst einen Überblick über die Build-Verfahren, die hier verwendet werden und sich grundlegend von den üblicherweise in der JS-Entwicklung eingesetzten unterscheiden.
Darauf aufbauend wird anhand praktischer Beispiele erarbeitet, unter welchen Umständen und in welchen Formen der JavaScript-/Node.js-Einsatz hier tatsächlich gewinnbringend möglich, oder eher zu vermeiden ist. Wo liegen Vorteile und Nachteile gegenüber der 'klassischen' Implementierung in C/C++? Was bedeutet das für den Einsatz in einem realen Produkt?

Vorkenntnisse: Kein Vorwissen ist nötig, um den Vortrag zu verstehen. Um die praktischen Themen später selbst umsetzen zu können, ist ein Grundverständnis von Embedded-Systemen unter Linux notwendig.

Lernziele: Die Hörer sollen praktische Hinweise und Erfahrungswerte erhalten, um den Einsatz von Node.js in ressourcenbeschränkten Umgebungen bewerten und gegebenenfalls umsetzen zu können.

Josef Holzmayr
(R-S-I Elektrotechnik)

Donnerstag, 22. Juni 2017
15:50h

GraphQL – die bessere Schnittstelle für betriebliche Client-Server-Systeme

REST ist als Client-Server-Schnittstelle im Business-Kontext vollkommen ungeeignet. Es ist zu feingranular, unterspezifiziert, provoziert viele HTTP-Aufrufe, und das Caching kann dank HTTPS und im Kontext von betrieblichen Informationssystemen seine Vorteile kaum ausspielen.
Die bessere Alternative ist Facebooks GraphQL. Es ist deklarativ, liefert immer genau die Daten, die der Client haben möchte, und stets in dem Umfang, den er auch verarbeiten will. Durch den Einsatz von JSON ist die Schnittstelle für den Entwickler zudem schnell und einfach zu verstehen.

Vorkenntnisse: Grundlegende Kenntnisse von Client-Server-Architektur, JavaScript, JSON und REST.

Lernziele: Der Vortrag erklärt, wie GraphQL den Quasi-Standard REST ersetzen kann, wie Queries aufgebaut werden, wie Mutations funktionieren und wie sich eine API spielend einfach erkunden lässt.

Linda Zeman
(msg systems)

Donnerstag, 22. Juni 2017
16:45h

Der State liegt jetzt im Client – State Management in React

Bei Single-Page Applications liegen Logik und Daten im Client. Während die meisten anderen SPA-Frameworks zur Strukturierung und Datenflusskontrolle auf eine klassische MV*- Architektur setzen, kommt bei React zumeist die Flux-Architektur zum Einsatz. Mittlerweile gibt es unzählige Implementierungen und einige Abwandlungen dieses Prinzips, welche verschiedene Vor- und Nachteile mit sich bringen.
Im Vortrag werden die State-Management-Bibliotheken Redux, MobX sowie die klassische Flux-Architektur erläutert und deren jeweilige Einsatzgebiete vorgestellt.

Vorkenntnisse: React-Grundkenntnisse.

Lernziele: Zuhörer sollen Klarheit darüber bekommen, welche verschiedenen Möglichkeiten des State-Managements es in React gibt.

Sven Kölpin
(open knowledge)

Donnerstag, 22. Juni 2017
16:45h

Push, Pull, Branch, Merge, Rebase! Oh my…

Keine Panik! Die Arbeit mit Branches ist bei Git ganz normal und vor allem auch gewollt. Branches lassen die Entwickler isoliert an ihren Features oder Bugfixes arbeiten, bis diese abgeschlossen sind. Viele Entwickler arbeiten bereits mit Feature Branches, haben aber dennoch häufig Probleme mit Git und Branches.
Um effektiv arbeiten zu können, ist ein detaillierter Blick auf dieses Thema sehr hilfreich. Wie sind Branches in Git abgebildet und wie stehen sie in Relation zu ihren Remote Branches? Wann ist ein Rebase sinnvoll? Was habe ich bei einem Merge von Branches für Optionen? Diese und weitere Fragen werden im Rahmen dieses Vortrags beantwortet.

Vorkenntnisse: Grundkenntnisse in Git und der Arbeit mit Branches.

Lernziele: Ziel der Session ist ein besseres Verständnis von Branches und das Wissen darum, wie sie sich effizient innerhalb von Git nutzen lassen. Auch die Arbeit mit Remote Branches sollte nach der Session einfacher sein.

Marko Beelmann
(Philips Healthcare)

Donnerstag, 22. Juni 2017
16:45h

Verabschiedung

Vorkenntnisse:

Lernziele:

Golo Roden
(the native web)

Christian Wenz
(Arrabiata Solutions)

Matthias Wagler
(the native web)

Sebastian Golasch
(Deutsche Telekom)

Donnerstag, 22. Juni 2017
17:40h