SpringOne 2011 – Frühling in Chicago…

Keine Kommentare

Zum ersten Mal besuchten wir dieses Jahr die SpringOne 2GX Konferenz. Haufenweise interessante Themen lockten gleich drei Kollegen nach Chicago. Neben Essential Spring waren Spring Web & Mobile, Big Data, Distributed Architectures und Cloud Platforms die Kernthemen des Spring – Parts.

Der parallel stattfindende Groovy-Part bot ebenfalls ein sehr vielseitiges Programm. Wir waren in dieser Woche jedoch eher den Spring-Themen zugewandt. Groovy, Grails, Gradle, Gorm und Co. haben zwar durchaus interessante Ansätze, überzeugen uns für den täglichen Einsatz bei unseren Kunden jedoch noch nicht. Viele Vorträge handeln immer noch sehr stark von der reinen Syntax der jeweiligen Sprache, dies allein hat uns nicht verzaubert.

Der Spring-Part selbst war jedoch sehr aufschlussreich. Spring 3.1 gibt es seit einer Woche als Release-Kandidat 1 und die neuen Features haben wir schon vor der Konferenz aufmerksam verfolgt, beschrieben und teilweise in unsere laufenden Projekte eingebaut. Die wirklich lohnenswerten Eindrücke einer Konferenz stammen jedoch eher aus den Bereichen, mit denen wir uns im Alltag nicht ständig beschäftigen. Bei zukünftigen Problemstellungen bilden genau diese Eindrücke dann vielleicht einen Ansatzpunkt für einen möglichen Lösungsweg.

Unsere Lieblingssessions

Modern Javascript

JavaScript hat besonders unter Java-Entwicklern einen schlechten Ruf, Tatsache ist jedoch, dass man um JavaScript in diesen Tagen nicht mehr herumkommt. Keith Donald kommt selbst aus der Java-Ecke und machte in wenigen Folien und Code-Beispielen deutlich, wo die Unterschiede zwischen Java und JavaScript liegen. Danach stellte er diverse JavaScript-Frameworks und deren Anwendung vor, und es wurde schnell klar, dass der schlechte Ruf weniger etwas mit der Sprache als mit der Verwendung zu tun hat: es ist sehr einfach möglich, auch mit JavaScript sauber einem Designansatz zu folgen. Wir haben JavaScript viel zu lange den Script-Kiddies überlassen, es wird Zeit, auch hier ordentliche Software-Design-Maßstäbe anzuwenden. Fazit: Der Single-Page-JavaScript-Anwendung in HTML 5 mit einer Rest-Datenanbindung per Ajax gehört die Zukunft. Interessant auch Keiths Meinung zu GWT: JavaScript ist JavaScript und Java ist Java.

Polyglot Persistence for Java Developers – moving out of the relational comfort zone

Chris Richardson, Gründer von CloudFoundry, hat in 1,5 Stunden einen Gesamtüberblick über verschieden NoSQL-Datenbanken präsentiert. Am Beispiel von Redis, Cassandra und MongoDB wurden die Möglichkeiten und Eigenschaften sehr schnell deutlich. In einem zweiten Schritt schilderte Chris, wie SpringData bei der Anbindung der Datenbanken helfen kann. Immer wieder betonte Chris, NoSQL-Datenbanken nicht euphorisch und überstürzt einzusetzen. Keine ACID-Transaktionen und keine komplexen Queries sind dabei zwei wichtige Gründe. MongoDB sieht sehr vielversprechend aus, unsere 4+1-Zeit lässt hier bestimmt mal einen tieferen Einblick zu. Ob man eine NoSQL-Datenbank jedoch derzeit bei unseren Kundenprojekten einsetzen möchte, muss gut überlegt sein.

Whoops … Where did my Architecture go?

Oliver Gierke ist wahrscheinlich den meisten Spring-Anhängern ein Begriff. In seiner Core-Session beschäftigte er sich mit Fragestellungen, welche die grundlegende Architektur und Packagestruktur einer Spring-Anwendung betreffen. In Ergänzung zur traditionellen Strukturierung nach horizontalen Schichten (UI, Service, Repository) empfiehlt Oliver auch eine vertikale Aufteilung der Komponenten. In seinem gezeigten Beispiel landen die Services und Repositories in einem Package, wodurch sich man sich wieder die guten alten Access-Modifier zu Nutze machen kann. Durch die Wegnahme des public-Modifiers wird schon auf Codeebene sichergestellt, dass auch von außen immer der Weg über das Interface genommen wird. Der Demo-Code dazu lässt sich hier herunterladen. Zur Sicherstellung der dauerhaften Einhaltung von Architekturregeln stellte Oliver das Tool Sonargraph Architect vor, welches in der kurzen Demo sehr vielversprechend aussah.

Die Budweiser-Keynotes

Hier wurde eine nicht ganz neue Technologie vorgestellt, die dennoch weiterhin ihre Relevanz hat und Spring Social bei weitem übertrifft. Hilfreich war hierbei auch die Laufzeitumgebung Chicago.

Fazit

Zusammenfassend lässt sich sagen, dass diese Konferenz für Spring-Fans und solche die es noch werden wollen, sehr viel zu bieten hatte. Für uns war es auch hier wieder sehr beruhigend zu sehen, dass wir mit den Technologien, die wir für unsere Kunden einsetzen, auf dem richtigen Weg sind. Gleichzeitig wurde aber auch deutlich, dass sich die Technologien rund um die JVM stark in Bewegung befinden. Der CTO von SpringSource Adrian Colyer (Rod Johnson war leider krankheitsbedingt verhindert) zeigte einen kurzen Ausblick auf die kommenden Themen. Während im letzten Jahr sich vieles um Spring Data, Social, Mobile und natürlich die Cloud gedreht hat, wird gerade die Frage nach dem Device wieder in den Vordergrund rücken. „Any device at any time“ war hierzu sein Slogan bzw. noch kürzer: „The Pendulum“. Das Pendel schwenkt wieder zurück zum Thin Client. Im Zeitalter der Smartphones und Tabletcomputer will der Anwender seine Daten aus der Cloud natürlich auch auf all seinen Geräten im Zugriff haben. Man darf gespannt sein, was sich SpringSource hierzu einfallen lässt.

Dennis Schulte

Dennis Schulte ist seit 2009 als Senior IT Consultant bei der codecentric AG tätig. Er unterstützt seine Kunden insbesondere im Bereich Enterprise-Architekturen, Microservices, Continuous Delivery, DevOps und der Optimierung von IT-Prozessen. Aufgrund seiner langjährigen Erfahrung als Architekt und Entwickler verfügt er über ein umfassendes Wissen im Bereich Java und Open-Source-Technologien. Seine Projektschwerpunkte liegen in der Architekturberatung und der Durchführung von Projekten in Enterprise-Unternehmen.

Share on FacebookGoogle+Share on LinkedInTweet about this on TwitterShare on RedditDigg thisShare on StumbleUpon

Kommentieren

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.