27 Januar 2017

Unter Meine Datenbank gehört mir schreibt Eberhard Wolff darüber, dass Module nicht ein Datenbankschema teilen sollten. Stattdessen sollte jedes Modul ein eigenes Datenbankschema verwenden. Er begründet das mit dem Konzept des Information Hidings, das nicht nur für Klassen gelte.

Das hört aus meiner Sicht natürlich nicht bei der Datenbank auf, sondern gilt auch auf allen anderen Ebenen. Informationen, die fachlich nichts miteinander zu tun haben, gehören nicht in ein Modul und auch nicht in einen Strukturbaum. Einen solchen Strukturbaum gibt es bei Entitätsklassen. Zwei Strukturbäume ließen sich einfach über bidirektionale Beziehungen verknüpfen. Das sollte unbedingt vermieden werden, weil auch hier die Änderbarkeit leidet. Dass wir Daten in verschiedenen Klassen oder Tabelllen unterbringen, gehört zum Alltag eines Software-Entwicklers.

Diese geschickte Trennung von Informationen gehört zum Software Engineering und basiert immer auf der Fachlichkeit. Das Konzept lässt sich nicht nur auf Klassen anwenden, sondern eben auch auf Module. Meine Erfahrung ist bisher leider, dass sich viele Entwickler mit der Fachlichkeit kaum auseinandersetzen wollen. Diesen Entwicklern Entscheidungen basierend auf der Fachlichkeit zu erläutern ist oft schwierig. Problematisch wird es, wenn diese Entscheidungen ignoriert werden. Umso wichtiger ist es für Software-Entwickler, sich nicht nur mit den neuesten Techniken zu beschäftigen, sondern einen genauen Blick auf die Fachlichtkeit zu werfen. Meine Erfahrung ist nämlich auch, dass man mit Wissen über die Fachlichkeit, Systeme viel einfacher umsetzen kann.