J and I and Me
2006-07-29
  AOP und dynamische Typisierung
Aspekt-orientierte Programmierung ist schon seit geraumer Zeit eigentlich ein Thema. Meiner Ansicht nach wird aber gerade durch die zunehmende Popularität dynamisch typisierter Sprachen die Sache interessanter. Einer der wesentlichen Vorteile ist eben, dass man auf Methoden-Aufrufe anders reagieren kann und dadurch einfacher generische Programme schreiben kann. Wenn man etwas ähnliches mit statischer Typisierung machen will, bleibt eigentlich nur AOP als Mittel der Wahl. Dazu gibt es hier einen recht interessanten Artikel, der zeigt, wie man ein DAO generisch bauen kann und dann bei bestimmten Methoden mit Hilfe einer Namenskonvention eine Hibernate-Query ausführen kann. Das entspricht in etwa dem, was Ruby on Rails mit dem Scaffolding auch anbietet.

Umso verwunderlicher oder dramatischer ist es, dass anscheinend bei vielen Entwicklern die Meinung vorherrscht, dass AOP irgendwie kompliziert und unhandhabbar ist. Das merkt man vor allem daran, dass es Spring-Projekte gibt, die in die Richtung gehen, dass sie zwar Spring verwenden wollen, aber nich AOP oder keine eigenen Aspekte schreiben wollen. Meiner Ansicht nach ist das Schreiben von Aspekten gerade mit Spring recht einfach und löst viele Probleme, die man sonst nicht vernünftig lösen könnte. Gerade bei Java EE Projekten entsteht sonst leicht eine Flut an Code, die kaum etwas sinnvolles tut. Beispiele sind oft Exception Handling, Security oder auch Transaktionen.

Daher ist es wichtig, dass AOP mit Spring recht einfach handhabbar ist und mit Spring 2.0 auch eine einfache Migration in Richtung AspectJ möglich ist. Komischerweise scheint aber dennoch die Hürde höher zu sein als jene für das Erlernen einer neuen Sprache. Vielleicht spielt es auch eine Rolle, dass AOP noch das Siegel eines "offiziellen" Standards fehlt. Aber gerade bei Programmiermodellen sind solche Standards nicht immer förderlich und mit Spring oder Struts gibt es auch gute Beispiele für Programmiermodelle, die sich etabliert haben, ohne dass sie Standards sind. Und am Ende kann Code, der mit AspectJ compiliert wurde, auf jeder JVM laufen, weil es eben ganz normaler Bytecode ist - in so fern hält sich AspectJ also auch an die Standards.

Schauen wir mal, wie es da weiter geht. Interface21 ist mit Adrian Colyer als AspectJ Lead und Ramnivas Laddad im Bereich AOP ganz gut aufgestellt.
 
Bookmark and Share
Comments:
Meine Meinung nach setzt sich AOP so schwer (langsam) durch, weil noch gut dokumentierte AOP-BestPractices und Methoden für AOP Analyse/AOP Design fehlen.
Man braucht Jahre ... Was jetzt zur diese Thema zu finden ist, kann anscheinend Software Architekten nicht überzeugen.
Vielleicht könnten Sie ein solches Buch schreiben ?
Oder der Aufwand zum Erlernen einer Technologie (z.Bsp. AspectJ, AspectJ + Spring 2.0) scheint relativ gross zu sein. (Was eigentlich stimmt).
Auf jeden Fall - man braucht dafür Mut und Zeit. Was manche (viele) Persone und manche (viele) Projekte einfach nicht haben.


Sergiy Safonov
 
Kommentar veröffentlichen

<< Home
J for Java | I for Internet, iMac, iPod and iPad | Me for me

ARCHIVES
Juni 2005 / Juli 2005 / August 2005 / September 2005 / Oktober 2005 / November 2005 / Dezember 2005 / Januar 2006 / Februar 2006 / März 2006 / April 2006 / Mai 2006 / Juni 2006 / Juli 2006 / August 2006 / September 2006 / Oktober 2006 / November 2006 / Dezember 2006 / Januar 2007 / Februar 2007 / März 2007 / April 2007 / Mai 2007 / Juni 2007 / Juli 2007 / August 2007 / September 2007 / Oktober 2007 / November 2007 / Dezember 2007 / Januar 2008 / April 2008 / Mai 2008 / Juni 2008 / August 2008 / September 2008 / November 2008 / Januar 2009 / Februar 2009 / März 2009 / April 2009 / Mai 2009 / Juni 2009 / Juli 2009 / August 2009 / September 2009 / Oktober 2009 / November 2009 / Dezember 2009 / Januar 2010 / Februar 2010 / März 2010 / April 2010 / Mai 2010 / Juli 2010 / August 2010 / Oktober 2010 / Januar 2011 / Februar 2011 / März 2011 / April 2011 / Mai 2011 / Juni 2011 / August 2011 / September 2011 / November 2011 / Februar 2012 / April 2012 / Mai 2012 / April 2013 / Mai 2013 / Juni 2013 / Januar 2015 / Juli 2015 / Februar 2016 /

Links

Twitter
Google +
Slideshare
Prezi
XING
LinkedIn
Das Spring Buch


Feeds

Feedburner


Impressum
Betreiber und Kontakt:
Eberhard Wolff
Leobschützer Strasse 22
13125 Berlin
E-Mail-Adresse: eberhard.wolff@gmail.com

Verantwortlich für journalistisch-redaktionelle Inhalte:
Eberhard Wolff