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.

Marco Emrich
(webmasters akademie)

Wolfram Kriesing

Dienstag, 20. Juni 2017
09:00h

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.

Robin Böhm
(AngularJS.DE)

Dienstag, 20. Juni 2017
10:00h

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.

Manfred Steyer
(SOFTWAREarchitekt)

Dienstag, 20. Juni 2017
10:00h

Einführung in React

TBD

Vorkenntnisse: TBD

Lernziele: TBD

Kristin Baumann

Dienstag, 20. Juni 2017
10:00h

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.
Die Voraussetzung zur Bearbeitung der Beispiele ist ein auf Ihrem Rechner installiertes Node.js mit NPM und idealerweise eine Entwicklungsumgebung wie Webstorm.

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.

Sebastian Springer
(MaibornWolff)

Dienstag, 20. Juni 2017
10:00h

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 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.

Golo Roden
(the native web)

Susanna Roden
(the native web)

Matthias Wagler
(the native web)

Dienstag, 20. Juni 2017
10:00h

Mittwoch, 21. Juni 2017

TBD

TBD

Vorkenntnisse: TBD

Lernziele: TBD

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

5 architectures of asynchronous JavaScript

In this talk we'll discuss five alternative approaches to handle async operations: callbacks, events, promises, coroutines, and reactive streams. None of them is either legacy or adds a silver bullet – a good developer needs to pick the right tool for the job.
However, in order to understand them, we must head back to the fundamentals: the mechanics of the event loop and the run to completion rule, as well as learning to distinguish between sync and async callbacks. Then we proceed to design patterns built on top of each of the five approaches, discussing their strengths and limitations. Funfacts, such as famous Promise.race() included!

Vorkenntnisse: Passion to learn JavaScript is the only requirement – devs of all levels are welcome.

Lernziele: For junior devs, this is lots of extremely important, mandatory knowledge. For senior devs, it's a clear summary, putting known pieces together, some aspects will surely be new, even for seniors.

Tomasz Ducin

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

TBD

TBD

Vorkenntnisse: TBD

Lernziele: TBD

N.N.

Mittwoch, 21. Juni 2017
11:40h

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

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

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

TBD

TBD

Vorkenntnisse:

Lernziele:

N.N.

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

TBD

Vorkenntnisse: TBD

Lernziele: TBD

N.N.

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

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 Mircoservices-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-Mircoservices 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

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

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

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

Donnerstag, 22. Juni 2017

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

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, Nicole will talk about the best practices that everyone should consider when building a product from an UX point of view, and Jad will focus on the technical perspective. We will cover topics like performance, mobile optimization, smooth transitions, persuasion patterns, and more.
From this, you will learn to get inside the minds of the people you build for, which will make your product much more powerful.

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

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

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
(Interlude)

Donnerstag, 22. Juni 2017
09:55h

Messe was du entwickelst – Eine Einführung ins AB-Testing

Als Entwickler ist es uns wichtig, Metriken und Benchmarks von unserem Code zu erstellen. Man weiß, wie man die Testabdeckung erhöht oder wie man diesen einen Request noch performanter macht. Aber wie verbessert man seine Conversion Rate und wie validiert man, ob ein neues Feature ein Erfolg war?
In diesem Vortrag erzähle ich Ihnen von meiner Reise von wenig Motivation zu AB-Testing und wie man durch kleine Messergebnisse glücklich bleibt.

Vorkenntnisse: Kein Vorwissen nötig.

Lernziele: Ich werde Ihnen eine Einführung über den statistischen Hintergrund von AB-Testing geben sowie Best Practices vorstellen.

Jalyna Schröder

Donnerstag, 22. Juni 2017
09:55h

TBD

TBD

Vorkenntnisse: TBD

Lernziele: TBD

N.N.

Donnerstag, 22. Juni 2017
09:55h

Webpack

TBD

Vorkenntnisse: TBD

Lernziele: TBD

N.N.

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

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

TBD

TBD

Vorkenntnisse: TBD

Lernziele: TBD

N.N.

Donnerstag, 22. Juni 2017
14:45h

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

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

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