Oui, oui j'ai
Je suis resté silencieux sur ce sujet depuis longtemps; il est temps de parler.
- Quelqu'un a-t-il essayé d'appliquer ce concept à la conception d'objets?
Oui. Je travaille sur la formalisation de la normalisation des objets (et donc la théorie sous-jacente orientée objet) depuis plus de 20 ans.
En réalisant que les données et le code sont interchangeables, du moins en théorie. Cela signifie que les principes de normalisation et les opérations relationnelles peuvent s'appliquer aussi bien au code qu'aux données.
Jusqu'à présent, cela a plutôt bien fonctionné - je pense que les connaissances acquises ont été les «armes secrètes» de mes capacités de conception, d'analyse et de refactorisation.
Je n'ai rien dit à ce sujet publiquement avant cela parce que je pensais que finalement j'aurais le temps de terminer la recherche - et de produire les outils impliqués - moi-même.
Mais je suis arrivé à la conclusion qu'avec tout ce qui se passe dans ma vie qui est plus important, plus amusant et / ou plus rentable, je ne vais pas avoir le temps de terminer la recherche moi-même. Déjà. Il y a aussi la possibilité importante que je n'ai tout simplement pas la base théorique CS requise pour terminer le travail seul.
Je me suis renseigné auprès de l'université locale sur le parrainage d'un ou de deux doctorants s'ils aimeraient défendre la cause, mais hélas, notre université locale n'enseigne pas une base adéquate en programmation de sémantique linguistique.
Il y a eu des recherches intéressantes dans ce domaine, mais toutes - à ma connaissance - n'ont pas été à la hauteur. Soit il suppose à tort que la normalisation provenant d'un arrière-plan relationnel ne s'applique pas aux modèles orientés objet, soit elle suppose que la normalisation ne s'applique qu'aux données définies par les objets. Il existe cependant des projets presque intéressants très intéressants ...
Le truc vraiment intéressant se produit lorsque vous appliquez la normalisation au code - ce qui, selon moi, est le fondement de toute refactorisation .
Alors maintenant, je pense que la meilleure chose à faire est de faire passer le mot, peut-être en demandant à parler aux DevDays 2011 à DC, et à savoir s'il existe une communauté aussi excitée par ce genre de choses que moi.
Voici un aperçu: la normalisation est le processus de création de quelque chose de minimal et de non redondant. Le principe Don't Repeat Yourself (DRY) de la programmation orientée objet est donc une manifestation claire des objectifs de normalisation. Je pense pouvoir montrer que tous les principes bien connus de conception / programmation / refactorisation orientée objet sont la conséquence logique de la normalisation des objets. Je pense que je peux aussi montrer qu'il y a des choses plus intéressantes qui peuvent être faites avec des systèmes en forme normale d'objet (ONF) que le simple refactoring.