Letzte Woche haben wir alle von Inspiring die JavaPolis-Konferenz in Antwerpen besucht. JavaPolis ist eine fünftägige Veranstaltung, die von der belgischen JUG organisiert wird. Sie besteht aus zwei Tagen mit Universitätssitzungen, gefolgt von drei normalen Konferenztagen. Die Universitätssitzungen waren dreistündige, tiefgehende technische Präsentationen. Die fünfzigminütigen Konferenzsitzungen waren weniger intensiv, aber manchmal auch weniger langweilig :)
Wir nahmen nur an zwei Tagen teil, dem letzten Universitätstag am Dienstag und dem ersten Konferenztag am Mittwoch.
Am Dienstag besuchten ein paar von uns die Sitzung 'Spring Business Tier' von Jürgen Hoeller und Rob Harrop, die einige neue Funktionen von Spring 2.0 vorstellten.
Der erste Teil ihrer Präsentation war recht interessant und behandelte die neuen XML-Namespace-Funktionen. Anstatt die Standard-DTD zu verwenden, können Sie in Spring 2.0 XML-Schemas in Ihrer Konfiguration verwenden. Durch die Verwendung von Schemas ist es möglich, Ihrer Konfiguration mehr 'Typisierung' hinzuzufügen, was die Wahrscheinlichkeit von Fehlern verringert. Außerdem glaube ich, dass Ihre Konfiguration dadurch viel besser lesbar wird. Spring selbst verfügt über 4 Standardschemata, die Sie verwenden können: JNDI, AOP, UTIL und TX (Transactions).
Oben in Ihrer Konfiguration können Sie nun Ihre Schemas deklarieren:
Und wenn Sie eine Datenquelle z.B. über JNDI nachschlagen möchten, können Sie eine viel leistungsfähigere und intuitivere Definition verwenden:
Die ganze Idee hinter dieser Schemaverwendung war, die Verwendung von AOP durch Spring viel einfacher zu machen und der erste Schritt war, die Konfiguration zu vereinfachen. Diese Erklärung führte zu ihrem zweiten Thema, der verbesserten Integration mit AspectJ. Spring 2.0 verwendet jetzt die AspectJ-Syntax zur Angabe von Pointcuts, auch wenn Sie AspectJ nicht als AOP-Implementierung verwenden. Das macht die Arbeit mit AOP viel leistungsfähiger. Sie können außerdem dieselben Aspekte in Spring und in AspectJ verwenden, ohne dass Sie Ihre Aspekte ändern müssen. Durch die Verwendung von Standardannotationen (wieder...) sind Ihre Aspekte sowohl mit Spring als auch mit dem AspectJ-Compiler kompatibel. Ich persönlich habe einige Zweifel an Annotationen, denn wenn man sie nicht richtig einsetzt, können sie Ihren Code wirklich verschmutzen. Nach einer kurzen Pause ging das Thema zum CommonJ WorkManager über. Der CommonJ WorkManager ist sehr spezifisch für Websphere- und Weblogic-Benutzer. Ich denke, ich werde weiterhin Quartz verwenden, wenn es um Scheduling geht, und nicht diesen WorkManager, der mir für einfache Probleme etwas kompliziert erschien. Der letzte Teil der Präsentation behandelte JMS und Message-Driven POJOs. Das hörte sich sehr interessant an, denn in einem unserer aktuellen Projekte müssen wir uns in naher Zukunft mit JMS beschäftigen. Aber es hörte sich interessanter an, als es in Wirklichkeit war. Jürgen Hoeller sprach immer wieder über die Unterschiede zwischen den beiden JMS-Spezifikationen, ohne das Konzept der Message-Driven POJOs wirklich zu erklären. Am Nachmittag gab es eine Session über die Java In Action Session von Dion Almear und Ben Galbraith. Diese Sitzung war sehr gut. Sie war technisch und auch sehr praktisch. Sie begannen mit einem sehr bekannten Beispiel für Ajax: dem Ausfüllen von Formularen. Jeder Schritt der Einrichtung eines Ajax-unterstützten Formulars wurde behandelt, und das Beste daran war, dass alles live auf der Bühne kodiert wurde. Nach der Einführung gingen sie zum bekanntesten Ajax-Business Case über, Google Maps. Die erste Überraschung war, dass GoogleMaps eigentlich gar kein Ajax ist. Es handelt sich lediglich um eine sehr ausgeklügelte Nutzung von Javascript und HTML <div> Elementen. Dann haben sie die gesamte Funktionalität von Google Maps, einschließlich Drag-and-Drop und Zoomen, in wenigen einfachen Schritten live auf der Bühne neu implementiert. Das war alles sehr beeindruckend. Zum Schluss wurden einige Frameworks gezeigt, die Entwicklern die Verwendung von Ajax erheblich erleichtern können. Ich persönlich bevorzuge DWR. Mit diesem Framework können Sie Ajax auf sehr (Java-)natürliche Weise nutzen, ohne viele Änderungen an Ihrer klassischen Webschicht vornehmen zu müssen. Am nächsten Tag, dem ersten Konferenztag, besuchten einige von uns die Keynote von Jeff Jackson, dem Vizepräsidenten des Sun Developer Program. Sein Vortrag war ein bisschen langweilig, aber der T-Shirt-Launcher war nett. Jedes Mal, wenn Duke auf einer Folie zu sehen war, wurde ein von James Gosling signiertes T-Shirt ins Publikum geworfen. Es macht immer Spaß zu sehen, wie sich ein Haufen Geeks über ein kostenloses T-Shirt freut. Später besuchte ich eine Sitzung über JMX. Irgendwie erregt JMX immer meine Aufmerksamkeit. Obwohl ich es nie in einem echten Projekt verwendet habe, bleibt es eine vielversprechende Technik für die Verwaltung eines Teils Ihrer Konfiguration. Ich sage vielversprechend, weil ich sehe und höre, dass viele Leute über JMX sprechen, aber nur wenige es wirklich in Projekten einsetzen. In der letzten Sitzung an diesem Tag besuchte ich eine Sitzung zum Thema 'Continuous Integration'. Der Titel selbst war nicht wirklich aufregend, aber es macht immer Spaß zu sehen, wie jemand eine Geschichte erzählt und versucht, ein großes Publikum von den Vorteilen der Verwendung von Continuous Integration bei Ihren Projekten zu überzeugen. Eine kontinuierliche und schnelle Feedbackschleife ist so mächtig und erhöht die Qualität Ihrer Codebasis. Als Beispiel dafür, dass ein Continuous Build Server auch Spaß machen kann, zeigte er die Verwendung von zwei Lavalampen, rot und grün, die mit dem Build Server verbunden sind. Wenn ein Build fehlschlug, wurde die grüne Lampe ausgeschaltet und die rote eingeschaltet. Selbst ein Manager kann jetzt sehen, dass es ein Problem gibt. Das Lustige daran war, dass es einige Minuten dauert, bis eine Lavalampe richtig warm wird. Ihr Sport war es, den Aufbau zu reparieren, bevor die rote Lampe wirklich an war und wenn die Lavalampe ausgeschaltet wird, bevor sie aufgewärmt ist, haben Sie ein paar schöne Figuren in den Nudeln in der Lampe. Sie haben nun versucht, diese Figuren so lange wie möglich zu erhalten und das Einzige, was Sie tun können, ist, den Bau nicht zu zerstören. Ich weiß, dass Sie ein echter Nerd sein müssen, um das zu mögen, aber ich denke, es ist eine sehr schöne und einfache Art zu zeigen, dass Ihr Projekt versucht, seine Qualität zu verbessern. Für diejenigen, denen die Idee gefällt, gibt es auf der Seite der pragmatischen Programmierer eine Liste von Komponenten und eine Anleitung, wie Sie Ihren lavalampenfähigen Build-Server bauen können. Alle Javapolis-Präsentationen werden in den nächsten Monaten auf verschiedenen Java-Commnuity-Seiten wie TheServerSide und der JavaLobby verfügbar sein.
Verfasst von
Guido Schoonheim
Guido's passion lies in creating structure and showing the right direction in politically and technologically complex environments. His style is in essence enabling and guiding, but with a firm focus on the overall result. Experience includes managing complex programs (5+ teams / projects in multiple countries) and large software projects (>2M) to completion. Having done projects both as interim manager on the client side and as delivery manager on the supplier side Guido is intimately familiar with all facets of IT projects. Currently Guido is active as Change Manager and Agile Coach for large Scrum implementations.
Unsere Ideen
Weitere Blogs
Contact



