Programm
Haben Sie Fragen zum Programm? Bitte schreiben Sie eine E-Mail an uns. Bei gegebenem Anlass können noch kurzfristig Änderungen im Programm erfolgen.
Haben Sie Fragen zum Programm? Bitte schreiben Sie eine E-Mail an uns. Bei gegebenem Anlass können noch kurzfristig Änderungen im Programm erfolgen.
Dieses Jahr wird es neben dem normalen Programm eine extra Runde zum Thema Softwarearchitektur geben.
Mehr zu
Softwarearchitektur Speed-Dating. Wer einsam bleibt ist selber schuld!
Das Programm zum selber ausdrucken:
Programmflyer_BED-Con2014.pdf
= Talks in English
Änderungen vorbehalten
Der Live-Gang der neuen Otto.de Shopping Plattform war aus Sicht des Operation Teams ein Non-Event wie es im Buche steht.
In diesem Talk beschreiben wir den Weg eines bunt zusammengestellten Operation Teams zu einem Team das die Methoden der Agilen Software Entwicklung verfolgt und die Prinzipien der DevOps Bewegung verinnerlicht.
Neben technologischen Herausforderung gehen wir auf die kulturellen Schwierigkeiten dieser Transformation ein und geben einen Einblick in den heutigen Entwicklungsablauf der sich stetig ändernden Plattform des größten deutschen Online-Shops.
Mitunter gelingt ein Entwicklungsvorhaben, und alle sind zufrieden. Oder es scheitert am Ende kläglich. Manchmal auch irgendwas dazwischen. Alles nur Zufall?
Der Begriff "Zufällige Architektur" (engl. Accidental Architecture) ist als Anti-Pattern durchaus gebräuchlich, der Ausspruch "Historisch gewachsen" passt ebenfalls prima in diesen Kontext. Wie kann Softwarearchitektur zum Erfolg beitragen? Was genau macht eine gute Architektur aus? Wie erreicht oder erkennt man sie? Müssen am Ende alle glücklich sein? Oder sind Kompromisse sogar zwingend erforderlich? Dieser Vortrag ordnet Projektsituationen zwischen zufälliger und wirkungsvoller Softwarearchitektur ein. Er stellt bewährte Praktiken zum Kurs setzen vor und gibt konkrete Tipps rund um Entwurf und Bewertung für Euer eigenes Vorgehen. Werft Ballast ab und erhöht gleichzeitig die Wirksamkeit der Architekturarbeit in Eurem Projekt!
PostgreSQL ist dafür bekannt ein klassisches relationales Datenbanksystem zu sein das mit fixen Datenstrukturen arbeitet. Dass PostgreSQL mittlerweile auch mit schemafreien Daten arbeiten kann ist wenig bekannt.
Die Session gibt einen Überblick über die neuen Features von PostgreSQL im Umgang mit schemafreien Daten und erläutert warum es Sinn machen kann ein RDBMs als NoSQL Backend einsetzen zu wollen.
Verfügbarkeit ist das A und O für Systeme in Produktion, möglichst 24x7, möglichst wenige Ausfälle.
Um das zu erreichen, genügt es nicht, sich auf die Fehlertoleranzmechanismen der Infrastrukturebene zu verlassen, sondern man muss die dafür benötigte Robustheit (Resilience) selber in die Anwendung einbauen.
Ein besonders schwieriger Fall ist, dafür zu sorgen, dass eine Komponente nicht durch das Ausbleiben der Antwort einer anderen Komponente blockiert wird. Wer kennt das nicht, dass der Web-Server steht, weil die Datenbank nicht antwortet?
Genau dieses Problem adressiert Hystrix, eine OpenSource-Bibliothek von Netflix. Lernen Sie in dieser Session, was Netflix leistet und anhand von konkreten Code-Beispielen, wie Sie Ihre Anwendung auf einfache Weise damit robuster machen können - nie wieder unkontrolliert hängende Anwendungen!
Die meisten Systeme laufen im Dunkeln. Fehler finden sich unter Umständen in Logfiles wieder, wenn das Loglevel richtig gesetzt wurde und die richtigen Daten geloggt werden.
Und zur Analyse von Gigabytes an Logdaten kommen immer noch grep, split und sort zum Einsatz - wie vor vielen vielen Jahren.
Doch es geht heute auch anders. Anstatt nur immer Postmortem-Analysen zu betreiben, sollten Anwendung präventiv überwacht werden. Nur so können Fehler und Zusammenhänge so früh wie möglich erkannt werden.
In diesem Vortrag wird gezeigt, wie mit Hilfe von selbstdefinierten fachlichen und technischen Metriken, ElasticSearch und weiteren Open-Source-Lösungen sich ein zentrales, skalierbares und leicht benutzbares Monitoring-System entwickeln läßt. Es wird unter anderem darauf eingegangen, wie die Datenhaltung konzeptionell aufzubauen ist, wie sinnvolle Metriken identifiert und Metrikdaten in Java-Anwendungen selbst bereit gestellt werden können. Auch wird dargestellt, wie Event-Sourcing als Design-Prinzip das Monitoring unterstützen kann.
VERT.X ist ein auf Netty 4 aufbauendes, event-getriebenes Framework mit simplemem Concurrency-Model.
Sein Polyglotter Ansatz, die gut durchdachte API und eine aktive Community bilden eine perfekte Grundlage für anspruchsvolle Anwendungen. Anhand des Use-Cases „Weltherrschaft durch Robotor“ werden die wichtigsten Eigenschaften des Frameworks demonstriert:
Java hatte lange Zeit den Ruf, besonders sicher zu sein und Programmierer umfassend bei der Entwicklung sicherer Anwendungen zu unterstützen.
Nach den zahlreichen Sicherheitsproblemen im letzten Jahr - von der Java-Plattform bis hin zu erfolgreich angegriffenen Java-Webapplikationen - stellen sich viele Entwickler, Architekten und IT-Verantwortliche allerdings immer häufiger die Frage, wie es in der Realität wirklich um die Sicherheit von Java-Webanwendungen bestellt ist.
Vor allem als Entwickler steht man daher vor der Aufgabe, kritische Punkte bei der Entwicklung einer sicheren Java-Webapplikation zu beachten und keine sicherheitsrelevanten Fehler zu begehen. Doch wo liegen Fallstricke, und wo wird man bereits zuverlässig von Java bzw. Java-Frameworks unterstützt? Welche Sicherheitsprobleme werden bereits automatisch gelöst, und wo bleiben Fragen bzw. mögliche Sicherheitsprobleme offen? Und welche Tools helfen bei der sicheren Entwicklung?
Die Session stellt verschiedene Mythen rund um die Java-Sicherheit und das sichere Entwickeln von Java-Webanwendungen vor. Der Java-Entwickler erfährt, was an diesen Mythen Wahres dran ist und wo er besser selbst tätig wird und sich um eine sichere Implementierung seiner Webanwendung kümmert. Code-Beispiele zeigen, wie es richtig geht und Sicherheitsprobleme in der Webapplikation vermieden werden. Nach der Session steht einer sicheren Entwicklung so nichts mehr im Wege.
JavaScript war bis dato kein wichtiges Thema für größere Unternehmen. Für einen online Banking- oder Versicherungsauftritt reichten bislang auf der Browser-Seite einfache Mitteln.
Die Kunden erwarten aber langsam deutlich mehr. Die Applikationen wie Google-Mail sind ein bestes Beispiel dafür. Und die neuen JavaScript Frameworks liefern die dafür notwendige Unterstützung. In diesem Talk diskutieren wir die Kernaspekte der Nutzung von JavaScript im Kontext einer Enterprise Applikation. Modularisierung, Kommunikation mit dem Backend, Sicherheit, Testing, Build usw. sind alles Themen die neu überdenkt werden müssen. Dazu kommen noch spezifische JavaScript-Herausforderungen wie Browser-Kompatibilität, geistiges Eigentum, Minification usw. in Spiel. Am Ende entsteht eine Art der Entscheidungsvorlage ob und ggf. wo JavaScript im Enterprise-Umfeld eingesetzt werden kann.
Das leidige Thema der Code Qualität wird in Projekten gerne hinten angestellt. Es ist aufwändig und erfordert viel Disziplin von allen Beteiligten.
Das Verständigen, Einhalten und Durchsetzen von Qualitätsstandards auf Codeebene gestaltet sich als schwierig. Neben Code Konventionen können Metriken verwendet werden, um die Qualität zu bestimmen. Leider ist die Verwendung von Metriken auch nicht ohne. Seit einiger Zeit schickt sich eine Methode an, diese Schwierigkeiten in Projekten mit einem inkrementellen Vorgehen zu verbessern: Continuous Inspection. An sich ein einfaches Verfahren, um die Code Qualität stetig zu überprüfen und zu verbessern.
In diesem Vortrag wird gezeigt, wie man mit Continuous Inspection ständig Feedback über die Qualität des Codes bekommt. Mit einem solchen Prozess kann die Codebasis eines neuen Projekts sauber gehalten werden und bei Legacy-Projekten eine weitere Verschlechterung vermieden werden. Dabei werden die dafür notwendigen konkreten Vorgehensweisen erläutert und anhand einer Demo live gezeigt. Es wird gezeigt, wie damit die Code Qualität aktiv gemanaged werden kann. Ebenso wird auf den Sinn und Unsinn von Metriken eingegangen und mögliche Wege für den Umgang mit Metriken in Projekten gezeigt.
In den letzen Jahren haben die Frontend Technologien und Entwicklung immer mehr an Gewicht gewonnen. Es geht nicht mehr um eine reine Darstellung der Daten, sondern viel mehr um eine Interaktion mit dem Benutzer.
Somit entstehen in der letzten Zeit immer mehr Web Applikationen, deren Laufzeitumgebung oft ein Browser ist. Die immer steigernde Komplexität solcher Anwendungen erfordert den Einsatz von Build- und QA-Tools. Viele diese Tools erfordern NodeJs.
In diesem Talk möchte ich ein Maven Plugin vorstellen, das es ermöglicht NodeJs Applikationen in den gesamten Maven-Build Prozess zu integrieren. Die bereits existierenden Plugins erfordern entweder eine manuelle Installation der NodeJs Umgebung, oder der gewünschten Applikation. Dieses Plugin soll es ermöglichen einen Maven Build Prozess auszuführen, ohne dabei manuelle Installationen vorzunehmen.
Go ist eine von den Unix-Legenden Rob Pike und Ken Thompson bei Google entwickelte Open-Source-Programmiersprache: einfach, effizient, produktiv, skalierbar - und sie macht Spaß.
Ganz nach dem Motto "Erlernt an einem Tag, produktiv in einer Woche" gibt der Vortrag einen Überblick über die Sprache und ihre einzigartige Philosophie. Insbesondere werden die Stärken und Schwächen gegenüber Java herausgestellt und die daraus resultierenden Einsatzmöglichkeiten aufgezeigt.
Muss es immer ein JEE Application Server oder Spring sein, wenn man eine Applikation mit RESTful Services erstellen möchte?
Zu Beginn eines großen Projektes haben wir bei Acrolinx verschiedene Frameworks und Technologien elaboriert. Nach einer zweiwöchigen Testphase hat nicht etwa Spring oder ein JEE Application Server gewonnen, sondern das recht unbekannte Dropwizard-Framework.
Dropwizard kombiniert ausgereifte Standardkomponenten wie Jetty, Jersey, Jackson und Java Validation und fügt noch einige smarte Metrics- und Operations-Frameworks hinzu. Dadurch kann in wenigen Minuten eine RESTful Komponente in "production-quality" erstellt werden. Ein Traum für die DevOps Bewegung: Deployed wird die Komponente als einzelnes jar-File. Healthchecks und Metriken sind standardmäßig aktiviert.
Dropwizard ist dabei so schlank, dass kaum Lernaufwand anfällt und man sich nicht zu stark an dieses Framework bindet.
Der Talk wird eine Einführung in Dropwizard geben und dann die Erfahrungen mit Dropwizard während der Entwicklung einer cloud-basierten, hoch-skalierbaren Anwendung schildern.
Mit Micro Services wird es möglich, die SOLID Prinzipen auf die Architektur anzuwenden. Anwendungen werden in einzelne, collaborierende Services zerlegt.
Die Konzepte sind leicht zu erfassen und vieles davon ist bereits bekannt.
In der Umsetzungspraxis jedoch entstehen viele Fragen die beantwortet werden wollen:
In diesem Vortrag werde ich vorstellen, welche Antworten wir auf diese Fragen gefunden haben. Am Ende wirst du in der Lage sein, innerhalb kürzester Zeit, eigene Micro Services Aufzusetzen, zu Testen und zu Deployen.
AngularJS ist eines der momentan spannendsten JavaScript MVC Frameworks, das sich von der Konkurrenz vor allem durch drei Merkmale abhebt:
Zum einen zwingt es dem Anwendungsentwickler eine sinnvolle, logische Strukturierung im Frontend auf, was zu modularen und testbaren Anwendungen führt. Darüber hinaus macht AngularJS die aus der Serverwelt nicht mehr weg zu denkende Dependency Injection auch im Frontend salonfähig. Und zu guter Letzt erlaubt es durch so genannte Direktiven HTML nahezu beliebig zu erweitern, was einen deklarativen Programmierstil ermöglicht. Eigene Direktiven sind der Schlüssel zu eleganten, wartbaren AngularJS Anwendungen. Doch viele Entwickler nutzen das Potential, das hinter eigenen Direktiven steht nicht voll aus. Dieser Talk vermittelt die Grundlagen, Möglichkeiten und Fallstricke, die eigene Direktiven mit sich bringen anhand zahlreicher Beispiele.
Auch wenn "Testen feige ist" wissen wir, dass möglichst automatisierte Tests zur Sicherstellung der Korrektheit von Anwendungen unverzichtbar sind.
Doch wie testet man im EE-Umfeld? JUnit? Embedded Container? Arquillian? Selenium? Dieser Talk zeigt, wie EE-Anwendungen effizient getestet werden können.
Mobile devices like smartphones and tablet computers became an integral part of our modern world and single-board computers like Raspberry Pi are cheaper today than at any time before.
Simple and open Machine-to-Machine (M2M) protocols like MQTT enable these devices to communicate in an efficient manner, even in scenarios with unreliable and instable networks. This talk shows how different Java MQTT libraries can be utilized for professional and personal projects to build efficient and scalable solutions for (mobile) devices. You will also see how modern technologies like websockets can be used in conjunction with MQTT to build real time-push services to bring data from sensor hardware to browsers in a scalable manner.
JavaScript erlebt einen besonderen Hype. Die Sprache meldet Ansprüche als Plattform für unternehmenskritische Applikationen an und erobert zunehmend das Server- und Backend-Umfeld.
Ein Plus ist die große Flexibilität und Freiheit: JavaScript verbindet funktionale, objekt-orientierte und imperative Programmierstile. Diese Freiheit trägt eine große Herausforderung für den praktischen Projekteinsatz. Der Vortrag zeigt, wie JavaScript im Projektalltag gebändigt werden kann. Durch produktive Tools messen wir die Qualität, zeigen Schwachstellen rechtzeitig auf und geben Tipps für die Behebung.
JavaScript-Applicationframeworks gibt es wie Staub auf dem Mond. Jedoch ist jedes nur auf dem Gebiet gut, für das es geschaffen wurde.
Meteor versteht sich als eine Plattform, die eine Auswahl der besten Frameworks mit MongoDB und Node.js kombiniert und Entwicklern so das Zusammensuchen abnehmen möchte. Die Hauptmerkmale liegen auf dem reaktiven Programmierparadigma, einer cleveren Latenz-Kompensation, einer einheitlichen Basis des JavaScript-Codes für Client und Server, das automatische Propagieren der Änderungen von Code und Daten, ein vergleichsweise einfaches API-Design und intelligentes Packaging und Deployment von Applikationen.
Das Thema Caching ist für zahlreiche Business Anwendungen relevant und der Markt für Caching-Lösungen reicht von einfachen lokalen Caches bis hin zu mächtigen und komplexen Data Grids.
Ein weiteres Differenzierungsmerkmal ist die Konsistenzgarantie beziehungsweise die transaktionale Integrität, welche die unterschiedlichen Lösungen bieten. Allerdings unterscheiden sich Anwendungen, welche Geschäftsprozesse in gewachsenen Unternehmenslandschaften umsetzen stark von sozialen Netzwerken oder Internetdiensten, welche aus dem Startup-Umfeld kommen.
Der Vortrag adressiert in erster Linie das erste Szenario: Caching in Unternehmensanwendungen, welche auf Basis einer bereits bestehenden Infrastruktur umgesetzt werden. Hierbei werden zuerst die Herausforderungen, die diese Anwendungen an das Thema Caching stellen, vorgestellt. Aspekte die hierbei betrachtet werden sind: Security, Monitoring, Audit-Compliance, Art der Daten sowie Geschäftsprozesse. Im zweiten Teil werden unterschiedliche Arten des Cachings vorgestellt und im Hinblick auf die eben erwähnten Herausforderungen bewertet. Abschließend geht der Vortrag darauf ein, welche Patterns und Best Practices sich in der Praxis bewährt haben und wie das Thema Caching möglichst transparent und deterministisch in Business-Anwendungen integriert werden kann.
Obwohl TDD flächendeckend als erstrebenswert angesehen wird, haben viele Entwicklungs-Teams Probleme damit ihr Browser-JS in der gleichen Art und Weise zu testen wie sie das mit ihrem server-seitigen Code tun.
Erst jetzt erkennen viele Businesses wie zentral JavaScript für ihre Software ist und fangen an ihm die verdiente Aufmerksamkeit zu geben. Leider findet das Testen hauptsächlich durch Webtests/Selenium statt, was eine Reihe von Nachteilen hat: zu viele Komponenten unter Test, langsame Geschwindigkeit, schlechte Informationen darüber was den Test fehlschlagen lassen hat.
Ich bin der Meinung JavaScript braucht eine Unit Test Revolution und im Speziellen möchte ich zeigen, wie man auch ehemalige Problemfälle wie DOM-Interaktion und Ajax Requests einfach testen kann. Ich stelle dabei die Tools Jasmine und Sinon vor, die sich als Standard in der Community herauskristallisiert haben.
Ich gehe auch darauf ein wie man sie zusammen mit AngularJS und Backbone benutzt.
Im Mittelpunkt von Spring stand immer Einfachheit. Spring Boot geht den Weg weiter. Es erleichtert den Zugang zum Spring-Ökosystem, vereinfacht den Build-Prozess - und integriert außerdem Groovy und eingebettete Server in dieses Angebot.
So bleibt Spring-Ökosystem auch in Zukunft interessant!
Eine Application auf einem Server benötigt einen Application Server - dieser Vortrag zeigt, warum das nicht so ist und Java Application Server mittlerweile eher aus technischer Sicht ein Nachteil als ein Vorteil sind.
Ebenso werden Alternativen und Auswirkungen auf moderne Java-Architekturen aufgezeigt - also beispielsweise Micro Services oder Embedded Container.
Einige der zentral genutzten Frameworks in der Credit Suisse wurden in den letzten Jahren komplett redesigned und erweitert. Unnötige Schnittstellen wurden entfernt bzw angepasst und die Kopplung nach innen und aussen stark verringert.
Dabei war das Management der Schnittstellen, der Verhaltensaspekte und der Stabilität zentral.
Neben diesen, eher konzeptionellen Aspekten geht die Präsentation auch konkret auf einige Beispiele ein und zeigt, in welchen Schritten, die Modernisierung angedacht, geplant und durchgeführt wurde und welches die Schlüsselaspekte sind, um ein solches Vorhaben zum Erfolg zu führen. Zuguterletzt wird gezeigt, wie die erreichten Qualitätsfortschritte quantitativ und qualitativ gemessen werden können und was am Ende (beachtliches) erreicht worden ist.
Mobile devices are increasingly important as a platform. The number of different devices on the market increases every day. This posses a challenge, how do we support all of them.
Every new device comes with it's own paradigms and programming language. Wouldn't it be great if we could create one application that could support all platforms. With Cordova and AeroGear you can.
Cordova is a platform that allows you to access native device functions from JavaScript enabling you to create mobile applications with just CSS, HTML and JavaScript, for all platforms. You can use your existing skill sets to create native applications.
AeroGear, has created native libraries that to develop mobile apps rapidly, but we also support Cordova. So now you can create enterprise grade mobile applications with AeroGear together with Cordova. With support for encrypted databases and one time password Push notifications and much more.
In this talk we'll show how you can create an application with Cordova and even how to create your own plugins. What features the AeroGear API's have and how you can use these to build mobile applications rapidly. How to create test and run these on simulators and integrate them into your own build environment.
Das Schemadesign ist bei NoSQL Datenbanken ebenso eine wesentlicher Faktor für die Performance und Wartbarkeit wie bei den herkömmlichen Relationalen Datenbanken.
Bei den NoSQL Datenbanken geht man bei der Datenmodellierung von der Fragestellung aus „What Question do I have?“ während im Gegensatz bei Relationalen Datenbanken man die Datenmodellierung unter dem Aspekt „What Answer do I have?“ betrachtet. Im Rahmen dieses Talks werden mögliche Ansätze zur Datenmodellierung skizziert.
Cloud Computing ermöglicht es Entwicklern in einer standardisierten, flexiblen Umgebung schnell neue Applikationen zu realisieren. Dabei bieten die meisten Plattformen eine Vielzahl von Technologien zur Auswahl an.
Besonders Themen wie Staging, Continuous Integration, Automated Deployment, kurz Continuous Delivery (CD), können durch felderprobte Standards optimal umgesetzt werden.
Bei deutschen Firmen können jedoch Anbieter mit Sitz in den USA, wie z.B. Heroku, für personenbezogene Datenverarbeitung aus Sicht von Datenschutzbeauftragten nicht zum Einsatz kommen. Wenn man jedoch auf die Cloud-Vorteile nicht verzichten möchte, sind in diesem Kontext private Clouds eine mögliche Option. Dieser Vortrag beschreibt, wie eine solche Lösung auf Basis der Plattform Cloud Foundry aussehen kann.
Mit dem Play Framework existiert ein Web Framework für die JVM, das den Geist von Ruby on Rails mitbringt. Play ist von Web-Entwicklern für Web-Entwickler entworfen worden.
Es bricht mit herkömmlichen Java Standards und Gepflogenheit – zu Gunsten einer einfachen Entwicklung und schnellen Entwicklungszyklen. Eine sehr gute Developer Experience ist das Ergebnis. Das Play Framework wurde in der aktuellen Version 2.x komplett in Scala neu entwickelt, bietet allerdings auch eine separate Java API an. Es bietet neben einer sehr guten Skalierbarkeit weitere interessante Features, wie z.B. statisch-typisierte Templates oder eine vollwertige Unterstützung für die asynchrone Programmierung.
In diesem Vortrag wird das Web Framework Play vorgestellt, wobei keine Scala-Kenntnisse vorausgesetzt werden. Es wird gezeigt, warum sich das Play Framework für den Einsatz im Web und gewachsenen Enterprise IT-Landschaften besonders gut eignet. Zudem wird darauf eingegangen, welche Probleme bei der Einführung von Play auftreten können und wie diese am besten gelöst werden.
Elasticsearch is often perceived as a pure full-text search engine, however another huge use-case is log management and centralizing - especially in combination with logstash.
The last missing piece is kibana, which takes over the visualizing part. After a brief introduction into each of the three products, we will leave the theoretical part behind and try to build a dashboard, which gets its data fed from a real time HTTP stream. So if you know a nice public stream, we can try to incorporate it live on stage and try to build our own dashboard on top of the freshly indexed data, using kibana.
Graylog2 ist ein Open Source Log Management und Daten Analyse System. Daten werden von einem Java Server angenommen, verarbeitet und in ElasticSearch geschrieben.
Ein Web Interface ermöglich es, die gesammelten Daten zu analysieren und zu durchsuchen. Mittels Streams lassen sich Daten in Realtime kategorisieren und beliebige Aktionen bei bestimmten Events ausführen.
In diesem Vortrag zeige ich:
Der gemeinsame Zugriff auf veränderlichen Zustand aus unterschiedlichen Threads ist eine häufige Fehlerquelle in Java-Anwendungen. Eine Alternative bietet das Toolkit Akka:
Veränderlicher Zustand wird in Aktoren gekapselt, die untereinander über unveränderliche Nachrichten kommunizieren.
Der Vortrag zeigt an einem Beispiel, dass der Einsatz von Akka zu wartbaren, fehlertoleranten und skalierbaren Anwendungen führen kann.
Viele klassische Webapplication Frameworks mühen sich seit Jahren daran ab auf einer jeweils proprietären Basis die REST Prinzipien umzusetzen. Apache Sling verfolgt hierbei einen fundamental anderen Ansatz und ist ein Webframework das rund um die REST Prinzipien konstruiert wurde.
Unter dem Motto "Bring back the fun to webdevelopment" ist so in den letzten Jahren ein mächtiges Webframework entstanden.
In dieser Session geben wir einen Überblick über die Grundprinzipien und Architekturansätze dieses Webframeworks und demonstrieren anhand von Beispielszenarien wie einfach es sein kann RESTful zu entwickeln.
Als Entwickler fokussieren wir unsere Arbeit meist auf die fachlichen Funktionen unserer Anwendungen. Dabei mappen wir Modelle auf grafische Elemente und erstellen damit Eingabemasken.
Leider wirken diese Eingabemasken häufig trist und kühl. Mit ein wenig „Animations-Zauber“, lässt sich hier Abhilfe schaffen und der Eindruck bei den Anwendern verbessern. Dieser Talk zeigt mögliche Herangehensweisen und Animations-Muster. Mit diesen einfachen Mitteln wird die Wahrnehmung und die Akzeptanz einer Anwendung deutlich erhöht. Von den vielen Web-Beispielen kann sich jeder do's and don'ts abschauen.
REST-basierte APIs werden immer populärer, und damit steigt auch die Anzahl von Bibliotheken und deren Mächtigkeit. In diesem Vortrag wollen wir die Theorie auf das absolute Minimum begrenzen und ganz praktisch zeigen, wie man REST-APIs mit Java und anderen JVM-Sprachen realisiert.
Die Verwendung von verschiedenen Sprachen, Bibliotheken und Frameworks gibt uns die Chance, die unterschiedlichen Lösungsansätze für Aufgaben und Problemstellungen wie URL/Pfad-Mapping, (Un)Marshalling, Content Negotiation, Caching und Headermanipulation sowie deren Vor- und Nachteile gegenüberzustellen - und bei der Gelegenheit auch gleich die Stärken und Schwächen der jeweiligen Umgebung zu betrachten.
Eine wichtige Eigenschaft der Softwarearchitektur, die großen Einfluss auf die Wartbarkeit eines Systems hat, ist Modularität. Wenn Applikationen größer werden oder über einen langen Zeitraum entwickelt werden, dann wird diese Eigenschaft zunehmend wichtiger, aber auch schwieriger zu realisieren.
Bereits vor vier Jahrzehnten wurden eine möglichst hohe Modulkohäsion und eine möglichst schwache Modulkopplung als grundlegende Strukturierungsziele erkannt. Trotzdem werden häufig Abhängigkeitsmanagement und Best-Practices zur Quellcodeorganisation vernachlässigt. In diesem Vortrag werden verschiedene Ansätze zur logischen und physischen Strukturierung von Java-Applikationen vorgestellt. Der Einsatz von Frameworks und Komponentenmodellen wird ebenfalls beleuchtet. Auch das Planen und Überprüfen von Abhängigkeiten zwischen den Modulen einer Applikation – denn Designentscheidungen müssen auch im Code wiederzufinden sein – wird anhand von praktischen Beispielen mit verschiedenen Werkzeugen demonstriert.
Die meisten Softwareteams releasen ihre Software-Produkte deutlich schneller und öfter in Produktion als noch vor 10 Jahren. Die Vorteile liegen auf der Hand: Man bekommt schneller Feedback vom Kunden und man verdient mit einem neuen Feature das Geld schneller und früher.
Dies hat natürlich dramatische Auswirkungen auf das Testen. Wir können nicht schneller eine neue Version releasen, wenn wir sie nicht auch schneller testen können. Nehmen wir an wir haben eine Testphase von 2 Wochen, wollen aber alle 2-3 Tage live gehen. Damit ist unser Zeitfenster zum Testen deutlich kürzer – einfach viel zu kurz.
Wann können dann unsere Testaktivitäten stattfinden? Wie können wir schneller testen? Wie können wir unsere Test-Strategie anpassen?
Aus seiner Erfahrung bei HERE und mobile.de gibt Alex Ideen wie man dieses Puzzle erfolgreich lösen kann.
Agile Methoden wie Scrum definieren Meilensteine an denen regelmäßig Auslieferungen statt finden. Buildsysteme wie Maven verwenden das Konzept von Snapshots um diese "flüchtigen" Builds während der Entwicklung auch als solche zu Kennzeichnen.
Auf der anderen Seite ist eines der Eckpfeiler von Continuous Delivery, dass jeder Build “Release Candidates” produziert, die potentiell produktiv gesetzt werden. In dieser Session betrachten wir, warum „Classic Agile“ im Widerspruch zu Continuous Delivery steht und warum (Maven) Snapshot-Builds in einer Continuous Delivery-Umgebung nichts zu suchen haben. Natürlich schauen wir uns dabei auch die möglichen Lösungen an.
What is the role of architecture in a modern software project? Have we forgotten the value of proper planning in our effort to be flexible and agile while stripping away all excess fat?
Or are we really better of without the architects in their ivory towers and fine without the big architecture bibles gathering dust on the developers' tables? This talk will introduce you to lean architecture, a place where architects and agilists can share the same camp fire and still leave with their neckbeards intact. We will see the value and the role of both the architect and the architectural documentation in an agile project.
Bei Docker handelt es sich um ein System, mit dessen Hilfe sehr leichtgewichtige, selbständige Container für Applikationen aufbauen lassen.
Diese Container können von einfachen „echo 'Hallo Welt'“-Applikationen bis hin zu komplexen Application Server-Installationen alles enthalten. Einmal gebaut, werden diese Container von der Entwicklung bis hin zur Produktion promoted. Wie dies konkret funktioniert und welche Vorteile wir daraus in Entwicklungsprojekten ziehen können werden wir im Detail betrachten.
Writing rich web applications meant duplicating a lot of logic, mostly presentational, in both the server and the client.
The first render is usually done in the server, the code delivered to the client and then our single page application kicks in and manipulates the DOM. This requires writing 2 different applications that present the same information to the user, one in the server and one in the client.
With NodeJS now it's possible to write applications that behave this way, but the code base is the same in both ends of the wire.
Seit 2010 entwickeln wir ein Produkt unter Einsatz von Continuous Delivery und einigen anderen "neuen" Methoden. Viele Impulse zu neuen Vorgehensweisen kamen überraschenderweise aus dem Produktmanagement.
Vonseiten der Techniker gab es anfangs durchaus auch Skepsis. Kommend aus einer klassischen Scrum-Welt, wurde unserer tägliches Denken und Arbeiten dabei stark verändert. Warum wollen wir heute auf keinen Fall mehr zurück?
Buck is a build system that encourages the creation of small, reusable modules consisting of code and resources. It was invented by Facebook engineers to speed up their Android app developlement process.
Recently Facebook made Buck Open Source. This talk introduces Buck and compares it with traditional build system like Maven. It describes how Gerrit, one of the popular Java projects greatly reduced its average build time from ~7 minutes (with Maven) to ~2 minutes (with Buck) or even 0.5 seconds (using Buck daemon).
Das automatisierte Testen von GUI-Oberflächen mit Selenium ist sehr pflegeaufwändig. Insbesondere wenn sich die Oberflächen ändern, müssen alle Tests angepasst werden.
Page Objects helfen, die Kommunikation des Tests mit der Webseite zu kapseln, was nichts daran ändert, dass sie ständig gewartet werden müssen, was bei Entwickler unbeliebt ist. Webseiten werden heutzutage aus Beschreibungsdateien generiert (XHTML, JSF, JSP usw.). Diese Quelle kann auch genutzt werden, auch die Page Objects zu generieren und so die Wartung der einzelnen Tests drastisch zu reduzieren.
So kann sich die Entwicklerin beim Test-Schreiben auf das Wesentliche konzentrieren, den zu testenden Workflow. Änderungen in den Webseiten werden durch die Generierung schon beim Kompilieren bemerkt, können schneller in die Tests integriert werden, was die Turn-Around-Zeiten bei GUI-Tests drastisch verkürzt.
Damit ein Unittest ein echter "Unit"-Test ist, darf er keine Abhängigkeiten zu anderen Klassen haben. Beim Schreiben von Unittests werden deshalb üblicherweise alle Abhängigkeiten des getesteten Objekts durch Mock-Objekte ersetzt.
Eine notwendige aber langweilige Arbeit, die für jede getestete Klasse wiederholt werden muss. Alles nur Boilerplate-Code!
Deshalb haben wir uns "MockInjector" geschaffen. Mit MockInjector kann dieser Boilerplate-Code durch eine einzige Zeile ersetzt werden. Das Test Setup wird kleiner, einfacher zu lesen und weniger anfällig für Fehler bei Refactorings. Mit den richtigen Templates braucht man Code zur Erstellung von Mocks gar nicht mehr manuell zu schreiben und kann sich voll auf die zu testende Businesslogik konzentrieren.
Die Abbildung zwischen den Elementen verschiedener Datenmodelle ist eine häufig wiederkehrende Aufgabe bei der Entwicklung von Geschäftsanwendungen, etwa wenn es gilt, das interne Domänenmodell einer Applikation auf ein DTO-Modell zu mappen.
Die manuelle Erstellung entsprechender Konverterklassen ist dabei oft zeitraubend und fehleranfällig.
MapStruct verspricht Abhilfe, indem es basierend auf Java-Interfaces Mapper-Klassen zur Build-Zeit generiert und validiert. Der so erzeugte Code ist typsicher, effizient und abhängigkeitsfrei.
Nach einer kurzen Einführung und dem Vergleich mit anderen Mapping-Lösungen wird der Vortrag typische Mapping-Probleme und deren Lösung mittels MapStruct live in der IDE demonstrieren.
Spring ist bekannt dafür, umgehend Unterstützung für neue Java-Generationen anzubieten, und nun ist es Zeit für Java 8.
Mit Spring Framework 4.0 bieten wir tiefgehende Unterstützung für alle relevanten Features von OpenJDK 8, insbesondere für Lambda-Ausdrücke, JSR-310 Date and Time und verschiedene neue JDK-Compiler-Features. Dieser Vortrag stellt Spring 4 allgemein sowie eine Reihe von Java-8-Features im Rahmen des Spring-Programmiermodells vor und erörtert die Auswirkungen auf Anwendungsarchitekturen.
Erst wenn die Systemtests bestanden wurden (aus Enduser-Sicht), sollte man eine Applikation veröffentlichen: ein typisches Einsatzgebiet virtueller Maschinen.
Jedoch sind etablierte Virtualisierungslösungen (Virtualbox, VMWare) zum "schnellen Ausprobieren" oder "funktioniert das auch auf 50 Instanzen parallel?" zu langsam und resourcenhungrig.
Docker (www.docker.io) erlaubt es, virtuelle Maschinen, sog. Container, in wenigen Sekunden lokal zu starten und dabei trotzdem resourcensparend zu sein. Das Projekt docker-clusterenv (https://github.com/arnehilmann/docker-clusterenv) vereinfacht das Konfigurieren solcher Container, wobei bestehende Projektstrukturen berücksichtigt werden (IDE-freundlich) und Code-Änderungen sofort in allen laufenden Containern zur Verfügung stehen (kein Neustart notwendig).
Tests auf Systemebene werden daher mit docker-clusterenv stark vereinfacht, da a) viele Container parallel b) innerhalb von Sekunden lokal gestartet werden können.
Wer den Begriff Suche hört denkt oft als erstes an ein Sucheingabefeld mit einer Ergebnisliste. In vielen Applikationen werden allerdings neben diesem klassischen Ansatz auch weitere dynamische Bereiche über Suchengines abgefragt.
Die flexiblen, auf Text optimierten Abfragemöglichkeiten moderner Suchmaschinen können Vorteile gegenüber traditionellen Datenbanken bieten.
Gruppierung und Filterung von Ergebnissen sind mit Datenbanken in vielen Fällen aufwändiger in der Umsetzung und oft auch infperformanter als mit Suchengines. Mittlerweile haben heutige Suchmaschinen auch den Anspruch ihre Ergebnisse in "Near Realtime" zu liefern. Damit sind Daten nach ihrer Speicherung direkt über die Suchengine verfügbar.
In diesem Vortrag werden wir die Datenhaltung indexbasierter Suchmaschinen erläutern und wo diese ihre Stärke ausspielen. Es werden Vorteile gegenüber traditionellen Datenbanken aber auch Fallstricke aufgezeigt. Anwendungsfälle für ihren Einsatz werden am Beispiel von Elasticsearch und Solr gezeigt.
Continuous integration hat sich in den letzten Jahren zu einem Standard-Werkzeug in der Software-Entwicklung entwickelt. Je größer das Projekt ist, umso sinnvoller ist es regelmäßig den Zustand des Codes zu überprüfen und frühzeitig auf Fehler und Probleme hinzuweisen.
Wichtig ist dabei eine schnelle und zielgenaue Benachrichtigung der entsprechenden Entwickler, um Fehler kurzfristig behehen zu können. Leider wird hierbei allzu oft auf Emails oder andere Kanäle gesetzt, auf denen bereits zu viele Nachrichten hereinkommen und die Benachrichtigungen somit untergehen. Allzu oft mündet dies in folgende Situation: Das Projekt steht und keiner kann arbeiten, denn der Build ist kaputt und keiner hats gemerkt.
Damit es nicht soweit kommt, haben viele Entwicklungsteams sich Lösungen ausgedacht wie sie schnell und effizient mitbekommen wenn etwas schief geht. Eine sehr gute Möglichkeit stellen dabei Extreme Feedback Devices dar. Hierbei wird der aktuelle Zustand des Build über Lampen, Monitor oder sogar USB-Raketenwerfer ausgegeben.
Der Vortrag soll ein paar Beispiel-Lösungen vorstellen und auf die technischen und sozialen Aspekte von Extreme Feedback Devices eingehen. Anschließend basteln wir ein Device das auch noch ins (nicht vorhandene) Projekt-Budget passt.
Automatisiertes Testen ist inzwischen fester Bestandteil jedes modernen Entwicklungsprozesses. Entwickler schreiben Tests mit dem Ziel die Funktionalität einer Anwendung sicher zu stellen.
Diese Tests werden meist in einer Programmiersprache (z. B. Java) erstellt. Daraus ergibt sich zwangsläufig eine Lücke zwischen den eigentlichen Anforderungen (wie sie ein Kunde formulieren würde) und dem Testcode, der die Anforderungen prüft (wie ihn der Entwickler schreibt).
Acceptance Test-Driven Development (ATDD) schließt diese Lücke, indem Anforderungen weitestgehend in natürlicher Sprache formuliert werden, aber gleichzeitig ihre Ausführbarkeit sicher gestellt wird. Ziel von ATDD ist es verständliche, wartbare und gleichzeitig ausführbare Testspezifikationen zu schreiben. Das klingt esoterisch, ist tatsächlich aber ein pragmatischer und praktischer Ansatz.
Der Vortrag führt in die grundlegenden Prinzipien von ATDD ein und stellt relevante Werkzeuge vor, die diesen Ansatz unterstützen. Darauf aufbauend zeigt der zweite Teil des Vortrags, dass natürlichsprachliche Spezifikationen nicht nur für automatisiert ausführbare Tests eingesetzt werden können. Anhand von Beispiele aus der Praxis sowie Live Demos mit bekannten Java Technologien wird das Potential und die Eleganz des Vorgehens für zahlreiche Bereiche der Softwareentwicklung (z.B.: Datenmodellierung, Spezifikation von Geschäftsregeln oder Oberflächen) aufgezeigt. Effizienzsteigerungen sind aufgrund der automatisiere Interpretation und Verarbeitung der erstellten Spezifikationen und Modelle somit innerhalb des gesamten Software-Entwicklungsprozesses garantiert.
In this lightning talk I will, from a designers point of view, claim that more involvement from developers and architects in the design process, results in better UX design. I will also suggest concrete methods for creating multidisciplinary UX process.
I will focus on how all participants in an agile project should and can get involved and improve the design process. If we just push the GUI design through the misty and magical design-cloud (i.e. letting the designers do the work in isolation) it will eventually come back and bite you in the back.
Based on my own experiences from an agile project I will explain how developers, architects and product owners should demand a more open GUI-process from the interaction- and graphic designers.
But it requires more than just the classical “involve early” and “regularly control meetings”. An open and transparent design process must be established, where all the different roles feels both responsibility and ownership for the UX design.
Doing this will result in faster and more precise GUI specifications. It will result in less frustration among designers (for not knowing what the user needs actually are), less frustration among developers (for not knowing what to make, and having constant changes in the GUI), and less headaches and concerns among all because of slow speed and time pressure.
MoSKito ist eine Open-Source Platform zum Messen, Analysieren und Optimieren der Geschwindigkeit und des Verhaltens einer Applikation. MoSKito zeigt jederzeit den Status der eigenen Applikation.
In dem Vortrag wird MoSKito Control live demonstriert. MoSKito Control bietet eine vereinigende Sicht auf verschiedene Komponenten großer Plattformen und schlägt eine Brücke vom Server- zum Applikationsmonitoring.
Spring MVC bietet eine solide Grundlage um REST basierte WebServices mit Java zu implementieren. Dennoch bleibt das umsetzen von Hypermedia und komplexerer Geschäftslogik eine Herausforderung.
Der Vortrag diskutiert Grundsätze von Hypermedia und zeigt die daraus entstehenden Problemstellungen an einem praktischen Beispiel. Darauf antwortend erörtern wir Ansätze und Lösungen für diese Problematiken die in Kundenprojekten erarbeitet wurden anhand von hands-on Codebeispielen. Mittelpunkt hierbei ist Spring RESTBucks, eine Referenzimplementierung für einen REST WebService auf Basis verschiedener Technologien aus dem Spring Ökosystem.
Dieser Vortrag lädt interessiert Java Entwickler ein sich Scala durch Pattern zu nähern.
Die Seele einer Sprache erschließt sich nicht durch das Pauken von Grammatik und Vokabeln allein. Das gilt für natürliche Sprachen ebenso wie für Programmiersprachen. Zum Erlernen einer natürlichen Sprachen gehört die Auseinandersetzung mit der jeweiligen Kultur. Wesentlich ist wie die Sprache im Alltag verwendet wird. Eine Möglichkeit sich Programmiersprachen zu erschließen besteht darin, häufig verwendete Pattern zu betrachten. Obwohl Design Pattern scheinbar abstrakt und losgelöst von der jeweiligen Sprache betrachtet werden können zeigt sich, dass einige Pattern durch bestimmte Sprachmerkmale erst ermöglicht werden, andere sind eher als Workaround für fehlende Features zu sehen.
Für eine Reihe von typischen Problemen stellen wir der "klassischen" Java Lösung eine Pattern in Scala entgegen. Wo immer möglich betrachten wir die Pattern nicht nur in der Theorie sonder spüren sie in Open Source Bilbiotheken / Frameworks der Scala Community auf.
Facebook Presto ist eine verteilte SQL Query Engine. Sie ermöglicht es, in großen Datenmengen und unterschiedlichen Quellen Abfragen zu machen.
Und das mit Antwortzeiten von denen Data Scientists und Analysten träumen und Entwickler schwärmen. Grund genug eine kleine Demo-Anwendung zu betrachten und dabei Einsatzgebiete von Presto aufzuzeigen.
Irreversibility is the enemy of the software engineer; it adds useless complexity and produces frictions that slow down the development process.
At the same time it is an inevitable artifact of development, so it has to be somehow tamed into submission. The successful process uses, without knowing it, techniques that make it mostly-reversible. It is due time that we take the effects of reversibility into account, and design our processes and tools with the explicit goal of making it easy to revert time. Software architecture, continuous deployment and decision-making will be used as case-studies.
Die NoSQL Datenbank MongoDB bietet eine gute Grundlage für flexible und skalierbare Applikationen.
Besonders die Skalierung des Backends beim Wachstum der eigenen Applikation kann mit MongoDB sehr einfach sein, wenn man das richtige Verteilungskriterium definiert. Im Rahmen dieses Vortrages wird die grundlegende Funktionsweise der Verteilung skizziert und den Zuhörern mögliche Lösungsansätze für die Skalierung ihrer Datenmengen gezeigt.
Visualising data has never been more important, more exciting or more approachable than it is right now. It's a subject that every creative person should explore because it combines 3 very interesting and challenging fields: Design, maths, code.
In this talk I'll share my experiences using D3 and Rickshaw to make highly interactive time-series graphs for Server Density. I'll also talk about how to approach data visualisation, the mistakes I've made, the things I've learnt, the code I've written and why I think in our world of Big Data, data visualisation will become more and more important.
I believe data visualisation combines varied interest and as such it can touch an entire audience. My aim with this talk is to inspire and enthuse so that everyone wether they be a designer, developer or business person leaves with a burning desire to it a go.
Wer eine HTML5-Anwendung für's Smartphone realisiert, wünscht sich über kurz oder lang Zugriff auf die eine oder andere native API. PhoneGap - der englische Begriff lässt sich auch als "mobiler Lückenbüßer" übersetzen - verspricht an dieser Stelle Abhilfe.
Dieser Vortrag beginnt mit einem Überblick über das Konzept von PhoneGap und beleuchtet das "Wieso, Warum". Danach folgen praktische Beispiele aus dem Alltag eines Entwicklers, der jeden Tag mit dem Framework arbeitet. In der dritten Version von PhoneGap hat Adobe einige Änderungen vorgenommen, die das Leben eines damit arbeitenden Entwicklers wesentlich beeinflussen. Auch diese werden im Rahmen des Vortrags beleuchtet. Zudem werden nach dem Vortrag einige Kopien meines bei Franzis erschienenen Lehrbuchs verlost.
Wer sich ein Firefox OS-Smartphone kauft, ist auf den ersten Blick oft aufgrund der vergleichsweise schwachen Hardware und des fehlenden SDKs verwundert.
Trotzdem ist Firefox OS ein schnellwachsendes Betriebssystem, das insbesondere in Entwicklungs- und Schwellenländern rapide an Bedeutung zunimmt.
Dieser Vortrag befasst sich mit der Entwicklung von Applikationen füe Firefox OS. Wer sich mit HTML5 ein wenig auskennt, ist für das Betriebssystem im Großen und Ganzen gut gerüstet - im Rahmen dieses Talks bekommen Sie wertvolle Hinweise aus der Praxis eines mit dem System arbeitenden Programmierers.
Als kleinen Bonus gibt es auch Informationen über die geographische Verteilung der Nutzerschaft.
ROCA (Resource-oriented Client Architecture) ist der Name für einen Ansatz zur Entwicklung von Webanwendungen, der sich vor allem durch den richtigen Einsatz von JavaScript sowie die Einhaltung von REST-Prinzipien auszeichnet.
Dieser Ansatz fördert Anwendungen, die sowohl robust und wartbar sind als auch modernen Ansprüchen hinsichtlich der Benutzerfreundlichkeit Rechnung trägt. Dabei ist ROCA im Kern nichts Neues, sondern eine Rückbesinnung auf die klassische Architektur des Webs.
In Java-Enterprise-Projekten wird dagegen oft auf der Basis von statusbehafteten Komponenten-Server-Frameworks entwickelt. In diesem Umfeld muss man als Architekt oder Entwickler deshalb oft Überzeugungsarbeit leisten. Der Vortrag stellt die Kernelemente von ROCA vor und diskutiert, welche Optionen es zur Umsetzungen im Java-EE-Kontext gibt, mit welchen Schwierigkeiten man zu kämpfen hat und warum es trotzdem eine gute Idee ist.
Das CQRS-Pattern (Command-Query Responsibility Segregation) eröffnet einen neuen Blick auf die Architektur zeitgemäßer Informationssysteme und stellt zahlreiche Annahmen in Frage, die wir als Softwarearchitekten allzu oft als gegeben hinnehmen und die seit Jahrzehnten viele unserer Architekturentscheidungen bestimmen.
In diesem Vortrag stelle ich die Idee hinter CQRS vor, zeige, wie das Pattern Schritt für Schritt auf "klassische" Unternehmensanwendungen angewendet werden kann und erkläre, wann es sinnvoll ist und wann nicht.
The project consists of a PHP lexer/parser using Scala combinators, an interpreter based on a syntax tree that can be converted to Scala, a runtime library encapsulating all the quirks of PHP type and class system and various sub-projects corresponding to the PHP-extensions.
The talk should emphasize on the following topics:
The current state of the project can be found here: https://github.com/leanovate/jbj
Zeitgemäße Softwarearchitektur ist nicht das Werk einzelner. Architekturansätze und Ideen entstehen im Team und werden gemeinsam reflektiert. Alle Entwickler müssen sie zumindest verstehen und mittragen können. Aber was genau müsst Ihr vermitteln? Reicht aufschreiben? Hilft UML?
Diese Stunde zeigt auf lebendige Weise, wie Ihr Eure Softwarearchitektur wirkungsvoll kommunizieren könnt. Nach kurzen theoretischen Inputs rund um Architekturdokumentation und -bewertung probiert Ihr das Gehörte gleich aus. Ihr lernt die Lösungen anderer Teilnehmer kennen und erfahrt Schritt für Schritt, welche Zutaten in einem Architekturüberblick keinesfalls fehlen sollten – egal wie kurz er ist. Ihr lernt die richtigen Fragen zu stellen und passende Antworten parat zu haben.
Bringt bitte die Bereitschaft mit, Euch über Eure Projekte und Softwarelösungen auszutauschen, und anderen Teilnehmern Feedback zu geben. Die sonst üblichen Speed-Dating-Themen wie Kinderwünsche klammern wir aus.

Adam Boczek ist Enterprise Architekt und parallel AngularJS Trainer. Er hat langjährige Erfahrung als Coach und Project Manager. Er ist Speaker auf nationalen und internationalen Konferenzen, Trainer, Berater und Moderator der Xing-Gruppe "Agile Architecture", und all dies aus wahrer Leidenschaft.

Alex Fernández is a Spanish software engineer with 15+ years of experience. Having roamed the corporate sphere for a decade, working as a Java drone for companies like Telefonica, Banco Santander or ING Direct, Alex left off to build a company that did not make him a billionaire as expected (but was lots of fun). Then he wandered into the crazy world of JavaScript and node.js development. Nowadays he delivers thousands of requests per second and builds his own DevOps platform at MediaSmart Mobile (a mobile marketing startup), while consulting for large companies and running workshops whenever the occasion arises.

Alex Schwartz verdient seit 20+ Jahren seine Brötchen in der IT-Industrie in verschieden Rollen von Entwickler, Consultant, Projektleiter, Build- und Release-Manager und Agile Coach und mehr. Bei HERE (a Nokia business) leitet er Software-Delivery-Team, welches mit Hilfe von Kanban und DevOps Software schnell und zuverlässig ausliefert. Studiert hat er Mathematik und Informatik an der TU Berlin und in Mathematik promoviert.

Alexander Reelsen is software engineer at Elasticsearch with focus on simplicity and concurrency in the java world. Apart from his interest in information retrieval, he likes operations, monitoring and all kinds of quick prototyping web frameworks.

Alvaro M. is an Uruguayan Software Engineer specialized in web development. He has vast experience with Python and JavaScript. Active member of the Free Software movement, he enjoys coding on side projects on his free time.

Nach dem Wirtschaftsinformatik-Studium an der Universität Zürich, war Anatole Tresch mehrere Jahre lang als Managing Partner und Berater tätig. Er sammelte weitreichende Erfahrungen in allen Bereichen des Java Ökosystems vom Kleinunternehmen bis zu komplexen Enterprise Systemen und dem effizienten Betrieb von Rechenzentren. Er entwickelte diverse Frameworks und wiederverwendbare Komponenten. Aktuell arbeitet Anatole Tresch als Technischer Koordinator bei der Credit Suisse und ist Specification Lead des JSR 354 (Java Money and Currency).

Andreas Hartmann ist Principal Software Architect bei der adesso AG, Vortragender auf diversen Konferenzen und Autor verschiedener Fachartikel. Sein Tätigkeitsschwerpunkt liegt in der Konzeption und Implementierung von Softwarearchitekturen und Frameworks auf Basis der JEE-Plattform. Seine aktuellen Interessensschwerpunkte sind effiziente Entwicklungsprozesse, leichtgewichtige Architekturen und Portaltechnologien sowie NoSQL.

Andreas Kutschera

Arne Hilmann arbeitet bei Immobilienscout24 in der Systementwicklung und hat sich in den letzten Jahren mit der Automation betrieblicher Prozesse, speziell Rollout und ServiceHandling, beschäftigt. Er ist unter anderem verantwortlich für die Konzeption und Entwicklung von YADT, "an Augmented Deployment Tool".

Dr. Bodo Junglas entwickelt seit 15 Jahren im Enterprise-Umfeld Software. Er ist polyglott (Java, Scala, Erlang, Haskell, Ruby, PHP, ..) mit momentan starkem Hang zu Scala, poly-persistent (SQL/NOSql) und fühlt sich im Backend, wie im FrontEnd als auch auf der Admin-Konsole zu Hause. Die Begeisterung für Scala teilt er mit den meisten Kollegen bei Leanovate.

Dr. Christian Wende ist Mitgründer und Geschäftführer der DevBoost GmbH. Er ist Experte für testgetriebene Softwareentwicklung bei DevBoost und regelmäßiger Sprecher auf verschiedensten Fachkonferenzen und Tagungen.

Dharmesh Sheta is a Software Engineer at CollabNet GmbH developing ALM tool integrations with version control system like Git and Subversion and tools like Gerrit and Jenkins Continuous Integration.

Dirk Weil ist seit 1998 als Berater im Bereich Java tätig. Als Geschäftsführer der GEDOPLAN GmbH in Bielefeld ist er für die Konzeption und Realisierung von Informationssystemen auf Basis von Java EE verantwortlich. Seine langjährige Erfahrung in der Entwicklung anspruchsvoller Unternehmenslösungen machen ihn zu einem kompetenten Ansprechpartner und anerkannten Experten auf dem Gebiet Java EE. Er ist Fachbuch-Autor, schreibt Artikel für Fachmagazine, hält Vorträge und leitet Seminare und Workshops aus einem eigenen Java-Curriculum.

Dominik Obermaier is co-founder and CTO at dc-square. Besides designing high scalability server software for the distributed and mobile world, he has several years of experience as architect of JavaEE applications. His main interests are Machine-to-Machine communication and highly scalable software on the JVM. He is also an advocate of lean documentation tools.

Dominik Schadow verfügt über 10 Jahre Erfahrung in der Java Entwicklung und arbeitet als Senior Consultant beim IT-Beratungsunternehmen bridgingIT. Er ist spezialisiert auf die Architektur und Entwicklung von Java Enterprise Applikationen, Enterprise Application Integration und die sichere Softwareentwicklung mit Java. Daneben ist er Speaker auf verschiedenen Konferenzen rund um die Themen Java und sichere Softwareentwicklung und Autor des Java-Web-Security Buchs. In seiner Freizeit leitet er das Open-Source-Projekt JCrypTool, mit dem Anwender für die Kryptografie begeistert werden sollen und gleichzeitig ihre eigenen Krypto-Plug-ins entwickeln können.

Dominik Süß arbeitet als Consultant und Systemarchitekt bei der pro!vision GmbH in Berlin. Sein Schwerpunkt liegt hierbei auf dem der Konzeption und Entwicklung von hocheffizienten CMS Lösungen basierend auf dem Produkt Adobe Experience Manger. Neben der Kundenarbeit ist er Initiator und Organisator der Fachkonferenz adaptTo() bei der sich jährlich rund 150 Entwickler rund um das Open Source Webframework Apache Sling zu einer dreitägigen Konferenz in Berlin treffen.

Eberhard Wolff arbeitet als freiberuflicher Architekt und Berater. Außerdem ist er ist Java Champion und Leiter des Technologie-Beirat der adesso AG. Sein technologischer Schwerpunkt liegt auf Spring, NoSQL und Cloud.

Eivind Molster works as UX manager at Norway Post. He works tirelessly to create user friendly solutions across all of Norway's Posts digital channels on both large and small devices. He tirelessly keeps focus on the end user on his journey through Norway Post extensive organisation. Before this he worked 8 years as an usability consultant at Making Waves and Steria.

Erik Jan de Wit is a Senior Engineer at JBoss by Red Hat and a responsible for mobile development with AeroGear. Erik Jan created mobile games and now uses that know how to enable frameworks to better support mobile development.

Felix Braun ist Team Lead Server Development bei der Acrolinx GmbH. Er hat mehr als 12 Jahre Erfahrung als Java-Entwickler. Derzeit interessiert er sich besonders für komponentenbasierte Systeme und Cloud-Architekturen. Dabei ist er immer auf der Suche nach schlanken Frameworks und Tools, die es ermöglichen, mit weniger Code mehr zu erreichen.

Felix Müller arbeitet als Softwareentwickler bei der Deutsche Post E-Post Development GmbH in Berlin. Er beschäftigt sich mit der Entwicklung von Web-Anwendungen im Java-Umfeld. Dabei interessieren ihn besonders Test Automatisierung, Continuous Delivery und agile Vorgehensweisen. Außerdem zeigt er reges Interesse für Machine Learning und Data Analysis.

Frederik Dohr ist Consultant bei innoQ und hat sich nach langjähriger Erfahrung mit JavaScript-Anwendungen, unter anderem als Co-Maintainer von TiddlyWiki, auf die Grundlagen des Web besonnen. Dabei vertritt er eine Philosophie der radikalen Einfachheit und Eleganz.

Dr. Halil-Cem Gürsoy ist als Software Architect bei der adesso AG tätig. Sein technologischer Schwerpunkt liegt dabei auf Java Enterprise (Spring). In diesem Kontext konzentriert er sich auf verteilte Systeme, Cloud-Architekturen sowie Build- und Deployment-Prozesse in verteilten Systemen.

Heiko Spindler ist freiberuflicher IT-Berater und Architekt. Seit über 16 Jahren ist Heiko Spindler als Software-Entwickler, Projektleiter und Software-Architekt in vielen Projekten unterschiedlicher Branchen tätig. Seine Aufgaben umfassen das Aufsetzen von Projekten sowie die Betreuung über den gesamten Entwicklungszyklus. Er beschäftigt sich hauptsächlich mit Software-Architekturen, modellgetriebener Entwicklung und der Verbindung von Geschäftsprozessen mit IT. Zudem berät er Kunden bei der Auswahl moderner Software-Architekturen, technischer Frameworks und agiler Vorgehen. Er ist seit 2007 Dozent an der Fachhochschule Gießen-Friedberg (für MDA) und spricht auf Fachkonferenzen. Zusammen mit Niko Köbler hat er die Qualitects Group gegründet.

Florian Hopf arbeitet als freiberuflicher Softwareentwickler mit den Schwerpunkten Information Retrieval und Content Management in Karlsruhe. Er setzt Lucene und Solr seit Jahren in unterschiedlichen Projekten ein und ist einer der Organisatoren der Java User Group Karlsruhe.

Gunnar Morling ist als Senior Software Engineer für Red Hat tätig. Als Mitglied des Hibernate-Teams arbeitet er an den Projekten Hibernate OGM und Validator und ist Mitglied der Expert Group für Bean Validation 1.1 (JSR 349). Er verfügt über mehrjährige Erfahrungen im Java-EE-Umfeld und bloggt gelegentlich unter http://in.relation.to/.

Holger Kraus ist bei der innoQ Deutschland GmbH als Senior Consultant tätig. Er hat über 10 Jahre Erfahrung mit dem Entwurf und der Entwicklung großer IT-Systeme in unterschiedlichen Branchen. Zur Zeit beschäftigt er sich primär mit der Architektur und Realisierung verteilter Webanwendungen im Java-Enterprise-Umfeld.

Mein Name ist Igor Sechyn und ich bin 28 Jahre alt. Nach meinem Informatik-Studium in Oldenburg habe ich hauptsächlich in den IT-Projekten mit Schwerpunkt auf Java Entwicklung gearbeitet. Seit zwei Jahren bin ich bei der pro!vision, deren Schwerpunkt CMS und Web Application Development ist. pro!vision organisiert ebenfalls ihre eigene Konferenz adaptTo, auf der ich bereits schon ein Talk gehalten habe.

Janne Sinivirta is a senior consultant for Nitor Creations. Software architect, programming language nerd, fitness enthusiast and a proud father of two. He has been responsible for architectural design and software development in business management, healthcare, telecomm, interactive television, mobile entertainment and other IT industries. For the past few years, he has spent much of his free time developing games for mobile devices in various languages.

Jörg Müller ist Manager bei der Hypoport AG. Dort entwickelt er mit seinem Team an EUROPACE, dem Marktplatz für Finanzierungsprodukte. Er arbeitet seit mehr als fünfzehn Jahren in verschiedenen Rollen in der IT-Beratung und Softwareentwicklung. Aktuell interessiert er sich besonders für neue Vorgehensweisen in Softwareentwicklung und -betrieb. Seine Ideen teilt er gerne bei verschiedenen Konferenzen und User-Groups.

Jörg Pfründer ist Senior Software Entwickler. Er arbeitet bei der Hypoport AG in Berlin und entwickelt mit an EUROPACE 2, der neuen Generation des B2B-Finanzmarktplatzes für Immobilienfinanzierungen. Ihn beschäftigt besonders die Erstellung automatisierter Tests auf allen Ebenen der Testpyramide.

Jürgen Höller ist Mitbegründer des Open-Source-Projekts "Spring Framework" und begleitet das Kernprojekt bereits seit 2003 als Projektleiter und Releasemanager. Bei Pivotal ist für die Weiterentwicklung des Frameworks im Rahmen der Plattform "Spring IO" zuständig.

Kai Spichale ist Senior Software Engineer bei der adesso AG. Sein Tätigkeitsschwerpunkt liegt in der Konzeption und Implementierung von Java-basierten Softwaresystemen. Er ist Autor verschiedener Fachartikel, regelmäßiger Sprecher auf Konferenzen und Trainer. Seine aktuellen Interessensschwerpunkte sind Big Data, NoSQL und Suchtechnologien.

Lennart Koopmann hat 2009 Graylog2 als ein Hobby Projekt begonnen und 2012 die TORCH GmbH als Unternehmen dahinter gegründet.

Leon Rosenberg widmet sich als Softwarearchitekt seit über zehn Jahren der Entwicklung von hochskalierenden Portalen, darunter Friendscout24, Parship oder Allyouneed. Darüber hinaus engagiert er sich bei Opensource Projekten im Bereich der Verteilung und Application Management und veröffentlicht regelmäßig Fachartikel zu diesen Themen.

Leonard Ehrenfried: Ich bin zwar ein technologischer Allesfresser, aber meine größte Stärke liegt im Bereich JavaScript. Seit 5 Jahren schreibe ich JavaScript im Browser und habe während dieser Zeit viele Open Source und In-House UI- und Widget-Frameworks gesehen, erweitert und verfasst. Mein besonderes Steckenpferd ist hierbei das Testen von client-side Code, was oft sehr stiefmütterlich behandelt wird - besonders in der Java-Welt. Mein persönliches Ziel ist es das zu ändern.

Marco Kisperth ist seit drei Jahren als Product Owner für die Entwicklung der zweiten Generation einer erfolgreichen Finanzmarktplattform verantwortlich. Davor hat er als CTO, Product Owner und Berater den Wandel von der klassischen zur agilen Produktentwicklung aktiv mitgestaltet. Als Product Owner beschäftigt sich Marco besonders mit der Gestaltung der Zusammenarbeit von Produktentwicklung mit Anwendern und Management.

Martin Eigenbrodt ist Senior Consultant bei innoQ. Er verfügt über langjährige Erfahrung in der Entwicklung von Software auf der JVM. Seine Schwerpunkte sind Design und Implementierung von RESTfull Webservices, Continuous Delivery und DevOps.

Martin W. Kirst hat sein Hobby zum Beruf gemacht:
Informatik studiert; Große Begeisterung für Open Source; Eigene Projekte; Viele Contributions von Apache über Eclipse bis Zaproxy - - Von Linux-Kernel bis HTML5 App

Michael Plöd ist Principal Architect und Partner bei der Senacor Technologies AG und in dieser Rolle überwiegend in Projekten tätig, die die Transformation großer IT-Landschaften anstreben. Michael ist Speaker auf zahlreichen Konferenzen und regelmäßiger Autor diverser Fachartikel.

Dr. Mirko Seifert ist Mitgründer und Geschäftführer der DevBoost GmbH. Er entwickelt seit mehr als 20 Jahren Software und Committer in verschiedenen Open-Source-Projekten (u.a. EMFText, JaMoPP, JUnitLoop). Mirko veröffentlicht regelmäßig Artikel im Eclipse- und im Javamagazin und spricht auf verschiedensten Veranstaltungen.

Moritz Grauel ist freiberuflicher Software Entwickler und Trainer. Seine Schwerpunkte liegen im Bereich der JVM basierten Webentwicklung. Technologischer Fortschritt und erstklassige User Experience liegen dabei immer in seinem Fokus.

Nicolas Byl studierte Medizinische Informatik an der Hochschule Heilbronn und Universität Heidelberg. Während des Studiums sammelte er erste Erfahrungen im Umfeld von Java-basierten Webportalen. Seit 2012 arbeitet bei der Netpioneer GmbH in Karlsruhe. Dort arbeitet er an Individualsoftware-Projekten im Bereich JEE und Spring. Dabei versucht er seinen Kollegen und Kunden die Vorzüge von Clean Code und TDD nahe zu bringen.

Niko Köbler ist freiberuflicher Software-Architekt, Developer und Coach für (Java) Enterprise Lösungen, Integrationen und Webdevelopment. Er berät und unterstützt Kunden verschiedenster Branchen, hält Workshops und Trainings und führt Architektur-Reviews durch. Zusammen mit Heiko Spindler hat er die Qualitects Group gegründet, ein loses Netzwerk von Architekten für bessere Qualität in Software-Projekten. Außerdem ist er Co-Lead der Java User Group Darmstadt (JUG DA), schreibt Artikel für Fachzeitschriften und ist regelmäßig als Sprecher auf Fachkonferenzen anzutreffen.

Oliver Fischer arbeitet als Softwareentwickler und Projektleiter in Berlin und schreibt Artikel zu Java-relevanten Themen für verschiedene Zeitschriften und Online-Magazine. Seine Interessensschwerpunkte liegen auf innovativen Systemen und Ideen, am liebsten in Java, und auf agiler Beratung. Zudem leitet Oliver die Java Usergroup Berlin-Brandenburg sowie die Atlassian Usergroup Berlin-Brandenburg.

Oliver Gierke ist Leiter des Spring Data Projekts bei Pivotal, früher besser bekannt als SpringSource. Seit über 8 Jahren widmet er sich dem Entwicklen von Java Enterprise Applikationen, Open Source Projekten und ist Mitglied der JPA Expert Group. Seine Arbeitsschwerpunkte liegen im Bereich Softwarearchitektur, Spring, Persistenztechnologien und REST Webservices. Er ist regelmäßiger Sprecher auf deutschen und internationalen Konferenzen sowie Autor von Fachartikeln und des ersten Spring Data Buches.

Richard Powell: Hi, I'm a JavaScript Developer and UI designer who loves to build challenging interfaces for the web. My core skills are in JavaScript, HTML and CSS. Most recently I've working alot with D3, Rickshaw, Backbone and CoffeeScript for Server Density.

Sascha Schönfeld arbeitet seit einem Jahr bei der neu gegründeten AS ideAS am Thema Cloud Computing und aktuellen Technologien. Zuvor arbeitete er im Silicon Valley und studierte an der McGill University in Montréal.

Stefan Rudnitzki arbeitet als Softwareentwickler bei der Hypoport AG. Er entwickelt seit mehreren Jahren hochverfügbare und skalierbare Backendsysteme und konnte sowohl im klassischen relationalen Umfeld als auch im BigData Bereich an Projekten mitwirken. Seit mehr als fünf Jahren ist er dabei Teil von agilen Teams und konnte dabei die unterschiedlichen Perspektiven von Scrum als Entwickler und ProjectManager kennenlernen. In seiner Freizeit organisiert er die MongoDB UserGroup Berlin.

Stefan Tilkov ist Geschäftsführer und Principal Consultant bei innoQ, wo er sich vorwiegend mit der strategischen Beratung von Kunden im Umfeld von Softwarearchitekturen beschäftigt. Er ist Autor des Buchs „REST und HTTP“ (dpunkt Verlag), Autor zahlreicher Fachartikel und häufiger Sprecher auf internationalen Konferenzen.

Stefan Zörner ist Softwarearchitekt, Berater und Coach bei embarc in Hamburg. Ganz besonders interessiert ihn, wie sich Entwürfe effizient festhalten und kommunizieren lassen. Seine Erfahrungen und sein Wissen teilt er regelmäßig in Form von Vorträgen und Artikeln. Stefans Buch über Architekturdokumentation ist im Hanser-Verlag erschienen, er ist Committer im Directory Project der Apache Software Foundation und Board-Mitglied im iSAQB.

Stephan Behnke ist Softwareentwickler bei Small Improvements, einem Berliner Startup. Nach seinem Studium der Wirtschaftsinformatik arbeitete er zunächst als freiberuflicher Entwickler an verschiedenen Java-Projekten und als Trainer für die Programmiersprache Scala. Seine aktuelle Leidenschaft sind die Cloud, Go, Typescript und AngularJS.

Stephan Hochdörfer ist Head of IT bei der Firma bitExpert AG in Mannheim. Seine Themenschwerpunkte liegen im Bereich Web Entwicklung und Automatisierungstechniken, von der Code Generierung bis hin zum automatischen Deployment.

Der in der Slowakei lebende Tam Hanna leitet die ebenda ansässige Tamoggemon Holding k.s. Dieses Unternehmen beschäftigt sich mit Consulting, Anwendungsentwicklung und dem Verfassen von Fachtexten für die IT-Industrie. Seit 2004 liegt der Schwerpunkt von Tams Tätigkeit im Bereich der Mobilcomputer. Er verfolgt die Industrie seit dem Palm IIIc, ist als Blogger bei Heise tätig und in diversen Magazinen und auf einigen Kongressen zu sehen.

Timmo Freudl-Gierke studierte an der TU-Berlin technische Informatik mit Schwerpunkt Softwaretechnik. Er wechselte nach drei Jahren in der Forschung in die Finanzbranche und entwickelte dort als Software Entwickler und Architekt zahlreiche Enterprise Anwendungen im Java Umfeld - am liebsten mit leichtgewichtigen Tools und Frameworks welche agile Vorgehensmodelle unterstützen. Aktuell verantwortet er ein b2b Frontend für Baufinanzierungen.

Uwe Friedrichsen ist ein langjähriger Reisender in der IT-Welt. Als Fellow der codecentric AG ist er stets auf der Suche nach innovativen Ideen und Konzepten. Seine aktuellen Schwerpunktthemen sind Skalierbarkeit, Resilience und die IT von (über)morgen. Er teilt und diskutiert seine Ideen regelmäßig auf Konferenzen, als Autor von Artikeln, Blog Posts, Tweets und natürlich gerne auch im direkten Gespräch.

Jochen Mader ist Chief Developer bei der Senacor Technologies AG und Autor verschiedener Fachartikel. Er spielt gern mit Frameworks abseits ausgetretener Container-Pfade herum und testet aus was die JVM so her gibt. Am liebsten testet er aber mit seinem Sohn aus was die Lego-Kiste her gibt.

Lukas Gotter ist Software Developer and Consultant bei der codecentric AG in Berlin. Er hat langjährige Erfahrung im Bereich Datenbanken, Webanwendungen und -APIs. Sein aktueller Fokus liegt auf NoSQL, Softwarearchitekturen und neuen server- und clientseitigen Webtechnologien.

Marco Hutzsch ist Technischer Designer Platform Engineering für www.otto.de. Er kümmert sich um die betriebliche Architektur und stellt zusammen mit dem Team Platform Engineering die Infrastruktur-Komponenten für www.otto.de bereit. Seit rund 15 Jahren ist er in der Systemadministration, Softwareentwicklung und Software-Qualitätssicherung unterwegs und hat dabei eine Leidenschaft für Automatisierung in der Systemadminstration entwickelt.

Oliver Wolf arbeitet als Principal Consultant bei innoQ. Zuvor war er bei verschiedenen anderen Unternehmen unter anderem tätig als Lead Architect, Technischer Produktmanager, Entwicklungsleiter und Berater für IT-Sicherheit. Aktuell gilt sein Hauptinteresse der Architektur hochskalierbarer, verteilter Systeme sowie der engen Verzahnung von Entwicklung und Betrieb ("DevOps").

René Lengwinat arbeitet als Consultant und Entwickler bei ThoughtWorks. In seiner Tätigkeit unterstützt er Kunden bei der Entwicklung von Softwaresystemen und der Umgestaltung der Organisation nach dem Vorbild von Continuous Delivery.

Sebastian Schlick ist Entwicklungsleiter bei der pro!vision GmbH. Ursprünglich aus der Datenbank-Ecke kommend ist er inzwischen seit Jahren in der Softwarearchitektur unterwegs. Seine aktuellen Schwerpunkte sind zur Zeit Enterprise CMS Lösungen mit Adobe AEM, JAVA, OSGi, Apache Sling, JCR sowie Responsive Design und mobile sites. Öffentliche Auftritte betrafen bisher meist die p!v Umsetzung der mobilen Sites von VW (m.volkswagen). Seit 2011 Bitcoin Enthusiast.

Tobias Kraft war nach seinem Studium des Wirtschaftsingenieurwesens in mehreren Software- und IT-Beratungshäusern als Consultant und Software-Architekt tätig. Seit 2009 beschäftigt er sich bei der exensio GmbH mit der Architektur und Umsetzung von Enterprise-Portalen sowie Web-Applikationen basierend auf Java-Technologien und dem Grails-Framework.



















