Dies ist die Heimat der Java User Group Nürnberg.


Donnerstag, 14. August 2008

Vermeidung von Fehlern bei Java-Fallstricken in der Java User Group

In den Räumen der MATHEMA in Erlangen fand die erste Runde mit den Rätseln aus der Java-Welt statt. Bei unserem Vortrag ""Kaffeesatzlesung: Was tut dieser Codeblock eigentlich? - Vermeidung von Fehlern bei Java-Fallstricken" versuchten die Teilnehmer der JUG u.a. zu ergründen was folgender Codeblock tut:

public static void main(String[] args) {
System.out.println(3.00 - 1.10);
}

Na, wer weiss es?

Mittwoch, 13. August 2008

Hex and the City: Model View Controller

Mal wieder eine Ausgabe meiner Kolumne aus dem kostenlosen IT-Magazin KaffeeKlatsch:


In der heutigen Welt verschaffen sich Großteile der Bevölkerung1 Erleichterung des Freizeitstresses durch hypnotische Einwirkung von Fernsehsendungen. Kurz zum Wort Freizeitstress: es gibt tatsächlich viele Menschen, die mit ihrer Freizeit nichts anfangen können. Die trifft man meist morgens und abends auf der Arbeit, und sie sind beim Chef so lange gern gesehen, bis sie im Alleingang alles dermaßen „refactored“ haben, dass sich niemand mehr auskennt.


Die Fernsehsendungen, die sich hauptsächlich für eine kurzlebige Freizeitvernichtung eignen, sind meist davon gekennzeichnet, dass sie möglichst wenig zur Weiterbildung beitragen. Eher zur Fort-Bildung, womit an dieser Stelle explizit gemeint ist, dass die Bildung nach und nach verschwindet, die man sich vorher vielleicht (mehr oder weniger mühsam) angeeignet hat. Und unsere Gesellschaft tummelt sich mittlerweile auf der Basis eines solchen TV-Modells.


Tja, wir sind Modelle in der Informatik ja gewöhnt. Im Kleinen wie im Großen. Da gibt es Model Driven Architecture, oder das Model View Controller Konzept. Auch aus der Physik kennt man Modelle und nutzt sie um die Welt zu erklären. Was können wir aus dem Fernsehmodell lernen, bzw. damit erklären?


Man stelle sich an dieser Stelle eine der üblichen Castingshows vor, in dem Frauen2 auf Laufstegen laufen, vor tollen Landschaften oder auf Elefanten posieren, und zwischendurch in Interviews mit „interessanten“ Antworten für Gesprächsstoff in der Welt sorgen.


Und jetzt transformieren wir dieses Modell in die Informatik. Wichtig ist übrigens die Schreibweise von Model und Modell. Dieser Hinweis gilt nur um den Blick zu schärfen. Models werden auch des öfteren transformiert, lediglich wird dabei mehr das Konzept von Information Hiding angewendet.


In der Informatik gibt es Meta-Model oder Concrete-Model. Erstere dienen der abstrakteren Beschreibung von Models, also wie um zu sagen, die Soundso ist vom Typ her wie „Irgendein berühmterer Name der als abstraktes Model hinhalten muss“. Auch abstrakte Models können darüber hinaus sehr konkret sein. Ein konkretes Model ist somit eine Instanz des Typs den ein abstraktes Model vorgibt. Das muss man sich mal auf der Zunge zergehen lassen3.


Konkrete Models lassen sich ausführen. Um der Phantasie hier keinen Lauf zu lassen anbei ein beispielhafter Methodenname dafür: „executeModel“. So sieht der Wortlaut schon deutlich weniger mehrdeutig aus. Woher stammen konkrete Models denn eigentlich? Nun, woher schon. Natürlich aus der Model Factory. Factories dürften als Teil des Abstract Factory Patterns wohlbekannt sein. Hier werden konkrete Models nach abstrakten Vorbildern erzeugt. Um bei dem tranformierten Modell zu bleiben könnte man das Pattern auch in Laufstegschmiede umbenennen.

Was passiert mit einem erzeugten Model? Es will gesehen werden, dafür bieten sich in der Software-Entwicklung die sogenannten Views an. Im Modell vor der Transformation (der TV-Show falls jemand nicht mitkommt) sind das die allwöchentlichen Vorführungen der Teilnehmer vor Photosets, Werbefilmchen oder Modenschauen. Bei uns entspricht das dem Darstellen unserer Models in Webclients, RichGUIs und Kommandozeile/Konsolenausgabe. Die netten Kommentare mit abschließender Wertung und tränenbringender Entscheidung durch die überaus kritische4 Jury entsprechen die Abnahmetests der Fachbereiche. Und selbst da hab ich schon Situationen erlebt, wo es nicht weniger zickig zuging.


Hat ein Model seine Views fehlt noch ein/mehrere Controller. Der Controller sorgt für den Lebenszyklus des Models (essen mit optionalem undo, schlafen, posieren, (legale) Drogen), übernimmt Aufgaben wie Translate Model als Verantwortlicher für die Logistik und veranlasst weitere Model-Transformationen mit mehr oder weniger persistentem Ergebnis. Wen ein Model letztlich in der Phase „Model sucht Controller“ zugeteilt bekommt, hängt stark von der Art des Models ab, z.B. ob es sich bei dem konkreten Model eher um ein Simple oder ein Extended Model handelt. Ein wenig zählt da auch der Model Manager, oft der erste, der das Model ausführt. Controller und Manager entscheiden im Lebenszyklus gemeinsam, ob das Model um neuen Herausforderungen (an unsere Software) gerecht zu werden, Refactoring-Maßnahmen unterzogen wird. Das Model hat in der IT im Model View Controller Konzept dabei kein Mitspracherecht. Insgesamt hat es nur die Daten zu halten, die ihm gegeben wurden (sie keineswegs ohne Aufforderung durch Manager/Controller selbst zu ändern) und in der View nett auszuschauen. Sämtliche Manipulation hat es geduldig zu ertragen.


Womit man sieht, man kann alles aus dem Fernsehen lernen.


Was läuft denn noch so im Fernsehen? Nun, da wäre die eine Serie, in der Ermittler mit Hilfe von DNA-Analysen Morde aufklären. Oder die andere, in der andere ähnliche Ermittler Morde anhand von DNA-Analysen aufklären. Oder die, in denen Polizisten Morde aufklären, in dem sie Beweise sichten und versuchen mit DNA-Analyen den Täter zu finden.


Oder halt Sport. Aber zu den diesjährigen olympischen Spielen nur soviel: wenn der Gastgeber Doping im selben Maß bestraft wie freie Meinungsäußerung, werden wohl einige Sportler nicht mehr heimkehren.


Ich wünsche einen schönen Monat und vielleicht sieht man sich ja auf dem Herbstcampus.

1Interessanterweise aber niemand konkretes, da jeder immer sagt, er hat es selbst nicht gesehen – keine Ahnung woher die dann ihre Einschaltquoten haben. Vielleicht schauen unsere Fernseher ja heimlich von allein.*
* Andererseits ist die Antwort auf die Frage „Wie viele Menschen haben die Sendung gesehen“ wohl (wie immer) 42. Und da ja jeder Mensch jeden anderen Menschen über max. 6 Ecken kennt, spricht sich schnell herum, wer alles gestern grausig beim Casting vorgesungen hat oder welches der Model-Nachwuchs-Mädchen Bulimie hat

2Warum eigentlich keine Männer? Nicht, dass ich dazu keine Antwort hätte, aber jeder soll sich selbst Gedanken machen**
** Oder doch: vielleicht liegt es daran, dass so beide Geschlechter die Sendung schauen können. Der weibliche Zuschaueranteil um zu debattieren, diskutieren, erörtern und schlicht zu lästern, der männliche Zuschaueranteil um einfach nur zu schauen.

3Bitte nicht zu wörtlich nehmen.

4Leider selten selbstkritisch.