![]() ![]() This started as a comment on Rein Henrichs excellent answer, but got too long. I think I can also show that there are more interesting things that can be done with systems in Object Normal Form (ONF) than just refactoring. I believe I can show that all of the well-known object-oriented design/programming/refactoring principles are the logical consequence of object normalization. The Don't Repeat Yourself (DRY) principle of object-oriented programming is therefore a clear manifestation of the goals of normalization. Here's a sneak peek: Normalization is the process of making something minimal and non-redundant. So now I'm thinking that the best thing to do is to get the word out, perhaps by asking to speak at DevDays 2011 in DC, and find out if there is a community as excited by this stuff as I am. ![]() The really interesting stuff happens when you apply normalization to the code - which I would argue is the foundation of all refactoring. ![]() There are some very interesting near-miss projects however. Either it assumes incorrectly that because normalization comes from a relational background it does not apply to object-oriented models, or it assumes that normalization only applies to the data defined by objects. There has been some interesting research in this area, but all of it - that I'm aware of - has fallen short of the mark. I have inquired at the local university about sponsoring a PhD candidate or two if they'd like to take up the cause, but alas our local university does not teach an adequate foundation in programming language semantics. There's also the significant possibility that I simply do not have the requisite CS theoretical foundation to complete the work alone. I haven't said anything about it publicly before this because I figured that eventually I would have time to finish the research - and produce the implied tools - myself.īut I've come to the conclusion that with everything else going on in my life that is more important, more fun, and/or more profitable, I am not going to have the time to finish the research myself. It worked out pretty well so far - I believe the insights gained have been the "secret weapons" of my design, analysis, and refactoring abilities. This means that the principles of normalization and the relational operations can apply to code as well as data. I've been working on formalizing object normalization (and hence the underlying object-oriented theory) for over 20 years.īy realizing that data and code are interchangeable, at least in theory. Has anyone tried to apply this concept to object design?.I've kept quiet on this topic for a long time it's time speak out. ![]()
0 Comments
Leave a Reply. |
AuthorWrite something about yourself. No need to be fancy, just an overview. ArchivesCategories |