Der Fokus der ScalaDays 2014 in Berlin lag auf Vereinfachung, Reactive Streams und Event Sourcing mit Akka Persitence. Vom 16. bis 18. Juni trafen sich dazu Entwickler und konnten 59 Vorträgen in mehreren Tracks zuhören. Die Vorträge waren ein spannende Mischung aus theoretischen und praktischen Themen sowie eindrucksvollen War Stories. In diesem Artikel stelle ich meine Mischung vor und berichte, was bei mir die stärksten Eindrücke hinterlassene hat.
Edit: Mittlerweile sind die Vorträge als Videos bei Parleys verfügbar.
Vereinfachung
Martin Odersky hat in seiner Keynote Scala: The Simple Parts über den neuen Scala Compiler dotc gesprochen, der neben besserer Performance auch eine Vereinfachung der Sprache bringen soll. So sind einige Sprachkonstrukte wie Implicit Conversions und einige Typenspezifika nur über Feature Flags zu aktivieren. Er sprach aber auch über seine 7 Scala Muster, die er bei der täglichen Arbeit nutzt. Interessant fand ich seine Bemerkung, dass er Scala nicht als object/functional Sprache ansieht, sondern als modulare Sprache. Gerade erst die Kombination von objektorientierten und funktionalen Aspekten erleichtern Modularisierung.
Reactive Streams
Das Akka Team arbeitet an der Integration von eventsourced und Spray.io als neue Module namens Akka Persistence bzw. Akka HTTP. Gerade diese beiden Module werden als Basis für viele andere Projekte herbeigesehnt. Zum Beispiel beabsichtigt das Play Team mit diesen Modulen ihre Iteratee Implementierung und Netty als Webserver zu ersetzen.
Überhaupt hat das Play Team in seiner Vorstellung von Play 2.4 viel über die Modularisierung von Play in einzelne Komponenten wie zum Beispiel sbt-web und die Templating Engine Twirl gesprochen. Diese Aufteilung von Play soll zum Einen die zukünftige Entwicklung beschleunigen und zum Anderen einzelne Komponenten austauschbar machen.
Ein besonderes Highlight war Nilanjan Raychaudhuri Vortrag zu Play Recipes for the Real World zu Best Practises für Play. Als Koch in Kochschürze wirbelte er energiegeladen durch den Raum und schaffte es noch dabei mit Live Coding zwei hoch performante Play Muster vorzustellen. Leider ist ihm die Zeit davon gelaufen, so dass er ein drittes nicht mehr zeigen konnte.
Matthias Nehlsen stellte in seinem Vortrag Writing Reactive Applications for Fun zwei seiner Open Source Projekte vor. BirdWatch zeigt alle Twitter Tweets zu einem bestimmten Suchbegriff in Echtzeit an. Es ist mit Play, Iteratees und ElasticSearch erstaunlich einfach und mit wenigen Zeilen umgesetzt.
Event Sourcing mit Akka Persitence
Das Akka Team demonstrierte im Vortrag Resilient Applications with Akka Persistence die Grundlagen von Akka Persistence und wie man damit Event und Command Sourcing umsetzt. Mit Hilfe von Akka Persistence ist es möglich, eintreffende Anfragen automatisch zu persistieren, bevor man sie verarbeitet. Im Fall eines Systemabsturzes wird der Systemzustand anhand des Logs wiederhergestellt.
Duncan DeVore stellte Building a Reactive Application vor, wie er und sein Team die Erfassung von Stromverbrauchsdaten mit Event Sourcing und Akka Persistence umgesetzt haben. Sie starteten dabei mit einer klassischen, auf JPA basierten Architektur, die der Last nicht gewachsen war. Durch die Umstellung auf Scala und Akka konnten sie diese Probleme lösen.
Etc
Im Live Coding DI w/o Frameworks hat Adam Waski MacWire vorgestellt. MacWire ist eine kleine Bibliothek um ein Scala Makro herum, dass Dependency Injection vollständig mit Scala Bordmitteln löst und mit Play kompatible ist. Philipp Haller diskutierte den Unterschied zwischen Scalas Future sowie Promise und seiner Async Bibliothek – Futures and Async: When to Use Which? . Insbesondere wenn man mit mehreren Futuren arbeitet, erleichtert Async die Übersichtlichkeit und das Verständnis des Codes. Eric Torreborre gab eine geniale Einführung in das Testing Framework Specs2 2.3 . In 45 Minuten hat er tatsächlich alles gezeigt, was Specs2 so besonders macht und wie man es nutzt.
Als Randnotiz ist mir aufgefallen, dass fast alle Vortragenden Macs benutzen und wenn sie Live Coding gezeigt haben, IntelliJ verwendeten.
Weitere Beiträge
von Lukas Pustina
Dein Job bei codecentric?
Jobs
Agile Developer und Consultant (w/d/m)
Alle Standorte
Weitere Artikel in diesem Themenbereich
Entdecke spannende weiterführende Themen und lass dich von der codecentric Welt inspirieren.
Gemeinsam bessere Projekte umsetzen.
Wir helfen deinem Unternehmen.
Du stehst vor einer großen IT-Herausforderung? Wir sorgen für eine maßgeschneiderte Unterstützung. Informiere dich jetzt.
Hilf uns, noch besser zu werden.
Wir sind immer auf der Suche nach neuen Talenten. Auch für dich ist die passende Stelle dabei.
Blog-Autor*in
Lukas Pustina
Du hast noch Fragen zu diesem Thema? Dann sprich mich einfach an.
Du hast noch Fragen zu diesem Thema? Dann sprich mich einfach an.