Sollte ich beim Erstellen einer Anwendung von Grund auf mit dem objektorientierten Modell (OO) oder dem Entity-Relationship-Modell (ER) beginnen?
Sollte ich beim Erstellen einer Anwendung von Grund auf mit dem objektorientierten Modell (OO) oder dem Entity-Relationship-Modell (ER) beginnen?
Antworten:
Vielleicht möchten Sie versuchen, das Prinzip der Verzögerung von Architekturentscheidungen so lange wie möglich einzuhalten. Der Gedanke ist, dass Sie in Zukunft mehr über Ihre Problemdomäne wissen werden als jetzt - daher sind alle Entscheidungen, die Sie heute treffen, verdächtig.
Ein weiteres gutes Prinzip, um dies zu kombinieren, könnte sein, zuerst zu versuchen, die riskantesten Teile Ihrer Anforderungen zu versuchen - der Gedanke ist, dass Sie, wenn Sie die einfachen Teile machen, dann feststellen, dass die riskanten Teile Sie in eine andere Richtung bewegen, dies nicht tun die einfachen Teile zu wiederholen. Riskant bedeutet hier Dinge, bei denen Sie sich nicht sicher sind, wie Sie sie tun sollen.
Angesichts dieser beiden Faktoren und der Tatsache, dass ich häufig versuche, Dinge aus einer OO-Perspektive zu betrachten, könnten Sie versuchen, zuerst mit einem OO-Modell der riskantesten Teile Ihrer Anwendung zu beginnen und eine möglichst geringe Menge an Code zu implementieren, die die Anforderungen erfüllt riskante Anforderungen. Erweitern Sie dann Ihr OO-Modell nach Bedarf, um die Funktionen hinzuzufügen, die Sie benötigen. Währenddessen können Sie Ihre Entscheidung über die Verwendung von SQL oder NoSQL oder Flatfiles oder Cloud-Speicher oder was auch immer vollständig verzögern ... und Sie werden möglicherweise feststellen, dass Sie überhaupt keine relationale Beziehung wünschen (wodurch die Notwendigkeit eines ER-Modells entfällt).
Das ER-Modell bestimmt, wie die Daten der Anwendung beibehalten werden, und das OO-Modell entscheidet, wie dieselben Daten im Speicher gespeichert werden oder während die Anwendung ausgeführt wird. Das Datenbankschema-Design (ER-Modell) und das Klassenstruktur-Design (OO-Modell) sind also verwandte Entwurfsüberlegungen und können normalerweise sogar gleichzeitig berücksichtigt werden. Wenn Sie ein ORM- Tool (Object Relational Mapping) verwenden, sind Ihr ER-Modell und Ihr OO-Modell möglicherweise identisch. Mit anderen Worten, Ihre Klassen (OO-Modell) können so mit Anmerkungen versehen werden, dass sie selbst das ER-Modell angeben.
Stellen Sie jedoch vor dem Entwerfen sicher, dass Sie eine sehr gute Vorstellung von den tatsächlichen Anforderungen der Software haben, wofür sie verwendet wird, wie sie verwendet wird und wer sie verwendet. Viele Entwickler beginnen, über Entwurfsentscheidungen nachzudenken, bevor sie die Anforderungen des Produkts vollständig verstehen, und erhalten ein Design, das für den eigentlichen Zweck der Anwendung nicht geeignet ist.