Der Eclipse Application Developer Day fand gestern in Ettlingen bei Karlsruhe statt. Gastgeber war die Softwarefirma Silverstroke, die in einem architektonisch modernen und sehr offenen Gebäude residiert.
Arne, Teamkollege bei der FTG und seit Anfang Juli Praktikant bei meinem Arbeitgeber HighQ-IT, und ich sind morgens um 6 Uhr 50 vom Hauptbahnhof Frankfurt losgefahren, um pünktlich bei der Veranstaltung anzukommen.
Insgesamt haben wir uns 7 Vorträge und eine Panel-Diskussion angehört, bevor wir die Heimreise angetreten haben. Im Nachhinein denke ich, wir hätten vielleicht etwas länger bleiben sollen, um nach den Vorträgen noch ein paar Kontakte zu anderen Eclipse-Entwicklern zu knüpfen. Beim nächsten Mal 😉
Die Vorträge wurden fast alle auf deutsch gehalten, während die Folien auf englisch waren. Diese Kombination ist nicht ungewöhnlich und habe ich schon zu seligen Studien-Zeiten kennengelernt.
Als kleine Gedächtnisstütze für mich selbst und evtl. meine Kollegen werde ich zu jedem der Vorträge einen kurzen Satz schreiben.
- Jochen Krause, EclipseSource / Harald Mueller, SAP: Keynote – Eclipse Runtime: Business Ready Open Source
Besprochen wurde die zunehmende Verbreitung von OSGi auf Servern, die es ermöglicht, die Eclipse-Plattform nicht nur in GUI-Applikationen auf dem Client, sondern auch für Server-Anwendungen („Headless“ = ohne UI) einzusetzen. Darüber hinaus wurde ein grober Überblick über verschiedene Themen wie Equinox als „Kernel“ von Eclipse und Projekte wie Jetty oder RAP gegeben. -
Leif Frenzel, andrena objects / Stefan Schürle, andrena objects: Gekonnt tranchieren, ansprechend garnieren und maßvoll würzen …
In diesem Vortrag ging es um die Organisation von Plugins bei größeren Projekten. Hängen geblieben sind neben den vielen Fotos von Nahrungsmitteln auf den Vorlesungsfolien bei mir, dass man möglichst „Extension Points“ nutzen sollte, seine Plugins besser nach Funktionalität als nach technischen Gesichtspunkten trennen sollte (Gutes Beispiel: Ein Plugin für Versionskontrolle und eins für Java-Entwicklung. Schlechtes Beispiel: Ein Plugin für Views und eins für Actions). Außerdem wurde empfohlen, lieber mehrere ViewParts und EditorParts mit klar abgesteckten Aufgaben zu erstellen, statt alles in einer komplexen Mega-View zu behandeln. Zur Kommunikation zwischen den Views solltenSelectionService
s eingesetzt werden. Abschließend wurde über die „innere Softwarequalität“ und das Tool ISIS gesprochen. Ein sehr gelungener Vortrag. -
Jens Kübler, aquintos: Automatisierte GUI Tests mit SWTBot :
Mit SWTBot lassen sich in Eclipse grafische Oberflächen (UI = User Interface) automatisch testen. Hervorgehoben wurde, dass es sich nicht um aufgezeichnete Tests handelt, die von Testexperten wegen ihrer geringen Flexibilität abgelehnt werden, sondern um welche, die programatisch erzeugt werden. SWTBot bietet eine große Auswahl von Methoden an, um Interaktionen wie das Anklicken eines Menüpunkts zu modellieren und die Ergebnisse zu testen. Das Projekt befindet sich noch in der „Incubator“-Phase, ist also für den Produktiveinsatz noch nicht unbedingt reif. -
Dr. Frank Gerhardt, Gerhardt Informatics Kft.: Eclipse Data Binding — updating RCP Mail 2.0 (PDF)
RCP Mail ist das Standard-Tutorial zum Lernen der RCP-Entwicklung. Frank Gerhardt hat die neue Version vorgestellt. Hervorgehoben wurde, dass es sich um eine Art Copy&Paste-Vorlage handelt, und deswegen sehr darauf geachtet wurde, es „richtig“ zu machen. -
Benjamin Muskalla, EclipseSource: „Single Sourcing RCP and RAP“ – Desktop and web clients from a single code base
Sehr beeindruckend fand ich diesen Vortrag:Chris Aniszczyk:
“Cool, one runtime to rule them all”RAP (Rich Ajax Platform) erlaubt es, mit einigen Anpassungen, RCP-Applikationen in Web-Anwendungen in HTML und Javascript umzuwandeln. Dabei wird die gesamte Arbeit am Server gemacht, der Client braucht nur noch einen Webbrowser, um die Anwendung nutzen zu können.
-
Hans-Joachim Brede, BREDEX: Automated functional testing with keywords
Der zweite Vortrag zum Thema „Tests“ beschäftigt sich ausdrücklich mit funktionalen Tests, bei denen es im Gegensatz zu Unit Tests nicht darum geht zu testen, ob ein kleines Stück Code so funktioniert, wie der Programmierer es erwartet, sondern darum, ob das Gesamtprogramm sich gemäß der Spezifikation verhält. Hans-Joachim Brede verfolgt dabei einen pragmatischen Ansatz und sagt, dass zuerst einmal der „Happy Path“ getestet werden muss, also dass das Programm bei korrekter Benutzung funktioniert, und das Testfälle explizit nicht von Entwicklern, sondern von den Testern geschrieben werden sollten. Im Prinzip kann das von ihm vorgestellte „Keyword-driven Testing“ also den Testern manuelle Arbeit abnehmen, wenn sie in der Lage sind, ein wenig Code zu schreiben. -
Thomas Schindl, BestSolution.at: The Modeled UI in Eclipse e4
In breitem Schwytzerdeutsch referierte Thomas Schindl über e4, bei dem es sich mehr oder weniger um ein Rewrite der Eclipse-Plattform (Aktuelle Version: 3.5, Codename Galileo) handelt. Lästiger und im Regelfall überflüssiger Legacy Code kann hier endlich über Bord geworfen werden, und einige umständliche Konventionen, z.B. die Notwendigkeit, selbst bei simplen Applikationen eine Perspektive definieren zu müssen, können durch einfacherere Vorgehensweisen ersetzt werden. Außerdem wird statt der teilweise sehr komplexen Vererbungsstruktur in Eclipse mehr mit Injection gearbeitet, um Funktionalität wiederzuverwenden.
Die Verpflegung während der Veranstaltung war reichlich, und die leeren Teller mit leckerem Kuchen wurden ständig durch volle ersetzt. Glücklicherweise konnte ich meinen Appetit noch halbwegs im Zaum halten:) Insgesamt war es eine sehr gelungene Veranstaltung, die ich auf jeden Fall wieder besuchen würde.
Der Bahnhof von Karlsruhe, übrigens Bahnhof des Jahres 2008, wurde von mir auch noch fotografiert:
Abschließend noch ein Foto von der „S-Bahn“ in Karlsruhe. Sieht eher aus wie eine Straßenbahn, und fährt auch auf der Straße. Und es gibt gar keine Türen links in diesen Bahnen, was ja auch eher ungewöhnlich ist.
So sieht übrigens der Fußboden in den Bahnen aus (Ooh-Kay, ich bin einfach aus Versehen auf den Auslöser gekommen^^)