Si, si tengo
Me he mantenido callado sobre este tema durante mucho tiempo; Es hora de hablar.
- ¿Alguien ha tratado de aplicar este concepto al diseño de objetos?
Sí. Llevo más de 20 años trabajando en la formalización de la normalización de objetos (y, por lo tanto, en la teoría subyacente orientada a objetos).
Al darse cuenta de que los datos y el código son intercambiables, al menos en teoría. Esto significa que los principios de normalización y las operaciones relacionales pueden aplicarse tanto al código como a los datos.
Hasta ahora funcionó bastante bien: creo que las ideas obtenidas han sido las "armas secretas" de mis habilidades de diseño, análisis y refactorización.
No he dicho nada al respecto públicamente antes de esto porque pensé que eventualmente tendría tiempo para terminar la investigación, y producir las herramientas implícitas, yo mismo.
Pero he llegado a la conclusión de que con todo lo que sucede en mi vida que es más importante, más divertido y / o más rentable, no voy a tener tiempo para terminar la investigación yo mismo. Siempre. También existe la posibilidad significativa de que simplemente no tenga los fundamentos teóricos de CS necesarios para completar el trabajo solo.
He preguntado en la universidad local acerca de patrocinar a un candidato a doctorado o dos si desean abordar la causa, pero lamentablemente nuestra universidad local no enseña una base adecuada en la programación de la semántica del lenguaje.
Ha habido algunas investigaciones interesantes en esta área, pero todas, que yo sepa, no han alcanzado el objetivo. O supone incorrectamente que, debido a que la normalización proviene de un fondo relacional, no se aplica a los modelos orientados a objetos, o supone que la normalización solo se aplica a los datos definidos por los objetos. Sin embargo, hay algunos proyectos muy interesantes para fallar ...
Las cosas realmente interesantes suceden cuando aplicas la normalización al código, lo que diría que es la base de toda refactorización .
Así que ahora estoy pensando que lo mejor que se puede hacer es correr la voz, tal vez pidiendo hablar en DevDays 2011 en DC, y descubrir si hay una comunidad tan entusiasmada con estas cosas como yo.
Aquí hay un adelanto: la normalización es el proceso de hacer algo mínimo y no redundante. El principio Don't Repeat Yourself (DRY) de la programación orientada a objetos es, por lo tanto, una clara manifestación de los objetivos de la normalización. Creo que puedo demostrar que todos los conocidos principios de diseño / programación / refactorización orientados a objetos son la consecuencia lógica de la normalización de objetos. Creo que también puedo mostrar que hay cosas más interesantes que se pueden hacer con los sistemas en Forma Normal de Objetos (ONF) que la simple refactorización.