Dienstag, 11:00h-18:00h
In diesem Workshop werden die Teilnehmer in alle für Enterprise-Entwickler (Java, C#) wesentlichen Spracheigenschaften von JavaScript eingeführt. Es werden Themen wie Objekte, Funktionen und prototypische Vererbung besprochen. Auch neue Konzepte wie ES6-Klassen und Module werden behandelt. Der Workshop enthält zudem kleine Übungen am eigenen Rechner. Bringen Sie dafür einen Laptop mit, auf dem ein aktueller Chrome-Browser installiert ist.
Vorkenntnisse: Objektorientierte Programmierung.
Lernziele: Moderne JavaScript-Klassen und -Module schreiben und (über Transpiler) verwenden.
Technische Voraussetzungen: Bitte bringen Sie einen Laptop mit. Als Webbrowser sollten Sie bevorzugt die neueste Version von Chrome einsetzen. Installieren Sie vor dem Workshop zudem die aktuelle LTS-Version (4.4.3) von Node.js. Windows-Nutzer sollten zudem Git und Python in der Version 2.7 auf dem Rechner haben. Interessierte können sich schließlich eine Trial-Lizenz von Webstorm installieren. Falls Sie ein Gerät Ihrer Firma verwenden, überprüfen Sie vorher bitte, ob Sie über Administrator-Rechte (Software muss installiert werden) verfügen. Klären Sie auch, ob übermäßig penible Sicherheitssoftware installiert ist (es werden Ports geöffnet). Corporate-Proxies, über die man in der Firma kommunizieren muss, die aber in einer anderen Umgebung entsprechend nicht erreicht werden, bereiten bisweilen Probleme.
Oliver Ochs
(Holisticon)
Martin Reinhardt
(Holisticon)
Dienstag, 14.06.2016
11:00h-18:00h
Letztes Jahr wurde der neue Standard ECMAScript2015 verabschiedet,
und an ES2016 wird auch schon intensiv gearbeitet.
Leider mussten wir feststellen, dass die Adaption in der Industrie
eher zögerlich ist. Dabei gibt es dafür keinen Grund. Dank Transpilern
wie Babel lässt sich ES2016 nämlich problemlos auch auf älteren
Browsern verwenden.
In diesem Workshop lernen Sie, die neuen Features 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 eine Entwicklungsumgebung
(Editor und Testframework) installiert haben, können Sie diese
gerne einsetzen. Ansonsten stellen wir eine zur Verfügung.
Vorkenntnisse: JavaScript-Grundlagen.
Lernziele: ECMAScript 2015 in der Praxis einsetzen können.
Marco Emrich
(webmasters akademie)
Wolfram Kriesing
(Crewmeister)
Dienstag, 14.06.2016
11:00h-18:00h
AngularJS ist das aktuell erfolgreichste Webframework und erscheint
demnächst in Version 2. Die Entwickler versprechen bessere Performance,
bessere Kompatibilität zu Webstandards und leichtere Erlernbarkeit
– das Framework befindet sich jedoch aktuell noch in der Betaphase.
Somit steht man vor der Frage: Warten oder heute schon mit AngularJS
1 das Projekt beginnen? Genau hier setzt der Workshop an. Ab
Version 1.5 nähert sich das Framework immer weiter den Konzepten
von Angular 2. In diesem Workshop vermitteln wir Ihnen, wie AngularJS
1 grundlegend funktioniert, und zeigen die aktuellen Best Practices
und Möglichkeiten mit Hinblick auf ein mögliches Upgrade auf
Angular 2.
Robin Böhm
(AngularJS.DE)
Sascha Brink
(AngularJS.DE)
Dienstag, 14.06.2016
11:00h-18:00h
In diesem Workshop möchten wir Ihnen zeigen, wie Sie Webanwendungen
mit der Open-Source-Bibliothek React entwickeln können.
Wir werden uns dazu ansehen, wie sich einzelne, wiederverwendbare
Komponenten schreiben lassen, wobei auch ECMAScript-2015-Sprachfeatures
zum Einsatz kommen. Aus den Komponenten stellen wir dann eine
ganze Anwendung zusammen und implementieren mit dem React Router
clientseitiges Routing. Natürlich lernen Sie auch, wie sich React-Komponenten
und -Anwendungen testen lassen und wie ein Entwicklungsprozess
(mit Webpack) für React implementiert werden kann.
Um an dem Workshop teilzunehmen, ist ein Laptop mitzubringen,
auf dem npm installiert ist.
Vorkenntnisse: JavaScript-Grundlagen.
Lernziele: Grundlegenden Konzepte und Features von React kennen, mit React eigene Webanwendungen erstellen können.
Technische Voraussetzungen: Bringen Sie einen Laptop mit, auf dem Sie folgende Software installieren können: Node.js 4 und Git müssen mindestens installiert sein. Wir empfehlen als IDE entweder WebStorm ('free 30-day trial' reicht) oder Visual Studio Code, jeweils die aktuelle Version. Eine Woche vor der enterJS klonen Sie bitte das Repository DJCordhose/react-workshop von GitHub. Es wird auf oberster Ebene eine package.json liegen; dort mit npm install alle Abhängigkeiten installieren.
Nils Hartmann
(Techniker Krankenkasse)
Oliver Zeigermann
(embarc)
Dienstag, 14.06.2016
11:00h-18:00h
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: JavaScript.
Sebastian Springer
(MaibornWolff)
Dienstag, 14.06.2016
11:00h-18:00h
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)
Dienstag, 14.06.2016
11:00h-18:00h
Sicherheit in Webanwendungen ist ein alter Hut. Dazu hat jeder
schon genug Artikel gelesen und Vorträge gehört. Könnte man
meinen.
Doch die Realität zeigt ein anderes Bild. Fast täglich tauchen
neue Meldungen über gehackte Webseiten auf. Wie aber lassen
sich Flüchtigkeits- und Anfängerfehler finden, ohne auf ein
teures Audit durch Spezialisten zurückzugreifen? Wie kann man
als Entwickler selbst ein Gespür für sicherheitskritische Stellen
im Code entwickeln?
In diesem Workshop wird anhand einer JavaScript-Demoanwendung gezeigt,
wie man die eigene Anwendung einem Security-Check unterzieht
und sich so mit Hilfe frei verfügbarer Materialien langsam an
die Denkweise von Hackern herantasten kann.
Vorkenntnisse: HTML-, JavaScript-, HTTP-, Java- und SQL-Grundlagen.
Lernziele: Eigene Anwendungen bzw. Anwendungen von Kollegen einem grundlegenden Security-Check unterziehen und die gängigsten Fehler finden können.
Technische Voraussetzungen: Die Teilnehmer benötigen einen Laptop mit installiertem VirtualBox sowie die Rechte, neue virtuelle Maschinen anlegen beziehungsweise importieren zu können. Circa 5 GByte Speicher sollten für die virtuellen Maschinen frei sein. Den Rest erledigen wir im Workshop gemeinsam.
Philipp Burgmer
(w11k)
Dienstag, 14.06.2016
11:00h-18:00h
Mittwoch, 09:35h-10:50h
Als ich ES2015 durch das Verfassen von Tests ausprobierte, merkte ich, dass diese Methode des Lernens ganz praktisch ist. Ich lernte fokussiert ein Feature kennen und konnte das Wissen in Form von Tests im Anschluss weitergeben. Dabei lernte ich, Spezifikationen gern zu lesen, und habe verschiedene Tools für ES6 ausprobiert. Aus all dem entstand ein „JavaScript – the language”-Meetup, in dem die Teilnehmer bei jedem der monatlichen Treffen nur ein Feature betrachten und Tests schreiben, um den Umgang damit zu lernen. Der Vortrag soll Spaß beim Lernen von ES2015 vermitteln und zeigen, wie man dabei Test Driven Development lernen kann.
Vorkenntnisse: Interesse an JavaScript.
Lernziele: ES6 spielend verstehen.
Wolfram Kriesing
(Crewmeister)
Mittwoch, 15.06.2016
09:35h-10:50h
Von WebRTC hat schon jeder gehört und die meisten sind davon fasziniert. Nicht zu unrecht, denn WebRTC schüttelt den Telekommunikationsmarkt durcheinander. Von der kostenlosen Technik können eigentlich alle profitieren, die eine Webseite oder einen Internetdienst betreiben. Wir zeigen, wo WebRTC überall verwendet wird und welche neuartigen Dienste sich realisieren lassen. Anhand eines einfachen Beispiels zeigen wir, wie Sie WebRTC in Ihren Webdienst einbauen können, welche Stolpersteine es gibt und welche Open-Source-Projekte helfen, das Beste aus WebRTC herauszuholen.
Vorkenntnisse: HTML5-Konzepte, Client/Server-Architekturen, P2P-Anwendungen.
Lernziele: Die Zuhörer sind in der Lage, bei ihren Projekten abzuwägen, ob WebRTC für sie sinnvoll ist. Zudem lernen Sie den Funktionsumfang von WebRTC kennen und erfahren die Grundlagen zur Verwendung von WebRTC-APIs und Tools.
Christian Hoene
(Symonics)
Mittwoch, 15.06.2016
09:35h-10:50h
Nachdem wir über Jahre hinweg erfolgreich einen riesigen Monolithen gebaut hatten, begaben wir uns 2014 auf die Abenteuerreise in das Land der Microservices. Im Rucksack dabei: Node.js und eine Axt – Node.js als ideale Plattform, um leichtgewichtige und skalierbare Microservices zu erstellen; die Axt, um selbige zu zerhacken, sollten sie im Laufe der Zeit zu groß werden. Mehrmals haben wir uns auf dem Weg verlaufen, sind in Sackgassen geraten oder in Fallen getappt. Nichtsdestotrotz haben wir uns gut voran gekämpft und so einige Gipfel erklommen. Der Vortrag fasst unsere Reise durch das Microservice-Land zusammen und zeigt, welche Vor- und Nachteile in Kombination mit Node.js entstehen.
Vorkenntnisse: Grundsätzliche Kenntnisse in der serverseitigen Programmierung mit Node.js. Erfahrungen im Bereich Microservices werden nicht vorausgesetzt.
Lernziele: Unsere Erfahrungen, Herausforderungen und Probleme bei der Entwicklung mit Microservices und node.js auf informative, aber auch unterhaltsame Art und Weise vermitteln.
Sebastian Max
(cleverbridge)
Jochen Kuritz
(cleverbridge)
Mittwoch, 15.06.2016
09:35h-10:50h
Mittwoch, 11:20h-12:05h
Alle modernen Webbrowser beherrschen den JavaScript-Sprachstandard ES5. Auch der Nachfolger ES2015 wird zumindest weitestgehend unterstützt. Doch wie steht es um ES2016, ES2017, ES2018 und weitere zukünftige Versionen? Die Antwort verwundert wenig: Kaum ein Webbrowser weiß mit den Neuerungen umzugehen. Das gilt selbst für Features, wie async/await, die bereits ausgereift sind. Dabei würden gerade sie die Entwicklung deutlich erleichtern! Das Open-Source-Projekt Babel.js schafft Abhilfe: Es übersetzt zukünftig gültigen Code in eine bereits heute ausführbare Variante. Dadurch lassen sich Fortschritt und Kompatibilität verbinden. Golo Roden zeigt, wie das geht und was es dabei zu beachten gilt.
Vorkenntnisse: Grundkenntnisse in ES2015 und Interesse an neuen Sprachmerkmalen. Erfahrung im Umgang mit Gulp, Grunt & Co. sind hilfreich, aber nicht zwingend erforderlich.
Lernziele: Überblick über die Möglichkeiten, künftige Sprachmerkmale heute schon nutzen zu können – sogar in älteren Webbrowsern.
Golo Roden
(the native web)
Mittwoch, 15.06.2016
11:20h-12:05h
JavaScript is the most accessible platform of our times. Yet, it has many downsides, especially in terms of big scale applications, created by multiple developers. TypeScript can solve those problems. Being the new guy, it has already found its place among rivals such as CoffeeScript and ES2015. TypeScript is the Angular2 language. It has bindings for lots of existing libraries. Some people, like me, would choose TypeScript for development of any new project. So why is that? In this talk I'll highlight the native JS problems that TS solves and compare it to its rivals, CoffeeScript and ES2015. We'll see how non-frontenders see TypeScript. I'll share my experience of banking software development.
Previous knowledge: JavaScript knowledge (syntax, constructs, functional paradigm, prototypes).
Learning objectives: The objective is NOT to walk through typescript features. Instead, the focus is on its benefits: JS problem solving, big scale projects, comparison to CoffeeScript and ES6, etc.
Tomasz Ducin
(Cybercom Poland)
Mittwoch, 15.06.2016
11:20h-12:05h
Echte Full-Stack-Entwickler sind sehr selten. Aufgrund ihrer
breiten Skill-Sets werden sie jedoch sehr häufig gebraucht,
insbesondere in kleineren Unternehmen und Start-ups. Durch die
Microservices-Bewegung werden solche Allrounder auch in größeren
Projekten immer wichtiger. Eine Microservices-Architektur erlaubt
es den Teams, Services in einem Technologie-Stack ihrer Wahl
umzusetzen, frei nach dem Motto "using the right tool for the job".
Der MEAN-Stack soll der einfachen und schnellen Entwicklung
von Webanwendungen oder -services vom Frontend bis zum Backend
dienen. Neben einer kurzen Einführung in das Thema werden Einsatzszenarien
aufgezeigt und die Vor- und Nachteile im Vergleich zu anderen
Technologie-Stacks erläutert.
Vorkenntnisse: Grundlegende HTML- und JavaScript-Kenntnisse.
Lernziele: Ein Verständnis für die wichtigsten Aspekte des MEAN-Stacks entwickeln und in der Lage sein, seinen Einsatz zu bewerten.
Fatih Gedikli
(adesso)
Mittwoch, 15.06.2016
11:20h-12:05h
Mittwoch, 12:15h-13:00h
Das war die Anforderung unseres Kunden: Die Mitarbeiter werden mit der Applikation unterwegs sein. Sie wollen dann Dokumente lesen, Ergebnisse erfassen und Bilder hochladen. Wenn sie zurückkommen, erwarten sie, dass sich die Änderungen automatisch synchronisiert haben. Die HTML-5-Technologien AppCache, IndexedDB und File API geben uns die technischen Möglichkeiten. Sowohl der Applikationscode als auch die Daten können im Browser lokal gespeichert werden. Allerdings verlangt uns eine solche Applikation ab, einige vertraute Muster zu überdenken: Wer ist der Herr über die Daten? Der Server oder der Client? Wie gehen wir mit Updates der Applikation um? Welche Daten müssen wir herunterladen, bevor jemand offline geht? Wie können wir die Offlinefunktionen automatisiert testen? Und was bedeutet offline eigentlich genau? Ich will Ihnen zeigen, was wir diskutiert haben und wie wir diese Fragen für uns beantwortet haben.
Vorkenntnisse: Grundlegende JavaScript-Kenntnisse.
Lernziele: Vorstellung einer Real-Life-Lösung für offline-fähige HTML5-Anwendungen mit AppCache, Service Workers, IndexedDB und File API.
Stefanie Grewenig
(ThoughtWorks)
Mittwoch, 15.06.2016
12:15h-13:00h
AngularJS ist eines der bekanntesten JavaScript-Frameworks. Die neue Version, Angular 2, befindet sich zurzeit in der Beta-Phase. Sie baut auf den Erfahrungen und positiven Eigenschaften von Angular 1 auf und soll schneller und moderner sein. Doch man braucht kein Vorwissen in Angular, um Angular 2 schon heute zu verwenden. Das Framework wurde komplett neu geschrieben, ist konzeptionell einfacher und verwendet eine neue Syntax. Dieser Talk ist eine Einführung in das Framework: wir lernen Components kennen, werfen einen Blick auf die Template-Syntax, Pipes und Directives und sehen uns Dependency Injection an.
Vorkenntnisse: Grundlagen in JavaScript und HTML.
Lernziele: Der Talk soll die Teilnehmer mit den wichtigsten Konzepten von Angular 2 vertraut machen. Er gibt einen Einblick in die TypeScript- und ES2015-Syntax.
Michaela Lehr
(Geil,Danke! GmbH)
Mittwoch, 15.06.2016
12:15h-13:00h
Die Entwicklung von dynamischen und skalierbaren Web-Applikationen ist einem stetigen Wandel unterworfen und fordert von Entwicklern die Beherrschung verschiedener Technologien. Die JS-WebClient-Technologie von Omnis Studio dagegen erlaubt es den Entwicklern, sich auf die Implementierung der geforderten Funktionalität einer Applikation zu konzentrieren. Durch die dynamische Erzeugung von HTML5 und JS mittels der Engine des Omnis Web Application Servers in Zusammenarbeit mit einem Apache-Webserver oder dem Microsoft IIS auf den Plattformen Windows, Mac OS X oder Linux sowie praktisch allen gängigen SQL-Datenbanken, ist höchste Effizienz und Produktivität gegeben.
Vorkenntnisse: Grundlagen der Web-Entwicklung, OO-Programmierung, SQL
Lernziele: Grundsätzliches Verständnis der Architektur von Omnis-Studio-Webanwendungen
Klaus Schrödl
(TigerLogic)
Mittwoch, 15.06.2016
12:15h-13:00h
Mittwoch, 14:00h-14:45h
Not all projects can be greenfield. As developers we are often handed legacy code that we need to extend and improve upon. The BBC is no different.
I am going to discuss the methods that the BBC are using to migrate their legacy products from monolithic to microservice based architectures, with examples of how BBC Knowledge and Learning have enhanced the user experience whilst never once disrupting service.
Katie Roberts
(BBC Knowledge and Learning)
Mittwoch, 15.06.2016
14:00h-14:45h
Mittwoch, 14:55h-15:40h
Webstandards haben sich massiv entwickelt und mittlerweile sind viele CSS-Techniken verfügbar, JavaScript in der Layoutgestaltung unnötig machen. Sven zeigt in seinem Vortrag, welche CSS-Techniken sich heute schon in allen Browsern einsetzen lassen. Außerderm gibt er einen Ausblick auf Techniken, die noch nicht überall verfügbar sind.
Vorkenntnisse: Kein spezielles Vorwissen nötig.
Lernziele: CSS-Features kennenlernen und herausfinden, welche JS-Techniken sich damit ersetzen lassen.
Sven Wolfermann
(maddesigns)
Mittwoch, 15.06.2016
14:55h-15:40h
Angular 2 kommt … und es macht alles anders! Ist das wirklich so? Was hat das für meine AngularJS-Anwendung zu bedeuten? Was kann ich tun, um mich heute schon auf einen sanften Umstieg vorzubereiten? Ich habe verschiedene Möglichkeiten der Migration von AngularJS auf Angular 2 in Projekten ausprobiert und teile meine Erfahrungen mit euch.
Robin Böhm
(AngularJS.DE)
Mittwoch, 15.06.2016
14:55h-15:40h
Reactive Programming mit JavaScript macht Spaß – und zwar nicht nur den Entwicklern, sondern auch den Benutzern einer Applikation. Das Ziel dieses Paradigmas ist eine Anwendung, die den Benutzer im Fokus hat, ihn kontinuierlich informiert hält und auch unter suboptimalen Bedingungen noch eine beeindruckende User Experience vermittelt. Die gute Nachricht hinter all dem: Sämtliche Technologien, die für ein reaktives System benötigt werden, stehen schon zur Verfügung. JavaScript-Entwickler müssen noch nicht einmal etwas Neues lernen, sondern lediglich ihre Vorgehensweise bei der Umsetzung etwas anpassen und ein paar Regeln folgen.
Vorkenntnisse: Grundlegende JavaScript-Kenntnisse.
Lernziele: Reaktive Applikationen mit JavaScript erstellen können.
Sebastian Springer
(MaibornWolff)
Mittwoch, 15.06.2016
14:55h-15:40h
Mittwoch, 15:50h-16:35h
Seit Jahren formatieren wir Zahlen, Datumsangaben und Preise für alle möglichen Locales in unserem Backend. In den meisten Backend-Sprachen ist die Unterstützung für die Lokalisierung und Formatierung bereits Bestandteil der Standardbibliotheken. Aber wie sieht es eigentlich im Frontend aus? Wie werden Texte übersetzt? Können wir die Zahlen in allen Locales formatieren? Leider nein. Und warum ist das eigentlich so schwer? Es sollte doch einfach sein, wenn es im Backend auch funktioniert. Der Vortrag zeigt Probleme, die auftreten, wenn das Frontend für andere Sprachen oder Kulturkreise anzupassen ist. Das Gute ist, dass viele Bibliotheken, die wir bereits benutzen, uns bei der Problemlösung helfen können.
Vorkenntnisse: Kein spezielles Vorwissen notwendig.
Lernziele: Ein Verständnis für die Herausforderungen guter lokalisierter Software schaffen.
Tina Umlandt
(Jimdo)
Mittwoch, 15.06.2016
15:50h-16:35h
Das Kundenterminal in den Filialen des Drogeriemarkts dm: Altgeräte mit Touch-Bildschirmen, die nur Druck, aber kein Wischen erkennen, iPads als Neugeräte und dazu Peripheriehardware. Zum Teil findet sich all das in abgelegenen Bergregionen mit schlechter Internetverbindung. Wie bekommt man das unter einen Hut? Mit modernen Webtechnologien und AngularJS! Wir stellen in diesem Vortrag die neuentwickelte Architektur sowie die verwendete Toolchain vor und erklären, wie wir durch automatisierte Unit- und End-to-End-Tests die Qualität des Produkts sicherstellen.
Vorkenntnisse: Kenntnisse in HTML und JavaScript, im Idealfall Angular, Grunt und Protractor.
Lernziele: Erfahrungen aus dem Projektalltag kennenlernen, Freude an automatisierten Tests bekommen, Lessons learned nachvollziehen.
Philipp Christoph
(Filiadata)
Matthias Reuter
(inovex)
Mittwoch, 15.06.2016
15:50h-16:35h
Moderne Web-Applikationen werden immer mächtiger und können zunehmend nativen Applikationen die Stirn bieten. Insbesondere im mobilen Umfeld spielt dies eine große Rolle, da sich so hohe Entwicklungsaufwände vermeiden lassen. Schließlich sind Web-Applikationen auf den verschiedenen mobilen Plattformen gleichermaßen lauffähig. Dennoch besitzen Web Apps gegenüber nativen Apps Einschränkungen. In diesem Vortrag soll gezeigt werden, wie neue Standards diese Probleme lösen und so Applikationen ermöglichen, die nicht mehr von nativen Apps zu unterscheiden sind. Die daraus resultierende App wird dann häufig als Progressive Web App bezeichnet.
Vorkenntnisse: Grundverständnis des Web
Lernziele: Der Vortrag soll den Hörern einen allgemeinen Überblick über Technologien verschaffen, die in modernen Web-Applikationen zum Einsatz kommen. Des Weiteren soll ein Verständnis für ihre Notwendigkeit geschaffen werden.
Jonas Moosmann
(inovex)
Mittwoch, 15.06.2016
15:50h-16:35h
Mittwoch, 17:05h-17:50h
There are thousands of marketing tools available to solve a myriad of online woes. More often than not, these solutions entail some type of tracking code to be implemented. And this is where the side-effects kick: headaches, inter-department tensions, code bloat, increased page load times, inaccurate data, etc. This talk is centered on how implementing a tag manager can help alleviate some of these side effects if done correctly. A tag manager is not a magical cure-all but it can dramatically improve some common issues such as lack of flexibility, errors, obscure tracking codes long forgotten, etc.
Previous knowledge: Digital analytics notions.
Learning objectives: Showcasing that marketing initiatives don`t (always) feel like painful meaningless ordeals for developers.
Myriam Jessier
Mittwoch, 15.06.2016
17:05h-17:50h
Angular 2 enthält viele neue Konzepte zum Umgang mit Events und Daten innerhalb der Applikation. Durch die Integration von Reactive Extensions (RxJS) in das Framework können Entwickler auf eine mächtige Library zurückgreifen, die den Umgang mit asynchronen Operationen (wie Events und XHR) wesentlich erleichtert und die Performance der Applikation deutlich verbessern kann. Weitere Performancesteigerungen sind darüber hinaus durch den Einsatz von Immutable-Datenstrukturen (Immutable.js) möglich. Der Vortrag vermittelt die Grundlagen und Vorteile von RxJS und Immutable.js im Zusammenspiel mit Angular 2.
Vorkenntnisse: Grundlegende Kenntnis der neuen Features von ES2015. Es ist kein Vorwissen über Angular 2, RxJS oder Immutable.js notwendig.
Lernziele: Data-Flow-Konzepte in Angular 2 kennenlernen, Basics von RxJS und Immutable.js verstehen und praktisch umsetzen können.
Sebastian Müller
(adesso)
Mittwoch, 15.06.2016
17:05h-17:50h
Das Deployment von Node.js- und JavaScript-Anwendungen lässt sich komfortabel mit Docker durchführen. Dabei gilt es jedoch, verschiedene Fallstricke und Stolperfallen zu vermeiden, um kleine und leichtgewichtige Docker-Images zu erzeugen. Der Vortrag beleuchtet die verschiedenen Regeln und Best Practices. Schritt für Schritt wird am Beispiel einer Node.js-Anwendung gezeigt, wie man ein Docker-Image optimiert und damit das Deployment deutlich beschleunigt.
Vorkenntnisse: Grundkenntnisse in JavaScript und Node.js, und keine Angst vor der Kommandozeile. Erfahrung mit Docker ist hilfreich, aber nicht zwingend erforderlich.
Lernziele: JavaScript- und Node.js-Anwendungen effizient sowohl lokal als auch in die Cloud deployen zu können.
Golo Roden
(the native web)
Mittwoch, 15.06.2016
17:05h-17:50h
Mittwoch, 18:00h-18:45h
People use technology in different ways, by clicking, typing, tapping, watching and listening. Whether we use vanilla JavaScript, JavaScript libraries or JavaScript frameworks, we want people to be able to use the things we build. It helps to understand the relationship between DOM scripting and browser accessibility mechanics. With practical (JavaScript and ARIA) code examples, and accessibility tools for popular JavaScript frameworks like AngularJS and Ember.js, this developer's guide to accessible DOM scripting is all about coding like you give a damn!
Previous knowledge: Basic HTML, JavaScript and ARIA.
Learning objectives: Learn techniques and tools for building accessible interfaces with JavaScript.
Léonie Watson
Mittwoch, 15.06.2016
18:00h-18:45h
Die Vortragssprache wird zu Beginn der Session bestimmt./ The language in which the talk is held will be determined at the beginning of the session.
Was ist Change Detection? Was löst Veränderungen aus? Und was genau ist eine Veränderung in dem Zusammenhang überhaupt? In diesem Talk wollen wir einen Blick auf einen der wichtigsten Teile des Angular-2-Frameworks werfen. Wir werden lernen, wie Angular Zones und die unterschiedlichen Change-Detection-Implementierungen nutzt, um unsere Anwendungen schnell und responsive zu machen.
Vorkenntnisse: Kein spezielles Vorwissen nötig.
Lernziele: Verstehen, wie Angular Changes ermittelt und wie die unterschiedlichen Implementierungen und Konfigurationsoptionen Anwendungen beschleunigen können.
What is Change Detection? What causes change? And what is a "change" anyway? In this talk we want to take a look at one of the most important parts of the Angular 2 framework. We're going to explore how Angular combines the power of "Zones" and its different implementations of Change Detection, to make your apps fast and responsive.
Previous knowledge: No special previous knowledge needed.
Learning objectives: Understanding how Angular detects changes and how the different implementations and configuration options can speed up applications.
Pascal Precht
(thoughtram)
Mittwoch, 15.06.2016
18:00h-18:45h
Spricht man in Projekten das Thema E2E-Tests an, kommen schnell Probleme wie Wartbarkeit, Datenflut und unzureichendes Reporting auf den Tisch. Unter den richtigen Voraussetzungen und im Verbund mit anderen Testarten, schaffen diese Tests aber zum einen eine schön automatisierte Oberfläche und zum anderen auch einen Nutzen für das jeweilige Projekt. Mit Selenium hat die Nutzung von Page Objects allgemeinen Einzug in die Testautomatisierung gehalten, die bei richtiger Nutzung erheblichen Wartungsaufwand vermeiden. Doch auch die besten Page Objects brauchen zum Steuern der Oberfläche Daten, deren Verwaltung und Aktualisierung im Laufe eines Projektes schweißtreibend werden kann.
Vorkenntnisse: grundlegende Kenntnisse in JavaScript und Protractor
Andy Schulz-Jussenhofen
(SprintEins)
Mittwoch, 15.06.2016
18:00h-18:45h
Donnerstag, 9:00h-9:45h
Was ist eigentlich die richtige Architektur? Vor ein paar Jahren hätte die Antwort auf diese Frage noch anders ausgesehen: Von einem LAMP-Stack bis hin zur unvermeidlichen Java Enterprise Service-Oriented Architecture, über die verspielte Technologiephase mit Storm, RabbitMQ, Scala, etc. bis hin zur schönen neuen Microservice-Welt, in der JavaScript plötzlich nicht nur im Frontend eine völlig neue Bedeutung hat. Wir erzählen, was HolidayCheck in zehn Jahren Entwicklung gelernt hat und warum JavaScript eine wichtige Rolle spielt.
Vorkenntnisse: Kein spezielles Vorwissen nötig.
Lernziele: Die Teilnehmer sollen sehen, wie schnell sich Architektur im Webumfeld ändern kann und den wachsenden Einfluss von JavaScript im Front- und Backend erkennen.
Roberto Bez
(HolidayCheck)
Andreas Geier
(HolidayCheck)
Donnerstag, 16.06.2016
9:00h-9:45h
JavaScript applications are becoming more complex. The likelihood, that your code breaks in production, gets higher with every line of code, and every new member on your team. After all, we're humans and make mistakes. It's absolutely natural. In this talk we travel back in time to the summer of 1962, on a mission to fix the most expensive (NASA) software bug in history in a live coding session (bring your space helmets!). On our mission you'll be introduced to the concepts of unit testing. You'll learn how to utilise unit tests to easily shield yourself from making mistakes and how large tech companies use automated test suites to safely ship code into production multiple times per day.
Previous knowledge: Basic programming knowledge.
Learning objectives: This talk is intended to be a showcase with a live-coding session how unit tests are useful. We'll start by showing what unit tests are and how to create them and end by demoing continuous integration.
Julian Krispel-Samsel
(Rainforest QA)
Donnerstag, 16.06.2016
9:00h-9:45h
Die klassischen Requirements-Engineering-Methoden und agile Entwicklung scheinen sich gegenseitig auszuschließen: In der agilen Entwicklung wird Dokumentation durch Kommunikation ersetzt. Tatsächlich sind die User Stories in dieser Methodensammlung aber von zentraler Bedeutung, weil sie nicht nur die Grundlage für Entwicklung und Test darstellen, sondern auch für das agile Projektmanagement. Trotz aller Vorteile besteht der Nachteil darin, dass ein Gesamtkonzept fehlt und die Struktur der Software allmählich immer chaotischer wird. Dieser Vortrag stellt einige Möglichkeiten der Kombination von klassischem Requirements Engineering und agiler Entwicklung dar.
Vorkenntnisse: Grundkenntnisse in agiler Entwicklung und Requirements Engineering, am besten auch praktische Erfahrungen.
Lernziele: Der Vortrag zeigt auf, dass agile Entwicklung und klassische Requirements-Engineering-Methoden kein Widerspruch sind, sondern sich flexibel ergänzen können. Es werden einige Möglichkeiten aufgezeigt.
Andrea Herrmann
(Herrmann & Ehrlich)
Donnerstag, 16.06.2016
9:00h-9:45h
Donnerstag, 9:55h-10:40h
"Was hat sich der Designer dabei wieder gedacht?" Diese Frage hat sich vermutlich jeder Entwickler schon einmal gestellt, denn kaum ein innovatives Softwareprojekt kommt heutzutage ohne ein agiles, interdisziplinäres Team aus. Eine fruchtbare Zusammenarbeit entsteht jedoch erst durch intensiven Austausch und Verständnis für das jeweils andere Fachgebiet. Bettina gibt Einblicke in bewährte Vorgehensweisen aus dem User Experience Design und führt anhand konkreter Beispiele durch typische Projektphasen wie Konzeption, Design, Implementierung und User Review. Parallel werden mögliche Schnittstellen zwischen Design und Entwicklung aufgezeigt und unterschiedliche Modelle der Zusammenarbeit beleuchtet.
Bettina Maier
(Intuity Media Lab)
Donnerstag, 16.06.2016
9:55h-10:40h
Tracing a bug in a complex application can be a frustrating experience. Luckily the tools available for debugging JavaScript code have improved tremendously over the last few years. During this talk, we'll investigate different bugs and use Chrome's Developer Tools to find the code that's causing the defect. This talk goes beyond the most well-known debugger features and demonstrates how to deal more effectively with asynchronous code, library code and unfamiliar codebases.
Previous knowledge: Knowledge of JavaScript and basic familiarity with debuggers.
Learning objectives: Understand how to use debugging tools to work more effectively.
Matt Zeunert
(Matt Zeunert Ltd)
Donnerstag, 16.06.2016
9:55h-10:40h
Web Components sind nichts Neues, sind sie doch seit 2013 in der Entwicklung durch Browser-Vendors und das W3C. Nach dem anfänglichen Hype um 2014 herum wurde es zunächst stiller um Web Components – stagnieren sie also oder sind sie gar Geschichte? Nein, keinesfalls! Der Vortrag gibt eine Kurzeinführung und ein ausgiebiges Update zum aktuellen Stand der Entwicklung und zeigt Möglichkeiten auf, bereits heute von Web Components zu profitieren und sie in aktuellen Projekten zu verwenden.
Vorkenntnisse: HTML, JavaScript-Grundlagen.
Lernziele: Verstehen, was Web Components sind und wie man sie heute einsetzen kann.
Martin Naumann
(Archilogic)
Donnerstag, 16.06.2016
9:55h-10:40h
Donnerstag, 11:10h-11:55h
React ist ein JavaScript-Framework, mit dem sich Komponenten für das Web entwickeln lassen. Ursprünglich von Facebook konzipiert und verwendet, steht es mittlerweile auch als Open-Source-Projekt zur Verfügung und wird bereits auf zahlreichen namhaften Websites eingesetzt. In diesem Talk stellen wir die grundsätzlichen Konzepte und Ideen von React vor und zeigen anhand von Codebeispielen, wie sich mit React sehr einfach sowohl wiederverwendbare Komponenten als auch komplexe Webanwendungen entwickeln lassen.
Vorkenntnisse: JavaScript-Kenntnisse.
Lernziele: Die Teilnehmer erhalten ein grundsätzliches Verständnis von React und können entscheiden, ob das Framework für eigene Projekte geeignet ist oder nicht.
Nils Hartmann
(Techniker Krankenkasse)
Oliver Zeigermann
(embarc)
Donnerstag, 16.06.2016
11:10h-11:55h
Sicherheit in Webanwendungen ist ein alter Hut. Dazu hat jeder schon genug Artikel gelesen und Vorträge gehört. Könnte man meinen. Doch die Realität zeigt ein anderes Bild. Fast täglich tauchen neue Meldungen über gehackte Webseiten auf. Wie lassen sich Flüchtigkeits- und Anfängerfehler auch ohne ein teures Audit von Spezialisten finden? Wie kann man als Entwickler ein Gespür für sicherheitskritische Stellen im Code entwickeln? In diesem Talk wird anhand einer Demo-Anwendung gezeigt, wie man die eigene Applikation einem Security-Check unterzieht und sich so mit Hilfe von frei verfügbarem Material langsam an die Denkweise von Hackern herantasten kann.
Vorkenntnisse: Grundlagen in HTML, JavaScript, HTTP, Java, SQL.
Lernziele: Überblick über das Security-Thema.
Philipp Burgmer
(w11k)
Donnerstag, 16.06.2016
11:10h-11:55h
Verschiedene Web-App-Frameworks haben unterschiedliche Ansätze zum Aufbau von Webanwendungen. Alle ähneln sich jedoch im Versuch, Applikationen durch Komponenten modularer zu gestalten. Polymer setzt hierbei auf eine Familie von Webstandards, die zusammenfassend als Web Components bezeichnet wird. Das Publikum erfährt, was genau Web Components sind und wie man mit Polymer Anwendungen aus einzelnen Komponenten zusammensetzt. Außerdem geht es in diesem Vortrag um die Unterschiede sowie sie Vor- und Nachteile von Polymer gegenüber anderen populären Frameworks wie Angular und React.
Vorkenntnisse: JavaScript-Grundlagen.
Lernziele: Überblick über unterschiedliche Komponenten-Technologien, Einblick in Polymer als Tool für die Entwicklung modularer Anwendungen, Verständnis der Situation von Web Components im Browser.
Martin Naumann
(Archilogic)
Donnerstag, 16.06.2016
11:10h-11:55h
Donnerstag, 12:05h-12:50h
Seit dem React-Vortrag im letzten Jahr wurde hart an dem Projekt gearbeitet. Dieser Vortrag gibt einen Rückblick über alles Wissenswerte, geht etwas intensiver auf die Eigenheiten von React ein und zeigt, wie wichtig Tests für Komponenten sind. Und auch wir von HolidayCheck haben nach vielen Tausend Unit-Tests, der Einführung eines vollautomatisierten Docker-Deployment-Prozesses und der parallelen Entwicklung in vielen agilen Teams an mehreren Standorten einiges gelernt.
Vorkenntnisse: React mal gehört/gesehen haben.
Lernziele: Motivation für React und Testgetriebenes Entwickeln, Insights.
Roberto Bez
(HolidayCheck)
Donnerstag, 16.06.2016
12:05h-12:50h
Effective encryption is a vital component of a safe and secure internet. Many sites and mobile apps don't use TLS to encrypt their traffic, or if they do, they make a mess of it, resulting in a literal false sense of security. The basics of TLS encryption are straightforward, but the practical realities run into a forest of bewildering acronyms. This talk gives you a breadcrumb trail through the backwoods of TLS, DNSSEC, OCSP, ECDHE, ALPN, HTTP/2, HSTS, HPKP, and more! You'll get an overview of what problems TLS solves, how it works, what its component pieces are, how they fit together, where vulnerabilties and mitigations apply, and which tools and resources can help you get up to speed.
Previous knowledge: Basic understanding of IP networking and HTTP protocols.
Learning objectives: Raise awareness of what TLS is, dispel fears around it, show how it can be used in practice, explain vulnerabilities.
Marcus Bointon
(Synchromedia)
Donnerstag, 16.06.2016
12:05h-12:50h
Agile Continuous Integration verspricht mithilfe von Pipelines die Entwicklung und Auslieferung von Software signifikant zu verbessern. Der Weg zur finalen Implementierung kann jedoch mit einigen unvorhergesehenen Aufwänden gepflastert sein. So werden wir uns einige hilfreiche Methoden und Tools zur Umsetzung solcher Pipelines mit dem Fokus auf Continuous Integration ansehen, um unseren agilen Entwicklungsprozess abzurunden und dadurch Zeit für die wichtigen Dinge im Alltag zu gewinnen.
Vorkenntnisse: Grundverständnis von Softwarentwicklung
Lernziele: Wir werden die Hintergründe von Continuous Integration/Delivery diskutieren und sehen uns ein Beispiel aus der Praxis an, das vor allem die Vorteile von CI/CD hevorheben soll.
Arnoldt Bechtoldt
(inovex)
Donnerstag, 16.06.2016
12:05h-12:50h
Donnerstag, 13:50h-14:35h
Lots of people use npm every day but are only just scratching the surface of what it can do. npm isn't just for installing packages, it's a way of removing friction from every step of your development workflow. In this talk we'll cover how to use npm to save you and your team time and effort. We'll start at the most basic steps and go through to advanced techniques that will surprise even pro users. In particular we'll talk about using npm effectively as a front-end developer, npm's biggest and fastest-growing group of users.
Laurie Voss
(npm, Inc.)
Donnerstag, 16.06.2016
13:50h-14:35h
Donnerstag, 14:45h-15:30h
Mit GraphQL und Relay hat nun auch Facebook ein einfaches Data-Binding-Konzept, so wie es AngularJS oder andere Frameworks schon lange anbieten. Oder ist es doch etwas ganz anderes? Wie unterscheidet es sich davon oder auch von der React-Flux-Architektur? Ist es letztlich eine Vereinfachung? Das Konzept entkoppelt durch Generalisierung der REST-Schnittstelle zwischen Client und Server und sieht eingebautes intelligentes Caching der Abfragen vor. Das hilft, um die Entwicklung des Clients/Servers zu beschleunigen und die Schnittstelle robuster zu gestalten. Aber wie jede Abstraktion bringt auch sie Komplexität und Einschränkungen. Welche Lösungsansätze gibt es dagegen?
Vorkenntnisse: Grundlegende React-Kenntnisse, Grundlagen
der React-Flux-Architektur.
Robert Hostlowsky
(codecentric)
Donnerstag, 16.06.2016
14:45h-15:30h
Despite being crucial, the performance of web applications is usually not a primary concern. I will present results of an empirical study on performance optimizations in JavaScript conducted on 16 popular JavaScript projects. The study identifies eight root causes of issues and shows that inefficient usage of APIs is the most prevalent root cause. Furthermore, I found that most issues are addressed by optimizations that modify only a few lines of code, without significantly affecting the complexity of the source code. The study also covers the performance impact of optimizations on several versions of popular engines. Finally, I observe that many optimizations are instances of recurring patterns.
Learning objectives: Learning what type of tool support the industry needs in order to improve the efficiency, reliability and security of JavaScript applications
Marija Selakovic
(TU Darmstadt)
Donnerstag, 16.06.2016
14:45h-15:30h
It's obvious that SPA interfaces rely on RESTful APIs. But does it always have to be like this? Tight-coupling between interfaces and APIs result in great development issues. Backend-less development is an emerging approach of decoupling the two sides, enabling them to be developed independently. In this talk, I will cover: The costs and the benefits of mocking the entire API, the three possible architectural approaches in doing so, simulating business logic in mocks using plain JavaScript and JSON, mock engine examples in Angular.js and sinon.js, and the technical and business aspects of separating frontend and backend. Mock your API and make your frontend truly independent!
Previous knowledge: Just JavaScript basics, client-server model and SPA architecture in general.
Learning objectives: The aim is to explain the concept: how it works technically (on three different levels), based on examples. Moreover, the business context will be introduced: costs vs benefits as well as when, why and how.
Tomasz Ducin
(Cybercom Poland)
Donnerstag, 16.06.2016
14:45h-15:30h
Donnerstag, 15:55h-16:40h
Betrachtet man eine UI als eine Funktion, gilt für eine Eingabe immer eine definierte Ausgabe. Besonders der Zustand spielt hier eine wesentliche Rolle, denn ihn gilt es konsistent und robust zu verwalten, damit keine Seiteneffekte entstehen und der Datenfluss nachvollziehbar und transparent bleibt. Gerade bei SPAs ist das eine große Herausforderung. Redux löst dieses Problem, durch React/Flux und Elm inspiriert, sehr elegant und lässt sich mit beliebigen View-Bibliotheken kombinieren. Dieser Vortrag erklärt die zugrunde liegenden Konzepte von Redux und zeigt ausgewählte Beispiele und Best Practices. Darüber hinaus werden verschiedene Erweiterungen und das Dev-Tooling vorgestellt.
Vorkenntnisse: Single Page Apps und Features von ES6/7 (Arrow Functions, Modules, Classes, Spread Operator, Destructuring).
Lernziele: Der Vortrag vermittelt Funktionsweise und Prinzipien (Flux-Architektur, Reducer, Immutable State etc.) von Redux und klärt Vor- und Nachteile eines globalen Zustandscontainers.
Andreas Taube
(codecentric)
Donnerstag, 16.06.2016
15:55h-16:40h
Mit der JavaScript-WebClient-Technologie von Omnis Studio lassen sich dynamische und skalierbare Web-Applikationen sowohl für Desktops als auch für Mobile Devices entwickeln. Dank der für Android und Apple iOS verfügbaren JS-Wrapper ist es möglich, diese mit geringem Aufwand in den jeweiligen Stores zu vertreiben. Dabei hat man die Wahl zwischen standardmäßig serverbasierten und auch Serverless Standalone-Apps, die als HTML/ JS-Applikation komplett auf dem Mobilgerät laufen und nur bei Bedarf, etwa zur Synchronisation erfasster Daten, eine Serververbindung herstellen. Der Vortrag beschreibt die Architektur einer solchen Applikation unter Verwendung des Omnis Synchronisation Servers.
Vorkenntnisse: Grundlagen der Web-Entwicklung, OO-Programmierung, SQL, SQLite
Lernziele: Verständnis des Aufbaus und der Architektur von Serverless Mobile Applications mit Omnis Studio.
Klaus Schrödl
(TigerLogic)
Donnerstag, 16.06.2016
15:55h-16:40h
Cyborgs are all around us, and they're becoming self-aware. This talk uses NFC as a demonstration of opportunities and pitfalls of open hardware for the human body. Our live-coding journey will take us through an intro to NFC protocols by building an app for the NFC transponder implanted into my hand.
Katy Moe
(Improbable)
Donnerstag, 16.06.2016
15:55h-16:40h
Donnerstag, 16:50h-17:35h
HTML5, CSS und JavaScript: Diese Kombination wurde uns allen einst als die Lingua Franca – als die universelle Sprache – für sämtliche Anwendungen versprochen: sowohl im Web als auch auf mobilen Devices. Doch „hybride” Apps werden immer unbeliebter, hauptsächlich wegen schlechter Performance. Die erste Generation von Tools (PhoneGap / Cordova, SenchaTouch, …) war gut. Allerdings hatten alle Werkzeuge das gleiche Grundproblem. Dieses versucht Facebook jetzt zu lösen. ReactNative ist ein relativ neues JavaScript-Framework, das einmal mehr verspricht, das Entwickeln von mobilen Apps mit Webtechnologien zu ermöglichen. Ob dies gelingt, wird sich dem Zuhörer während des Vortrags eröffnen.
Vorkenntnisse: Erfahrung in der Webentwicklung.
Lernziele: ReactNative verstehen und einordnen können.
Oliver Ochs
(Holisticon)
Donnerstag, 16.06.2016
16:50h-17:35h
Wir verlassen die komfortable IDE und tauchen ab in die Interna der Versionsverwaltung Git. Wie speichert Git eigentlich Inhalte? Wie ist ein Branch in Git abgebildet? Wie funktioniert ein Rebase genau? Was hat Rebase eigentlich mit dem Merge zu tun? Was hält das alles im Kern zusammen? Diese und mehr Fragen werden mit Hilfe der Konsole und den sogenannten Plumbing Commands beantwortet. Aus Erfahrung macht es bei vielen Leuten „Klick”, wenn sie die Interna des Systems sehen und verstehen. Ein detailliertes Wissen ist vor allem in Konfliktsituationen von Vorteil. Geht ein Rebase oder ein Merge schief, ist es gut zu wissen, wie das System „tickt”.
Vorkenntnisse: Grundkenntnisse und erste Erfahrungen mit Git.
Lernziele: Besucher sollten nach der Session deutlich besser verstehen, wie Git funktioniert und warum es sich manchmal so verhält, wie es sich verhält.
Marko Beelmann
(Philips Medizin Systeme)
Donnerstag, 16.06.2016
16:50h-17:35h
„Warum will man das Internet ausdrucken? Und warum um Himmels Willen sollte man es im Browser machen?” Das ist die normale Reaktion eines Entwicklers, wenn er mit dieser Anforderung konfrontiert wird. Und so ähnlich war auch unsere Reaktion, als unser Kunde uns bat, sauber gelayoutete PDF-Dokumente mit JavaScript zu erzeugen. Für unseren Kunden müssen diese vertragsrelevanten Dokumente zu jedem Zeitpunkt – online und offline – verfügbar sein. Die einfache, im Browser integrierte Druckfunktion reicht uns nicht aus. Also haben wir uns hingesetzt, die Ärmel hochgekrempelt und die JavaScript-Bibliothek pdfmake eingesetzt. Wie erwartet, sind wir dabei auf einige Hürden gestoßen: kontextsensitive Seitenumbrüche, Textfluss um Bilder, Einbinden von verschiedenen Schriftarten, … nicht wirklich der Traum eines Entwicklers. Aber nach einigen Stunden Entwicklung, vielen Unit-Tests, langem Kopfzerbrechen und einigen Tränen können wir nun PDFs erzeugen, die sich sehen lassen. Damit ihr nicht das Gleiche erleben müsst, fasse ich euch in diesem Talk unsere Erfahrungen, Erkenntnisse und amüsantesten Fehler zusammen. Keine Sorge, ein paar Herausforderungen stehen noch aus und laden zum Mitarbeiten ein.
Vorkenntnisse: Grundlegende JavaScript- und CSS-Kentnnisse.
Lernziele: Grundprinzipien der PDF-Erzeugung innerhalb von JavaScript-Anwendungen verstehen, Erfolge, Herausforderungen und Misserfolge des Projekts nachvollziehen.
Stefanie Grewenig
(ThoughtWorks)
Donnerstag, 16.06.2016
16:50h-17:35h