Ja, ja ich habe
Ich habe über dieses Thema lange geschwiegen; Es ist Zeit, sich zu äußern.
- Hat jemand versucht, dieses Konzept auf das Objektdesign anzuwenden?
Ja. Ich arbeite seit über 20 Jahren an der Formalisierung der Objektnormalisierung (und damit der zugrunde liegenden objektorientierten Theorie).
Durch die Erkenntnis, dass Daten und Code zumindest theoretisch austauschbar sind. Dies bedeutet, dass die Prinzipien der Normalisierung und der relationalen Operationen sowohl für Code als auch für Daten gelten können.
Bisher hat es ziemlich gut geklappt - ich glaube, die gewonnenen Erkenntnisse waren die "Geheimwaffen" meiner Fähigkeiten in den Bereichen Design, Analyse und Refactoring.
Ich habe darüber vorher noch nichts öffentlich gesagt, weil ich dachte, dass ich irgendwann Zeit haben würde, die Recherche abzuschließen - und die implizierten Werkzeuge selbst zu produzieren.
Aber ich bin zu dem Schluss gekommen, dass ich mit allem anderen, was in meinem Leben passiert, was wichtiger, lustiger und / oder rentabler ist, nicht die Zeit habe, die Forschung selbst abzuschließen. Je. Es besteht auch die erhebliche Möglichkeit, dass ich einfach nicht die erforderliche CS-theoretische Grundlage habe, um die Arbeit alleine zu erledigen.
Ich habe an der örtlichen Universität nachgefragt, ob ich einen oder zwei Doktoranden unterstützen möchte, wenn sie sich der Sache annehmen möchten, aber leider lehrt unsere örtliche Universität keine angemessene Grundlage für die Semantik von Programmiersprachen.
Es gab einige interessante Untersuchungen auf diesem Gebiet, aber alles, was mir bekannt ist, hat die Marke verfehlt. Entweder wird fälschlicherweise davon ausgegangen, dass die Normalisierung nicht für objektorientierte Modelle gilt, da sie aus einem relationalen Hintergrund stammt, oder es wird davon ausgegangen, dass die Normalisierung nur für die von Objekten definierten Daten gilt. Es gibt jedoch einige sehr interessante Near-Miss-Projekte ...
Das wirklich Interessante passiert, wenn Sie den Code normalisieren - was meiner Meinung nach die Grundlage für alle Umgestaltungen ist .
Jetzt denke ich, dass es das Beste ist, das Wort zu ergreifen, indem man vielleicht bittet, auf den DevDays 2011 in DC zu sprechen und herauszufinden, ob es eine Community gibt, die von diesem Zeug so begeistert ist wie ich.
Hier ein kleiner Vorgeschmack: Normalisierung ist der Prozess, etwas Minimales und Nicht-Redundantes zu machen. Das Don't Repeat Yourself (DRY) -Prinzip der objektorientierten Programmierung ist daher eine klare Manifestation der Ziele der Normalisierung. Ich glaube, ich kann zeigen, dass alle bekannten objektorientierten Entwurfs- / Programmierungs- / Umgestaltungsprinzipien die logische Folge der Objektnormalisierung sind. Ich denke, ich kann auch zeigen, dass es mit Systemen in Object Normal Form (ONF) interessantere Dinge gibt, als nur das Refactoring.