14 Februar 2015

Dependency Injection – Konstruktor oder Property?

Dependency Injection hat sich durchgesetzt. Das muss also nicht mehr diskutiert werden. Es gibt zwar noch alte Projekte, die anders arbeiten (davon gibt es massig, denn auch in der Vergangenheit waren wir Programmierer ja nicht faul sondern haben Software geschrieben) – aber neuere Entwicklungen kommen selten ohne aus.

Leider gibt es noch oft Diskussionen, ob die DI via Property (also Setter-Methoden) oder den Konstruktor gehen soll. In den meisten Softwareprojekten sieht man ausschließlich Property-Injection (also einen Default-Konstruktor sowie ganz viele Setter). Dabei wird leider eine aus meiner Sicht grundlegende Regel vergessen: nach dem Konstruktor soll das Objekt minimal lauffähig sein. Dass heißt, dass alle verpflichtenden Informationen vorhanden sein müssen.

Oder anders ausgedrückt: in den seltensten Fällen ist ein Default-Konstrutor ausreichend für ein funktionierendes Objekt. Demnach spricht vieles für eine konstruktorbasierte DI.

Aber auch hier greift es zu kurz: der Konstruktor sollte ein minimal lauffähiges Objekt erzeugen. Und einige DI-Dependencies werden hier nicht benötigt. Diese Abhängigkeiten sollen also nicht in den Konstruktor. Und da spricht ja auch nichts dagegen: die absolut notwendigen Abhängigkeiten kommen in den Konstruktor, die optionalen Abhängigkeiten in Properties.

Oft wird angeführt, dass das weit verbreitete (und oft auch von mir genutzte) Spring-Framework keine Konstruktor-DI unterstützen würde oder die Entwickler von Konstruktor-DI abraten würden, aber wie der Blogeintrag http://spring.io/blog/2007/07/11/setter-injection-versus-constructor-injection-and-the-use-of-required/ schon 2007 beschrieb, sehen das unsere  Kollegen von Pivotal auch so wie hier beschrieben.

Voilà, das Problem ist sauber gelöst. Ohne Religionskrieg.

25 März 2010

Chefs sind nicht zum Kuscheln da …

Die Unternehmenskultur unterscheidet sich von Unternehmen zu Unternehmen. Bei Unternehmen, die von ihrem Inhaber geführt werden, entspricht die Führungskultur oft dem Naturell des Unternehmers.

Bei größeren Unternehmen (besonders in Konzernen) entwickelt sich über die Jahre eine eigene Kultur, die nur sehr schwer zu ändern ist. In einigen Unternehmen wird „gekuschelt“ (alle versuchen, dem jeweils anderen zu helfen), bei anderen Unternehmen wird scharf geschossen und Gewinner ist, wer den Schwarzen Gürtel im Verwaltungsdreikampf hat.

Weiterlesen

25 März 2010

Das Wort zum Sonntag

Es gibt ein paar Menschen, mit denen ich mich gerne unterhalte. Und oft ist es reiner Unsinn, den wir dann zusammenspinnen. Aber manchmal kommen echte Perlen zum Vorschein.

Und gestern schlug ein Kollege vor, daß man diese Perlen eigentlich publizieren müßte – zum Beispiel als Blog. Da ich sehr viel von ihm und seinen Ideen halte, dachte ich mir: Roland, das machst Du.

Ich werde also in loser Folge Gedanken zu Organisation von Firmen, dem Berufsleben und dem Universum, dem Leben und dem ganzen Rest hier veröffentlichen. Keine großgeistigen Dinge, aber Weisheiten und Binsenweisheiten, bei denen ich mich frage, ob ich ein solcher Spinner bin oder ob das viele andere Menschen einfach nicht wahrnehmen.

Vielleicht interessiert es ja jemanden.