 |
AppletTalk.com Java discussions newsgroups
|
| View previous topic :: View next topic |
| Author |
Message |
Olaf Eilers Guest
|
Posted: Tue May 08, 2007 7:23 pm Post subject: IOC Container!? |
|
|
Hallo,
ich bin endlich angefangen umzustellen auf JAVA 5 (oder sind die schon
bei 6?) und überlege mir, ob ich mich auch in einen der IOC Container
einarbeiten soll. IOC scheint ja inzwischen gross in Mode zu sein, sogar
Google hat inzwischen einen herausgebracht. Allerdings ist mir immer
noch nicht der Sinn klar geworden.
Was sind eigentlich die Vorteile eines IOC Containers?
Bringt es mehr Übersichtlichkeit in den Code?
Hat man weniger Tipparbeit?
Ist der Code verständlicher?
Benutzt jemand solch einen IOC Container produktiv, wenn ja welchen?
Danke für eure Antworten.
Gruss,
Olaf
--
Meteorabsturz privat gefilmt. Wow.
http://www.lustitsch.com/meteor-sturzt-vom-himmel/ |
|
| Back to top |
|
 |
Johann Burkard Guest
|
Posted: Tue May 08, 2007 8:59 pm Post subject: Re: IOC Container!? |
|
|
Olaf Eilers wrote:
| Quote: | Was sind eigentlich die Vorteile eines IOC Containers?
|
man kommuniziert mit den meisten Klassen über ihr Interface.
| Quote: | Bringt es mehr Übersichtlichkeit in den Code?
|
Ja, weniger Instanziierungen.
| Quote: | Hat man weniger Tipparbeit?
|
Ja, Abhängigkeiten werden i.A. automatisch eingefüllt.
| Quote: | Ist der Code verständlicher?
|
Da es einfacher wird, nur gegen Interfaces zu programmieren, ja.
| Quote: | Benutzt jemand solch einen IOC Container produktiv, wenn ja welchen?
|
Ja, PicoContainer und Spring. PicoContainer ist gerade so das Minimum,
reicht aber durchaus, wenns nur ein IoC-Container sein soll.
Johann
--
Das Kontinuum des Lichts wird in Lichtpartikel gebrochen. Denn
Licht ist die vollstaendige Manifestation der Energie, die aus der
Schwingung des Gedankens besteht.
(*Tönnes (immer noch auf LSD?) in <ck3a1i$boi$05$6 (AT) news (DOT) t-online.com>) |
|
| Back to top |
|
 |
Guest
|
Posted: Tue May 08, 2007 9:38 pm Post subject: Re: IOC Container!? |
|
|
On 8 Mai, 17:59, Johann Burkard <johannburk...@nexgo.de> wrote:
| Quote: | Olaf Eilers wrote:
Was sind eigentlich die Vorteile eines IOC Containers?
man kommuniziert mit den meisten Klassen über ihr Interface.
|
In Eclipse in den anderen Code navigieren und im Interface landen.
Schönen Dank aber auch.
| Quote: | Bringt es mehr Übersichtlichkeit in den Code?
Ja, weniger Instanziierungen.
|
'new' ist ganz schön unübersichtlich.
| Quote: | Hat man weniger Tipparbeit?
Ja, Abhängigkeiten werden i.A. automatisch eingefüllt.
|
Schreibt auch jemand das XML automatisch ?
Wer validiert und testet das ?
Gibt es auch schöne kryptische Fehlermeldungen bei miss-Konfig ?
| Quote: | Ist der Code verständlicher?
Da es einfacher wird, nur gegen Interfaces zu programmieren, ja.
|
Was ist daran einfacher als gegen konkrete Klassen ?
| Quote: | Benutzt jemand solch einen IOC Container produktiv, wenn ja welchen?
Ja, PicoContainer und Spring. PicoContainer ist gerade so das Minimum,
reicht aber durchaus, wenns nur ein IoC-Container sein soll.
Johann
|
Man wird animiert den Code loser zu koppeln, damit man ihn besser
testen kann.
Das geht aber auch ohne Container.
Meistens bieten die auch noch Log und Trace an den Einschleusstellen.
Man kann aber so was aber auch selbst einbauen.
Bestimmte Services wie Persistenz lassen sich einschleusen.
Aber eine Mock-Persistenzschicht anstatt einer echten
Persistenzschicht
kann man auch in eigenen Test-Klasen in die Fachklassen einstöpseln.
--
Heiner
www.heinerkuecker.de |
|
| Back to top |
|
 |
Steffen Ramlow Guest
|
Posted: Wed May 09, 2007 12:11 am Post subject: Re: IOC Container!? |
|
|
mail (AT) heinerkuecker (DOT) de wrote:
| Quote: | In Eclipse in den anderen Code navigieren und im Interface landen.
Schönen Dank aber auch.
|
Jede Medaille hat halt zwei Seiten. Die Vorteile der Entkopplung durch
Interfaces überwiegen m.E. aber deutlich. Und spätestens wenn es mehr als
eine Implementierung gibt (du hast ja selbst die Mock-Schicht angeführt),
kommt man nicht dran vorbei.
| Quote: | 'new' ist ganz schön unübersichtlich.
|
I.d.R. bleibt es ja nicht bei einem simplen new. Die Initialisierung kann
sehr aufwändig sein.
| Quote: | Schreibt auch jemand das XML automatisch ?
|
Vieles erledigen die Frameworks über Konventionen, sodass man im XML
nichts/weniger schreiben muss.
Alternativ Annotationen oder IDE-gestützte XML-Editoren, inkl. CodeComplete.
| Quote: | Wer validiert und testet das ?
Gibt es auch schöne kryptische Fehlermeldungen bei miss-Konfig ?
|
Spring ist hier extrem vorbildlich. Hier ist es oft so: Exception Foo
occurred. Bar correctly set?
| Quote: | Da es einfacher wird, nur gegen Interfaces zu programmieren, ja.
Was ist daran einfacher als gegen konkrete Klassen ?
|
Interfaces zeigen dir nur das, was das Domänenmodell nötig macht und
belästigen dich nicht mit öffentlichen Settern/Gettern/Konstruktoren/etc.
| Quote: | Benutzt jemand solch einen IOC Container produktiv, wenn ja welchen?
|
Ich nur Spring.
| Quote: | Man wird animiert den Code loser zu koppeln, damit man ihn besser
testen kann.
Das geht aber auch ohne Container.
|
Klar, aber dann baust du dir dein eigenes DI/IOC-Framework. Wozu?
| Quote: |
Meistens bieten die auch noch Log und Trace an den Einschleusstellen.
Man kann aber so was aber auch selbst einbauen.
|
Dito.
Ich nutze lieber AOP, als mir selbst was aus den Rippen zu schneiden.
Ferner sollte man mal anmerken, dass es ja i.A., zumindest bei Spring, nicht
beim DI/IOC bleibt. Da kommen noch viele andere Vorteile hinzu.
--
Turbine from hell
http://www.youtube.com/watch?v=HKOivVnoC3Y |
|
| Back to top |
|
 |
Stefan Matthias Aust Guest
|
Posted: Wed May 09, 2007 7:13 am Post subject: Re: IOC Container!? |
|
|
Olaf Eilers schrieb:
| Quote: | ich bin endlich angefangen umzustellen auf JAVA 5 (oder sind die schon
bei 6?)
|
Bei 6. Überspringe Java 5, wenn du nicht auf Mac-Support angewiesen
bist. Apple ist leider nicht in der Lage, mit der wirklich nichit
schnellen Entwicklung von Sun mitzuhalten und hat immer noch kein Java 6
herausgegeben.
| Quote: | und überlege mir, ob ich mich auch in einen der IOC Container
einarbeiten soll. IOC scheint ja inzwischen gross in Mode zu sein, sogar
Google hat inzwischen einen herausgebracht. Allerdings ist mir immer
noch nicht der Sinn klar geworden.
|
Kennst du http://www.martinfowler.com/articles/injection.html ?
| Quote: | Was sind eigentlich die Vorteile eines IOC Containers?
|
Entkopplung der Programmteile und bessere Testbarkeit.
| Quote: | Bringt es mehr Übersichtlichkeit in den Code?
|
Wenn man schafft, kleine unabhängige Teile zu erzeugen, IMHO schon.
| Quote: | Hat man weniger Tipparbeit?
|
Nein (jedenfalls nicht bei Spring, für Guice kann ich's nicht sagen)
| Quote: | Ist der Code verständlicher?
|
Ohne IDE, die z.B. Spring genug versteht, um dir zu sagen, was so
benutzt wird, wird es IMHO schwerer, das "Big Picture" zu sehen. Dafür
haben kleine, eigenständige, testbare Klassen auch einen Vorteil.
| Quote: | Benutzt jemand solch einen IOC Container produktiv, wenn ja welchen?
|
Ich: Spring.
--
Stefan Matthias Aust |
|
| Back to top |
|
 |
Raffael Herzog Guest
|
Posted: Thu May 10, 2007 6:40 am Post subject: Re: IOC Container!? |
|
|
Patrick Hess schrieb:
| Quote: | Raffael Herzog wrote:
HiveMind mit einem Aufsatz. HiveMind ist IMHO mit Abstand der beste
IoC-/DI-Container. Ich habe noch einen Aufsatz darauf gebaut, der es
ermöglicht, wirklich "Plugin-Orientiert" zu programmieren (jedes
Plugin ist ein eigenes kleines VFS, kann also weitere Resourcen
mitbringen, die von anderen Plugins auch gescannt werden können) und
eine vernünftiges ClassLoader-Konzept hinzufügt, das ein wenig an
OSGi erinnert, und noch einige andere Dinge.
Hört sich sehr interessant an, hast Du das veröffentlicht oder planst
Du das?!
|
Ja, das ist öffentlich. Ich muss euch jedoch warnen: Dokumentation ==
Null.
HiveApp (den eigentlichen Aufsatz, den ich erwähnt habe) findet man
hier:
https//scm.ops4j.org/repos/ops4j/laboratory/users/raffael/hiveapp/trunk/hiveapp
Um das Build-Problem zu lösen, gibt's das hier:
https://scm.ops4j.org/repos/ops4j/laboratory/users/raffael/hiveapp/trunk/hiveapp-maven
Wenn ich auch HiveApp inzwischen auch für andere Dinge benutze, es gibt
einen einzigen klaren Grund, warum ich das überhaupt gebaut habe:
https://scm.ops4j.org/repos/ops4j/laboratory/users/raffael/Loom/trunk
Zur Erklärung des letzten Links:
http://lists.ops4j.org/pipermail/general/2007q2/001864.html
In dieser Mail bereits erwähnt, aber dennoch herauszustreichen:
http://lists.ops4j.org/pipermail/general/2007q2/001587.html
Um sich den Mist mal anzusehen (leider noch ohne Garantie, dass es "from
Scratch" läuft):
http://lists.ops4j.org/pipermail/general/2007q2/001909.html
Ach ja, eine Wiki-Seite dazu gibt's auch noch, wenn die auch nicht mehr
ganz aktuell ist:
http://wiki.ops4j.org/confluence/display/ops4j/Loom
Gruss,
Raffi
--
Come to think of it, there are already a million monkeys on a million
typewriters, and Usenet is *nothing* like Shakespeare!
herzog (AT) raffael (DOT) ch · PGP Key 5D1FF5F4 · http://www.raffael.ch/ |
|
| Back to top |
|
 |
Johann Burkard Guest
|
Posted: Thu May 10, 2007 9:04 pm Post subject: Re: IOC Container!? |
|
|
mail (AT) heinerkuecker (DOT) de wrote:
| Quote: | On 8 Mai, 17:59, Johann Burkard <johannburk...@nexgo.de> wrote:
man kommuniziert mit den meisten Klassen über ihr Interface.
In Eclipse in den anderen Code navigieren und im Interface landen.
Schönen Dank aber auch.
|
Deine Tastatur hat keine F4-Taste?
| Quote: | Ja, weniger Instanziierungen.
'new' ist ganz schön unübersichtlich.
|
New nicht, aber, wo man es überall in welchem Kontext ausführt.
| Quote: | Ja, Abhängigkeiten werden i.A. automatisch eingefüllt.
Schreibt auch jemand das XML automatisch ?
|
Wer redet von XML?
| Quote: | Wer validiert und testet das ?
|
Dein IoC-Container spätestens beim Starten.
| Quote: | Gibt es auch schöne kryptische Fehlermeldungen bei miss-Konfig ?
|
Das hängt von der Konfiguration deines IoC-Containers ab.
| Quote: | Da es einfacher wird, nur gegen Interfaces zu programmieren, ja.
Was ist daran einfacher als gegen konkrete Klassen ?
|
Du lernst, dich auf das im Interface beschriebene Verhalten zu verlassen.
Du kannst Interfaces schreiben, die sie auf das Wesentliche
konzentrieren und Sachen wie Konfiguration in Klassen verstecken.
Johann
--
Ich untersage Dir hiermit, mich in Deinen Postings zu zitieren. Sei es
als Signatur oder sonstwas. Es unterbleibt. Punkt.
(Detlef Bosau in <news:f1so3t$15d9$1@geiz-ist-geil.priv.at>) |
|
| Back to top |
|
 |
|
|
You cannot post new topics in this forum You cannot reply to topics in this forum You cannot edit your posts in this forum You cannot delete your posts in this forum You cannot vote in polls in this forum
|
|