Mittwoch, 09:00-17:00

Workshop: JavaScript für Java- und C#-Entwickler

In diesem Workshop werden die Teilnehmer in alle für Enterprise-Entwickler (Java, C#) wesentlichen Spracheigenschaften von JavaScript eingeführt. Es werden die Themen Objekte, Arrays, Exceptions, Funktionen, prototypische Vererbung und Module besprochen. Der Workshop enthält zudem kleine Übungen am eigenen Rechner. Bringen Sie dafür einen Laptop mit, auf dem ein aktueller Firefox- oder Chrome-Browser installiert ist.

Oliver Ochs
(Holisticon)

Martin Reinhardt
(Holisticon)

Mittwoch, 17. Juni 2015
09:00-17:00

Raum neon 3.08

Workshop: Testgetriebene Entwicklung mit AngularJS

AngularJS ist ein JavaScript-Framework, das Sie dabei unterstützt, moderne clientseitige Webanwendungen zu erstellen. Erstmalig finden bewährte Konzepte wie Dependency Injection und testgetriebene Entwicklung nun auch Einzug in die JavaScript-Welt und machen diese somit attraktiv für den Enterprise-Einsatz. AngularJS bietet hier eine sehr nachvollziehbare Implementierung und achtet im hohen Maße auf das Bilden und Einhalten von Schnittstellen. Dieser Workshop führt Sie an die Entwicklung mit AngularJS heran und fokussiert insbesondere die Möglichkeiten zum Test-Driven Development (TDD). Saubere Anwendungsentwicklung mit JavaScript ist eben doch möglich. Finden Sie es heraus!

Robin Böhm
(Symetics)

Philipp Tarasiewicz
(Symetics)

Mittwoch, 17. Juni 2015
9:00-17:00

Raum radon 3.05

Workshop: Node.js, io.js und Co.: Entwickeln für die Cloud

Die Cloud ist die Zukunft, das steht außer Frage. Doch der Weg ist steinig. Sie benötigen REST-APIs, Streaming und Echtzeitdaten. Das alles skalierbar, verlässlich und effizient. Für welche Technologie entscheiden Sie sich? In diesem Workshop lernen Sie die Plattformen Node.js und io.js kennen, die JavaScript auf dem Server ausführen und so Ihren Aufwand verringern und Ihre Entwicklung beschleunigen.

Golo Roden
(the native web)

Mittwoch, 17. Juni 2015
09:00-17:00

Raum xenon 3.06

Workshop: Event-getriebene Programmierung und Architektur

Der Einsatz von Events ist den meisten JavaScript-Entwicklern vertraut. Unabhängig davon, ob es um Browser-Events oder um Node.js-Programmierung geht - das asynchrone Programmiermodell ist in JavaScript allgegenwärtig. Oft ist jedoch unklar, wo die Vor- und Nachteile liegen und wann es sich lohnt, Events verstärkt im eigenen Code einzusetzen. Dieser Workshop bietet die Gelegenheit, Event-getriebene Programmierung und Architektur besser kennenzulernen und fürs eigene Unternehmensumfeld zu evaluieren. Dabei lösen wir praktische Probleme wahlweise unter Node.js oder im Browser. Benötigt wird ein eigenes Notebook mit Entwicklungs- und Testumgebung (z.B. Jasmine, Mocha).

Marco Emrich
(webmasters akademie)

Christian Eichhorn
(webmasters akademie)

Mittwoch, 17. Juni 2015
9:00-17:00

Raum hassium 3.02

Workshop: Der Docker-Basis-Workshop

Das Thema Docker sorgt gerade für viel Aufsehen. Docker verspricht einen schnellen Start, flexible Konfiguration und stabile Images für Entwicklung und Produktion. In diesem Workshop wollen wir diesen Versprechen praktisch nachgehen. Wir starten mit einem Überblick, in dem Sie lernen, die wichtigsten Befehle und Anweisungen anzuwenden. Anhand eines ausführlichen Beispiels sehen wir, wie ein Microservice mit Node.js implementiert, mit Docker installiert und in einer Umgebung mit anderen Services integriert wird. Außerdem diskutieren wir das aktuelle Docker-Ecosystem und klären über Chancen und Risiken auf. Dieser Workshop vermittelt die Docker-Grundlagen auf der Basis von JavaScript.

Peter Roßbach
(bee42 solutions)

Mittwoch, 17. Juni 2015
9:00-17:00

Raum germanium 3.03

Donnerstag, 09:35-10:50

Asynchrone Programmierung 101

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.

Golo Roden
(the native web)

Donnerstag, 18. Juni 2015
09:35-10:50

Raum Spectrum A

Rechtsfragen zum Cloud Computing

Cloud Computing ist weltweit einer der größten Zukunftsmärkte. Die Cloud eröffnet dem Nutzer bislang ungeahnte Möglichkeiten. Es bedarf im Grunde nur einer schnellen Internetverbindung. Vorteile für den Nutzer liegen auf der Hand: Er hat, gemeinsam mit seinem Team, von überall in der Welt Zugriff auf die notwendigen Daten und Anwendungen, die externe Hardware und die zugehörigen Anwendungen pflegt der Betreiber und die Nutzung wird bedarfsgerecht abgerechnet. Die Nutzung von Cloud-Diensten wirft aber eine Vielzahl rechtlicher Fragen auf, die in diesem Vortrag behandelt und für die Lösungsansätze vorgestellt werden sollen.

Christine Payer
(Kurz, Pfitzer, Wolf & Partner)

Donnerstag, 18. Juni 2015
09:35-10:50

Raum Spectrum B

Docker für JavaScript-Entwickler

Dieser Vortrag bietet JavaScript-Entwicklern einen Überblick über das Werkzeug Docker. Es werden die Grundprinzipien des Tools erläutert und gezeigt, wie einfach es in der Entwicklung ist, fast beliebige Services mit Node.js anzubinden und zu testen. Auch das Konfigurieren und Teilen von Arbeitsumgebungen vereinfacht Docker radikal. Das Bereitstellen skalierbarer Services wird mit den Werkzeugen des Docker-Ökosystems demonstriert.

Peter Roßbach
(bee42 solutions)

Donnerstag, 18. Juni 2015
09:35-10:50

Raum Spectrum C

Donnerstag, 11:20-12:05

Front-end Security in the world of thick apps and hardware APIs

The security implications of modern client-side applications are changing. As more business logic and functionality moves into the client the more our mental models and understanding of those security implications also have to change. We'll talk about: what we can learn from decades of network security models; about modularisation and compartmentalised security; and lots of other things to help you build and test secure applications. Modern APIs allow us (and bad actors) to access a whole world of information and exploits that were never possible before. In this talk we'll consider attacks on client-side storage, WebRTC, WebGL/WebCL, hardware API's and several more.

Joe Pettersson
(McKinsey & Company)

Donnerstag, 18. Juni 2015
11:20-12:05

Raum Spectrum B

Enterprise-Anwendungen mit Angular.js - The good, the bad, and the ugly

Enterprise-Anwendungen unterscheiden sich von Consumer-Anwendungen häufig durch komplexere Datenmodelle und Interaktionsmuster. Oft müssen viele Attribute und/oder große Datenmengen dargestellt werden, und die abzubildenden Geschäftsprozesse bestehen aus vielen Einzelschritten. Diese Eigenschaften führen oft zu Performance- und Wartungsproblemen. Der Vortrag blickt auf vergangene Projekte zurück und beleuchtet, welche Vorteile und Probleme der Einsatz von Angular.js in Enterprise-Projekten mit sich bringt. Schwerpunkte des Vortrags sind die Performance von komplexen Oberflächen und die Abbildung von mehrstufigen Dialogflüssen wie beispielsweise Imports von Daten.

Ralph Guderlei
(eXXcellent solutions)

Donnerstag, 18. Juni 2015
11:20-12:05

Raum Spectrum A

Deklarative Architektur mit funktionalen Streams

Eine der größten Beschwerden bei der Entwicklung komplexerer JavaScript-Anwendungen ist das Auftreten der sogenannten Callback Hell. Als Ausweg werden gerne Promises und Generatoren genutzt, die den Code synchron und somit flach aussehen lassen. Es gibt eine weitere Möglichkeit: Streams. In diesem Vortrag werden Sie lernen, wie sich mit Hilfe von Streams, und speziell der Bibliothek Highland.js, Anwendungen modularer, funktionaler und deklarativer gestalten lassen. Ganz nebenbei verschwinden dann auch die Probleme, die zur Callback Hell führen.

Gregor Elke
(codecentric)

Donnerstag, 18. Juni 2015
11:20-12:05

Raum Spectrum C

Donnerstag, 12:15-13:00

JavaScript meets Cryptography - Einführung in die WebCrypto API

Der Browser ist in den letzten Jahren zur einer der wichtigsten Laufzeitumgebungen geworden. Mit ihm ist JavaScript zur Lingua franca des Webs aufgestiegen. Durch die mit HTML5, CSS3 und APIs wie Webaudio, WebGL oder IndexedDB entstandenen Möglichkeiten sind nun Applikationen realisierbar, die bis vor Kurzem nur mit Flash oder als native Applikation denkbar waren. Die vom W3C spezifizierte Web Cryptography API schließt in Zukunft eine weitere Lücke und verkürzt den Abstand zu nativen Plattformen weiter: sichere Kryptographie mit JavaScript. Der Vortrag zeigt auf, wann und warum die API benötigt wird, welche Grundfunktionen sie zur Verfügung stellt und wie man diese benutzt.

Christoph Iserlohn
(innoQ)

Simon Kölsch
(innoQ)

Donnerstag, 18. Juni 2015
12:15-13:00

Raum Spectrum C

Event-Sourcing your AngularJS applications

Most AngularJS applications just store the data being edited as is in a database. While it is perfectly fine to treat data in a simple CRUD fashion like this with a smaller application this is not very optimal when applications get more complex. For more complex applications using the Command Query Responsibility Segregation (CQRS) design pattern together with Event-Sourcing (ES) is a much more powerful solution. With Event-Sourcing every action leading up to the current state is stored as a separate domain event. This collection of domain events is then used as the write model in the CQRS model. These same events are projected out to a secondary database to build the read model.

Maurice de Beijer
(ABL - The Problem Solver)

Donnerstag, 18. Juni 2015
12:15-13:00

Raum Spectrum B

Komplex, aber schnell! Wie kriegen wir unsere Web-Frontends in den Griff?

Mit MVC-Frameworks wie AngularJS und React erstellt man Web-Apps in kurzer Zeit. Kapselung und Wiederverwendung von UI-Controls sind per Angular-Direktive oder bald als Web Component möglich. Doch wie isoliert und zerlegt man die Fachlichkeit, also das, was letztlich für Nutzer und Kunden zählt? Wie setzt man die Teile immer wieder neu zusammen und erhält doch ein stimmiges Bild? LaxarJS verfolgt den Ansatz, sich im Webclient von der Serverwelt leiten zu lassen: Reaktive Systeme, die Events per Publish/Subscribe verteilen, bieten die Entkopplung von Komponenten und die Isolation lokaler Zustände. Wir möchten unsere Erfahrung mit LaxarJS als "Middleware für den Client" vorstellen und diskutieren.

Alexander Wilden (aixigo)

Michael Kurze (aixigo)

Donnerstag, 18. Juni 2015
12:15-13:00

Raum Spectrum A

Donnerstag, 14:00-14:45

Keynote: Datacenter Automation for the JavaScript Developer

For the past two years, DevOps may just be the fastest evolving landscape affecting application developers. We've seen an incredible growth of datacenter technologies to assist with creating infrastructure, deploying applications, configuring applications, and more. For the day to day JavaScript developer, the constant change can be confusing and sometimes frustrating to keep up with. What practices are important? What can be ignored? How does this affect the developer?
In this talk, I aim to answer these questions in an opinionated way. I'll show how applications can be developed to take advantage of the modern change of the datacenter, showcasing many of HashiCorp's tools along the way. In order to be as fair as possible, while the examples will be our tools, we'll highlight alternatives throughout the talk.

Mitchell Hashimoto
(HashiCorp)

Donnerstag, 18. Juni 2015
14:00-14:45

Raum Spectrum A

Donnerstag, 14:55-15:40

A Credit Card Walks Into A Bar

The Credit Card is over 60 years old and was invented way before the web came along, and we are paying the price for it. This notorious master of payments likes to be kidnapped, is easy to abuse, has a habit of bringing out the worst in web forms and loves to spread its digits all over the internet. With a passion for payments and a broad sense of humor the speaker takes apart the worst user interactions a Credit Card provides and shows what the future of payments could look like. From web to mobile, from IoT to wearables, the future of payments are more in flux than ever before and the Credit Card is very much at the heart of it all.

Cristiano Betta
(Braintree)

Donnerstag, 18. Juni 2015
14:55-15:40

Raum Spectrum B

ECMAScript 2015 - die Neuerungen

ECMAScript 2015 steht unmittelbar vor der Fertigstellung, die wichtigsten Features werden bereits von Browsern und io.js unterstützt. ECMAScript 2015 beschert uns eine Fülle von nützlichen Funktionen. Egal ob Dreizeiler oder Framework: Alle werden davon profitieren. Wir werfen einen Blick auf die Highlights: Klassen und Module zur besseren Kapselung, block-scoped Variablen, anonyme Funktionen, Spread-Operatoren, Destrukturierung und Template-Strings zur Syntaxvereinfachung, Iteratoren und Generatoren als neue Konzepte der Ablaufsteuerung, Promises für asynchrone Programmierung, die neuen Datentypen Set, Map und Proxy und einige weitere Neuerungen. Lassen Sie sich von den Innovationen in ECMASCript 2015 inspirieren!

Arno Hollosi
(Campus 02)

Donnerstag, 18. Juni 2015
14:55-15:40

Raum Spectrum A

The Fluid Architecture

Deciding on an architecture has to be a very big deal. Two, three or more layers? What database to use: SQL, NoSQL or NewSQL? In many companies there are entire departments dedicated to deciding on an architecture and then refining it until it's perfect. But the fact remains that there is not a perfect architecture for all situations, and probably not even for one particular situation. The modern stack has very stringent requirements of functionality, scalability, and cost, which keep changing all the time. So why do we expect a rigid architecture to thrive in such a changing environment? We will illustrate the principles of the fluid architecture with real-life examples using Node.js.

Alex Fernández
(MediaSmart Mobile)

Donnerstag, 18. Juni 2015
14:55-15:40

Raum Spectrum C

Donnerstag, 15:50-16:35

Death to Passwords

User authentication in web applications is a very common and integral use case. Implementing regular passwords is an easy solution for developers. But it comes with several pitfalls that impair user experience like (re-)entering passwords, the need to create a new unique password or even just the additional input of personal data while registering a new account. This talk will discuss security flaws and UX implications of passwords, and it will highlight which techniques exist that are able to offer a more (mobile) friendly flow.

Cristiano Betta
(Braintree/PayPal)

Donnerstag, 18. Juni 2015
15:50-16:35

Raum Spectrum C

JavaScript von morgen schon heute?

ECMAScript 2015, der Standard, der als Grundlage für die Implementierung von JavaScript dient, nimmt immer konkretere Formen an. Viele Teile der Spezifikation sind so gut wie fertig, und neuere Browser setzen sie bis zu einem gewissen Grad bereits um. Dennoch kann man heute und auch in naher Zukunft noch keine Anwendung mit ES 2015 ausliefern, da es eben nicht alle relevanten Browser unterstützen. In diesem Vortrag erfahren Sie, wie sich heute schon mit Transpilern und Polyfills in ES 2015 entwickeln lässt und welche Vorteile das bietet. Anhand von Codebeispielen wird gezeigt, wie man proprietäre Lösungen wie RequireJS und Promises durch neue Standards ersetzen kann und seinen Code dadurch zukunftssicher macht.

Philipp Burgmer
(WeigleWilczek)

Donnerstag, 18. Juni 2015
15:50-16:35

Raum Spectrum A

Mit einer Full-Stack-Plattform schneller zum Ziel: Wakanda in der Praxis

Mit Wakanda existiert eine Plattform, die den kompletten Stack einer Business-Web-Applikation abbildet. Die Integration von NoSQL-DB, Server und Client-Framework als Basis, Studio als IDE und Cloud-Optionen fürs Deployment bildet das Erfolgsrezept für eine schnelle Business-Applikations-Entwicklung.
Das Entwicklungsteam des Reklamationsmanagementsystems Jellycon zeigt, was das Besondere an Wakanda ist, wie sich Wakanda in der Praxis schlägt und welche Vorteile erfolgsentscheidend waren.

Patrick Pötschke
(Quantus Software)

Stephan Schäfer
(Wakanda)

Donnerstag, 18. Juni 2015
15:50-16:35

Raum Spectrum B

Donnerstag, 17:05-17:50

Node.js als Basis-Backendtechnologie

Das deutsche Zentrum für Luft- und Raumfahrt (DLR) hat ein umfangreiches Filmarchiv der letzten 70 Jahre. Dieses Archiv galt es im Rahmen eines Projekts zu digitalisieren und über ein einfaches Recherche-Frontend interessierten Redakteuren zugänglich zu machen. Herausforderungen waren dabei nicht nur, die über 300 Terabyte an Daten günstig zu speichern, sondern auch, sie schnell verfügbar zu machen. Bei der Realisierung des Projekts wurde letztlich Node.js als Basistechnologie für das Backend verwendet. Sie kommt in allen Bereichen des Systems als Bindeglied der verteilten Architektur zum Einsatz: Über die Steuerung der Hardware, das Ausliefern und Hochladen der Videodaten bis hin zur Abstraktion des Dateisystems auf den verwendeten hierarchischen Speichern.

Christian Ulbrich
(Zalari)

Donnerstag, 18. Juni 2015
17:05-17:50

Raum Spectrum C

Was bringt Angular 2.0?

Die Wurzeln von AngularJS liegen im Jahre 2009 - als der IE8 released wurde und Node.js das Licht der Welt erblickte. Seit dieser Zeit hat sich einiges getan in der Welt des Webs. Vieles, was AngularJS mitbringt, ist mittlerweile in diversen Spezifikationen verabschiedet und in den Browsern nativ implementiert. Hierzu gehören u.a. Web Components und ECMAScript 2015, der neue Sprachstandard von JavaScript. Es wird also Zeit, die neuen Möglichkeiten zu nutzen. Genau hier setzt AngularJS 2.0 an! Was hat das für AngularJS 1.x zu bedeuten? Wann können wir mit AngularJS 2.0 rechnen? Diese und andere Fragen werden wir in diesem Vortrag versuchen zu beantworten.

Robin Böhm
(Symetics)

Philipp Tarasiewicz
(Symetics)

Donnerstag, 18. Juni 2015
17:05-17:50

Raum Spectrum A

Event-getriebene Programmierung und Architektur

Der Einsatz von Events ist den meisten JavaScript-Entwicklern vertraut. Unabhängig davon, ob es um Browser-Events oder um Node.js-Programmierung geht - das asynchrone Programmiermodell ist in JavaScript allgegenwärtig. Oft ist jedoch unklar, wo die Vor- und Nachteile liegen und wann es sich lohnt, Events verstärkt im eigenen Code einzusetzen. Dieser Vortrag bietet einen ersten Einblick in Event-getriebene Programmierung und Architektur.

Marco Emrich
(webmasters akademie GmbH)

Christin Hofscheuer
(webmasters akademie GmbH)

Donnerstag, 18. Juni 2015
15:50-16:35

Raum Spectrum B

Donnerstag, 18:00-18:45

Node.js Security

Ist Node.js sicher? Diese Frage kann man mit einem klaren Nein beantworten. Es ist auch gar nicht die Aufgabe der Plattform, sicher zu sein. Vielmehr sollten die Entwickler von Node.js-Applikationen auf die Sicherheit achten. Dieser Vortrag stellt eine Reihe potenzieller Sicherheitsprobleme vor, wenn es um die Entwicklung von Anwendungen auf Basis von Node.js geht. Dabei wird zunächst kurz auf allgemeine Sicherheitsprobleme von JavaScript eingegangen. Im Detail werden dann verschiedene Angriffsvektoren vorgestellt: vom Einbruch in ein Serversystem über den NPM bis hin zu XSS- und CSRF-Attacken. Und natürlich lernen Sie auch die entsprechenden Gegenmaßnahmen kennen.

Sebastian Springer
(Mayflower)

Donnerstag, 18. Juni 2015
18:00-18:45

Raum Spectrum C

Live Apping - App-Entwicklung per JavaScript

Kein Ding: Jetzt werden JavaScript-Anwendungen in wenigen Minuten zu nativen Apps! Mit User Account Control, Payment-System, dynamischen Inhalten und Push-Notification Services. Uwe van Almsick von Tobit.Software zeigt live und in Echtzeit, wie man auf Basis von chayns® seine JavaScript-, HTML5- und CSS3-Entwicklungen in einer nativen App für alle verbreiteten Plattformen bereitstellt. chayns® ist das populärste App-Framework der Welt mit unbegrenzten Möglichkeiten für Entwickler.

Uwe van Almsick
(Tobit.Software)

Donnerstag, 18. Juni 2015
18:00-18:45

Raum Spectrum B

Web components: Warum die Zukunft des Web heute beginnt

Seit Jahren versuchen Software-Teams, große Webanwendungen modular zu gestalten, um eine saubere und wartbare Codebase über Jahre hinweg pflegen zu können. Dies gelingt allerdings mit bisweilen unterschiedlichem Erfolg. Der Vortrag erläutert, wie man mit Web Components modulares HTML, JavaScript und CSS schreiben, wiederverwenden und zu umfangreichen Anwendungen zusammenfügen kann - was bislang zwar oft versucht, aber nur selten erreicht wurde.

Martin Naumann
(Archilogic)

Donnerstag, 18. Juni 2015
18:00-18:45

Raum Spectrum A

Freitag, 09:00-10:15

Polymer & ES 2015 in der Praxis

Der Vortrag zeigt am Beispiel einer zu erstellenden und zu testenden Webkomponente die Fallstricke und Hilfsmittel von Polymer auf. Darüber hinaus wird die Komponente in ECMAScript 2015 aufgebaut (inkl. Testing), und es wird eingegangen auf die feinen, aber fiesen Unterschiede zwischen den verfügbaren nativen Implementierungen der Web-Component-APIs und den von Polymer bereitgestellen Shims (z.B. für Databinding der Object.observe()-Shim). Auf die aktuell hitzig diskutierte Frage, ob man denn AngularJS im Angesicht der praktischen Möglichkeiten von Polymer bei einen "Grüne Wiese"-Projekt überhaupt noch einsetzen sollte, wird mittels einer Gegenüberstellung eingegangen.

Lars Gersmann
(content management ag)

Freitag, 19. Juni 2015
09:00-10:15

Raum Spectrum B

JavaScript-Testwerkzeuge im Überblick

JavaScript und Testen mit JavaScript war noch nie so einfach. Wir werfen einen Blick auf Jasmine, CasperJS und cucumber.js und schauen uns an, wo die jeweiligen Stärken, Schwächen und sinnvollen Einsatzgebiete der Werkzeuge liegen.

Sebastian Springer
(Mayflower)

Freitag, 19. Juni 2015
09:00-10:15

Raum Spectrum C

Continuous Integration für das Frontend

Continuous Integration gehört in den meisten Unternehmen mittlerweile zum guten Ton, oft aber nur mit Blick auf die Server-Seite. Dabei kommt heute keine Anwendung mehr ohne Frontend-Code aus. Dieser wird - gerade im Enterprise-Bereich - oft vernachlässigt. In diesem Vortrag wird ein CI-Setup mit Fokus auf das Frontend vorgestellt. Automatisierte Tests, Sourcecode Quality Management und andere typische Bestandteile sind für den Frontend-Code genauso wichtig wie für das Backend. Durch Asset-Optimierung kann die Performance, gerade für mobile Clients, deutlich gesteigert werden. Gezeigt werden Tools, Methoden und Best Practices für den Aufbau und die Umsetzung der Delivery-Pipeline. Zum Einsatz kommen dabei Grunt, ESLint, Mocha und Jenkins.

Bastian Krol
(codecentric)

Marcel Birkner
(codecentric)

Freitag, 19. Juni 2015
09:00-10:15

Raum Spectrum A

Freitag, 10:45-11:30

Web-Security: Browser schlagen zurück!

Das Thema Web Application Security ist und bleibt omnipräsent, nicht nur aufgrund aktueller Vorfälle bei großen Firmen und bekannten Websites. Und da es Entwickler offensichtlich nicht hinbekommen, ihre Websites abzusichern, stellen sich mittlerweile die Browser an ihre Seite und bieten eigene Schutzmaßnahmen. Hierzu gehören eingebaute XSS-Filter, Support für neue HTTP-Header als Gegenmittel für zahlreiche Angriffsvektoren und vieles mehr. Wir werfen einen Blick auf Techniken und wie wir sie aus Entwicklersicht mit wenig Aufwand nutzen können.

Christian Wenz

Freitag, 19. Juni 2015
10:45-11:30

Raum Spectrum C

JavaScript-Unit-Tests und Oberflächentests mit Karma und Protractor

Sauberer Code und Test-Driven Development (TDD) sind die Grundlage für eine gute Architektur. Durch automatisierte Tests lässt sich sicherstellen, dass die Software fehlerfrei funktioniert und die fachlichen Spezifikationen erfüllt sind. In diesem Vortrag wird der Test-Runner Karma vorgestellt, mit dem man Unit-Test für JavaScript erstellen kann. Zum Einsatz kommt außerdem das BDD-Framework Jasmine. Oberflächentests sind eine gute Ergänzung zu Unit-Tests, denn mit ihnen lässt sich die Anwendung aus der Sicht des Anwenders überprüfen. Hierfür wird schließlich Protractor beleuchtet, das auf Basis von Selenium End-to-end-Tests von AngularJS-Anwendungen ermöglicht.

Johannes Hoppe
(HAUS HOPPE - ITS)

Freitag, 19. Juni 2015
10:45-11:30

Raum Spectrum A

Pragmatic Gulp

Neben einem kurzem Einstieg in die Historie von Gulp und einem Kurzausflug zu Grunt geht der Vortrag darauf ein, wie man Gulp effizient verwendet (die meisten Gulp-Skripte sind nämlich nicht effizient ...). Dazu wird ein Standard-Gulp-Skript als Basis in ein pragmatisches, wesentlich kürzeres und lesbareres umgewandelt. Das wird primär erreicht durch den direkten Aufruf der genutzten Tools, Inlining von Gulp-Plug-in-Funktionalität (via Node Streams API, ES2015) und den Einsatz von ES-2015-Sprachfeatures. Im Zuge des Vortrags soll auch ein Gulp-Plug-in erstellt werden. Die Vorteile (weniger Dependencies, schnellere Build, wartbarer Code usw.) werden am Ende gegenübergestellt.

Lars Gersmann
(content management ag)

Freitag, 19. Juni 2015
10:45-11:30

Raum Spectrum B

Freitag, 11:40-12:25

Tales from the crypt: JavaScript & the Internet of Things

Sehen wir der Wahrheit ins Auge, das "Internet of Things" ist nicht mehr als ein gehyptes Buzzword-Konstrukt. Interessanterweise aber eines, das von zwei sehr unterschiedlichen Gruppen genutzt wird: von denen, die am liebsten "Big Data in die Cloud" schieben wollen und denen, die ihre Kaffeemaschine Zuhause mit einem Tessel aufwerten, um sie vom Raspberry PI steuern zu können. Tauchen wir tiefer in das Thema ein, wird es noch komplexer: Ist die batteriebetriebene Fernbedienung für meine Beleuchtung wirklich mit dem Internet verbunden? Warum brauche ich dann noch einen Access Point für meine Lampen, ich hab doch schon 'nen WIFI-Router?! Wieso geht dieses "Internet of Things" nicht im Browser, sondern nur mit 20 IPhone-Apps?
All diese Fragen werden in diesem Talk beantwortet, in dem wir ein proprietäres Hausautomatisierungsprotokoll für Consumer Electronics mit Hilfe von JavaScript auf Server- und Clientseite nachkonstruieren und mit DIY-Hardware interagieren lassen. Dadurch zeigen wir auf, warum JavaScript die Sprache der Wahl für die Vernetzung "der Dinge" darstellt und wie die Sprache uns zudem den Ausweg aus dem Zeitalter der "IPhone Apps of Things" weisen kann.

Sebastian Golasch
(Deutsche Telekom)

Freitag, 19. Juni 2015
11:40-12:25

Raum Spectrum C

Responsive Testing

Gerade beim Einsatz von Responsive Design wird es immer wichtiger, mit einer Automatisierung von Regressionstests für das Layout zu arbeiten. Durch das Bilden von Differenzen zwischen Bildern lassen sich zwar Unterschiede zwischen verschiedenen Ständen ermitteln, aber auf Dauer ist dieses Vorgehen sehr schwierig, weil auch kleine Änderungen große Bildunterschiede herbeiführen können. Hier setzt das Galen-Framework an. Mit ihm lassen sich wie in TDD Anforderungen in einer DSL formulieren und im Anschluss prüfen. Dabei setzt die Galen DSL darauf, die Beziehungen zwischen den Elementen zu beschreiben. Für die Ausführung der Tests kommt Selenium zum Einsatz. Dieser Vortrag soll Galen und Erfahrungen damit vorstellen.

Martin Reinhardt
(Holisticon)

Freitag, 19. Juni 2015
11:40-12:25

Raum Spectrum A

Effiziente App-Entwicklung - ein Code für alle Geräte und Plattformen

Am Beispiel eines realen Projekts der Firma BFW, für die Bereitstellung von Daten für Wasserproben eine Applikation sowohl browserbasiert wie auch als mobile App zur Verfügung zu stellen, wird gezeigt, wie sich eine Lösung mit einer Codebasis für alle Geräte und Plattformen realisieren lässt. In diesem Projekt sollten die Proben via Scanner auf dem mobilen Gerät erfasst und mit der Datenbank synchronisiert werden. Da an den Entnahmestellen häufig keine Internetverbindung besteht, sollte die Lösung sowohl "serverless" funktionieren als auch unter iOS und Android lauffähig sein. Der Vortrag vermittelt die Erstellung von Web- und Mobile-Apps für verschiedene Plattformen mit dem Tool Omnis Studio; dabei wird live gezeigt, wie Debuggen, Editieren und Programmieren in einem Arbeitsablauf möglich sind.

Andreas Pfeiffer
(TigerLogic)

Freitag, 19. Juni 2015
11:40-12:25

Raum Spectrum B

Freitag, 13:25-14:10

Keynote: Ein Blick hinter die Kulissen eines in JavaScript implementierten Cross-Plattform-Entwickler-Tools

Visual Studio Code ist Microsofts neues Entwickler-Tool. Es sieht zunächst wie ein einfacher Code-Editor aus, bringt aber die wichtigsten Features mit, die Entwickler für ihren Code-Edit-Debug-Zyklus benötigen. Unter der Haube ist es eine JavaScript-Applikation. Als wir dieses Projekt vor vier Jahren begannen, starteten wir mit JavaScript-Komponenten für den Browser; später schrieben wir den Code auf TypeScript um und ließen die Komponenten auch als Desktop-Applikationen auf GitHubs Electron-Framework laufen. Die Architektur entwickelte sich hin zu einer Tools-Service-Architektur mit Services für die C#- und TypeScript-Analyse. In diesem Vortrag werfe ich einen Blick zurück auf diese Entwicklung.

Erich Gamma
(Microsoft)

Freitag, 19. Juni 2015
13:25-14:10

Raum Spectrum A

Freitag, 14:20-15:05

Einstieg in React

Gefühlt jeden Tag entsteht ein neues JavaSript-Framework, aber nur alle paar Jahre setzt sich eines durch. Gerade für Unternehmen stellt sich die Frage, warum und welches sie einsetzten sollen. React hat Größe bewiesen – nicht nur dadurch, dass Webseiten wie Instagram damit entwickelt wurden, sondern auch, da es durch ein virtuelles DOM sowohl auf dem Client als auch auf dem Server rendern lässt. Damit bietet es eine bessere Testbarkeit und eignet sich optimal für suchmaschinenrelevante Webseiten. Und die Komponenten müssen für Client und Server nur in einer Sprache geschrieben werden: JavaScript! In diesem Vortrag wird gezeigt, wie React funktioniert, was es gegenüber andere Frameworks so besonders macht und warum es sich auch für große Webanwendungen perfekt eignet (SEO, Shared Code, ...).

Roberto Bez
(HolidayCheck)

Donnerstag, 1. Juli 2015
14:20-15:05

Raum Spectrum A

J2V8 - Running JavaScript efficiently in a Java world

While JavaScript is a powerful technology, it does not stand on its own in enterprise environments, where Java has been the reigning force for many years. Java is also at the core of the most widely used mobile operating system – Android – with no decent Java/JavaScript integration available. To close this gap we open sourced J2V8, a rich set of Java bindings for Google's V8. These bindings expose the V8 API to developers enabling an efficient integration between JavaScript and Java.
In this talk we will introduce J2V8 and demonstrate it in action. We will explore the performance characteristics and highlight tools, that will help you develop, debug and deploy JavaScript applications on J2V8. We will explain how we integrated V8, an engine entirely written in C++, with Java, and how Docker helps us creating multi-platform builds reliably.

Ian Bull
(EclipseSource/Tabris.js)

Freitag, 19. Juni 2015
14:20-15:05

Raum Spectrum B

Kosteneffiziente Qualitätssicherung mit virtuellen Hardware-Labs

Über einen Mangel an (mobilen) Plattformen und Browsern kann sich derzeit wohl niemand beschweren. Den Konsumenten freut es, kann er doch aus einer Vielzahl verschiedener Konzepte wählen. Verhaltener mag die Stimmung dagegen bei Entwicklern und Entscheidern ausfallen. Eine adäquate Qualitätssicherung bedingt meist ein hohes Vorab-Investment in ein entsprechendes Hardware-Lab sowie technischen Aufwand, um das Lab in die Testumgebung zu integrieren. Dieser Vortrag zeigt, wie man mit virtuellen Hardware-Labs kosteneffizient und automatisiert eine große Bandbreite an unterschiedlichen Plattformen und Konfigurationen testet und über ein vereinheitlichtes grafisches Interface debuggt.

Oliver Arafat
(AWS)

Freitag, 19. Juni 2015
14:20-15:05

Raum Spectrum C

Freitag, 15:35-16:20

Flux - Architektur für React

Mit React hat Facebook eine großartige View-Technologie entwickelt. Sie ist simpel, schnell und universell einsetzbar. Es stellt sich dabei allerdings die Frage, wie man den Rest seiner Anwendung um diese Technik herum implementiert. Facebook hat dafür das Flux-Architekturkonzept entwickelt. Yahoo ist auf diesen Zug aufgesprungen und hat daraus mit Fluxible gleich ein kleines Framework gebaut. In diesem Vortrag möchte ich die Ideen hinter dieser Architektur anhand praktischer Beispiele erläutern. Der Vortrag basiert unter anderem auf praktischen Erfahrungen aus unterschiedlichen Projekten und Diskussionen mit React-Kernentwicklern.

Oliver Zeigermann
(embarc)

Freitag, 19. Juni 2015
15:35-16:20

Raum Spectrum C

TDD mit Google Spreadsheet oder: Wie ich Kids und Managern TDD beibrachte

Viele Entwickler werden mit TDD nur langsam warm, weil der Aufwand zu groß scheint, eine entsprechende Umgebung aufzusetzen. Dabei muss das gar nicht immer so sein: Manchmal reicht auch Google Spreadsheet, z.B. wenn Sie eine Code-Kata üben oder das großartige Gefühl erleben wollen, wie ein roter Kasten nach der richtigen Implementierung grün wird. Zuhörer können in diesem Vortrag erfahren, wie sich Grundlagen testgetriebener Entwicklung mit dem Spreadsheet-Dienst umsetzen lassen und wie man Skeptiker ohne viele Umstände auf den Geschmack der Rot-Grün-Zyklen bringen kann.

Wolfram Kriesing
(uxebu GmbH)

Freitag, 19. Juni 2015
15:35-16:20

Raum Spectrum B

TypeScript: JavaScript on Steroids

JavaScript ist die Standard-Programmiersprache im Webbrowser. Viele Entwickler mit OO-Erfahrung sind jedoch skeptisch und vermissen Dinge wie statische Typprüfung, Klassen usw. TypeScript ist eine Obermenge von JavaScript, die nach JavaScript kompiliert. TypeScript bietet statische Typprüfung zur Compilezeit, Interfaces, Klassen, Module und vieles mehr. Dieser Vortrag gibt einen Überblick über TypeScript und zeigt an vielen praktischen Beispielen, welche Vorteile TypeScript bietet, gerade wenn man größere Projekte gerne in JavaScript realisieren würde, aber Bedenken bezüglich der Abstraktionslevel und der dynamischen Typisierung hat.

Kai Tödter
(Siemens)

Freitag, 19. Juni 2015
15:35-16:20

Raum Spectrum A

Freitag, 16:30-17:15

Von 0 auf 100 in einer Sekunde

Studien haben gezeigt, dass performante Webseiten, die innerhalb einer Sekunde laden, ihre Benutzer glücklicher machen, niedrigere Bounce-Rate haben und mehr Conversion liefern. Sie werden auch bei den Suchmaschinen höher platziert. Als JavaScript-Entwickler können wir die Performance einer Webseite wesentlich beeinflussen. Mit cleveren Tricks und Tools können wir für kürzere Ladezeiten sorgen. Durch intelligente Prädiktion können wir die Wahrnehmung der Performance deutlich steigern. Dieser Vortrag zeigt zahlreiche Techniken, Best-Practices und Tools, die den Kampf gegen schlechte Performance erleichtern und schnelle Pageloads ermöglichen.

Ádám Béres-Deák
(AutoScout24)

Freitag, 19. Juni 2015
16:30-17:15

Raum Spectrum C

Local Storage de luxe oder "Was noch zu speichern war"

localStorage bzw. sessionStorage sind - so die Einschätzung des Vortragenden - die einzigen HTML5-Features, die man in wirklich jedem Projekt braucht. Abwärtskompatibel bis zum IE8 sind sie auch in "konventionellen" Enterprise-Anwendungen einsetzbar und für mehr Dinge nützlich, als man im ersten Moment denkt. Der Vortrag vermittelt Best Practices aus dem Projektalltag und zeigt hilfreiche Tools zum Umgang mit clientseitigen Daten. Außerdem soll IndexedDB vorgestellt werden, die es möglich macht, Datenmengen im Gigabyte-Bereich clientseitig vorzuhalten.

Jan Petzold
(Westernacher Products & Services)

Freitag, 19. Juni 2015
16:30-17:15

Raum Spectrum A

Meteor - die reaktive Full-Stack-JavaScript-Plattform

Reaktive, Event-getriebene Single-Page-Web-Apps sind hip! Dass der Umgang mit Reaktivität von der Datenbank bis hin zu unzähligen Web-Clients kein Hexenwerk ist, sondern richtig einfach ist und Spaß machen kann, zeigt die Meteor-Plattform. Quasi in Echtzeit werden alle angeschlossenen Clients aktualisiert, sobald sich in der Datenbank etwas ändert. Eine clevere Latency-Compensation sorgt dafür, dass ein flüssiges und nicht-blockierendes Arbeiten auch im Frontend möglich ist. Meteor möchte die Webentwicklung auf ein neues Level heben. Doch ist ein solches End-to-End Framework auch praxistauglich? Wo sind Grenzen in der Entwicklung gesetzt? Welche Hürden gilt es zu überwinden und wie sieht es mit der Sicherheit aus? Ich zeige, wie man mit Meteor in kürzester Zeit eine produktive Web-App inklusive Mobile-Clients bauen kann und beleuchte das Framework dennoch kritisch.

Niko Köbler

Freitag, 19. Juni 2015
16:30-17:15

Raum Spectrum B