Gute Erklärung zu Dependency Injection

Vor einiger Zeit musste ich lachen, als ich diesen Comic bei Geek&Poke zum Thema Dependency Injection gesehen habe: The Geek&Poke Pattern Weekend. Ich stellte mir gleich die Frage, ob meine Auszubildenden wohl auch darüber lachen würden, also ob sie die Hintergründe des Comics verstehen.

Damals habe ich direkt diesen netten Artikel mit einem Leseauftrag an sie verschickt: An Absolute Beginner’s Tutorial on Dependency Inversion Principle, Inversion of Control and Dependency Injection. Dort werden wie der Titel schon andeutet die drei Begriffe Dependency Inversion, Inversion of Control und Dependency Injection erklärt und anhand eines Beispiels verdeutlicht.

Vor Kurzem hat mir mein Azubi dann noch diesen Artikel geschickt: Was ist eigentlich… Dependency Injection (DI)?. Er erläutert den Begriff Dependency Injection noch ein wenig greifbarer, wie ich finde. Das Beispiel mit Gärtner, Lehrling und Schaufel ist gut nachvollziehbar.

In diesem Artikel wird noch einmal deutlich der Unterschied zwischen Dependency Inversion und Dependency Injection hervorgehoben und sehr ausführlich erklärt: Dependency Injection Is NOT The Same As The Dependency Inversion Principle.

Und zuletzt darf natürlich der Originalartikel vom „Erfinder“ Uncle Bob nicht fehlen: The Dependency Inversion Principle. Unabhängig von Ausbildungsstand und Programmiersprache in diesem Zusammenhang meine klare Empfehlung zur Lektüre von Clean Code*. Nicht unbedingt prüfungsrelevant, aber ein unverzichtbares Buch für eure Entwicklerpraxis. Dieses Buch hat mein Leben verändert (und enthält auch einen Abschnitt über Dependency Injection 😉 ).

Clean Code: A Handbook of Agile Software Craftsmanship (Robert C. Martin)*

Falls ihr euch auf das Thema DI vorbereiten wollt, kann ich die obigen Links wärmstens empfehlen. Solltet ihr z.B. ein DI-Framework in eurem Abschlussprojekt verwenden (was insb. bei Java EE heute schon Standard ist), dann solltet ihr den Begriff auf jeden Fall im Fachgespräch erklären können. Nichts ist peinlicher als nicht zu wissen, mit welchen Werkzeugen man sein Projekt umgesetzt hat (und Punktabzug gibt es auch noch dafür).

Setzt ihr Dependency Injection bei eurer täglichen Arbeit ein? Wenn ja, „handgemacht“ oder mit einem Framework?

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.

To create code blocks or other preformatted text, indent by four spaces:

    This will be displayed in a monospaced font. The first four 
    spaces will be stripped off, but all other whitespace
    will be preserved.
    
    Markdown is turned off in code blocks:
     [This is not a link](http://example.com)

To create not a block, but an inline code span, use backticks:

Here is some inline `code`.

For more help see http://daringfireball.net/projects/markdown/syntax