Frameworks und das Dependency Inversion Principle (DIP)

Nein, das ist kein Bild von Gipf-Oberfrick sondern...
Beitrag erstellt am:08.08.17
Die technische Basis unserer Systeme ist alles andere als stabil: Die Zahl der verfügbaren Frameworks, Standards und Produkte ist gross. Sie kommen in unterschiedlichen Reifegraden auf den Markt, sind einem steten Wandel unterworfen und verschwinden teilweise ebenso rasch von der Bildfläche wie sie aufgetaucht sind. Die Anwendungen, die auf ihnen basieren, sind dagegen oft wesentlich länger im Einsatz und müssen entsprechend viele Jahre gewartet und weiterentwickelt werden.

Es ist daher ratsam, unsere Systeme nicht um ein bestimmtes Produkt, eine technische Norm oder ein bestimmtes Framework herum aufzubauen. Andernfalls handeln wir uns Abhängigkeiten ein, welche die Wartung des Systems erschweren oder gar verunmöglichen. Viele Software-Systeme haben eine Lebensdauer von vielen Jahren, oft 10, 20 oder mehr. In dieser Zeit ändern sowohl die fachlichen als auch die technischen Anforderungen, jedoch in einem je eigenen Rhythmus; wir unterliegen hierbei zwei getrennten Innovationszyklen. Daher streben wir eine möglichst gute Trennung zwischen Anwendung und Technik an; genau dies ist einer der zentralen Gedanken hinter den sog. Software-Kategorien (mehr hierzu in einem späteren Beitrag), die Johannes Siedersleben in seinem nach wie vor lesenswerten Buch Moderne Software-Architektur beschreibt. Letztlich folgt die konsequente Trennung der fachlichen und technischen Belange aus dem Dependency Inversion Principle (DIP): Wir halten unsere fachlichen Abstraktionen konsequent frei von den technischen Details konkreter Frameworks und Produkten.