In a couple of previous postings, I have mentioned the generic object management system that we have been working on for a project here at Alagad. The initial version of the system is complete and in use now and while it came out well and serves its purpose, I still feel there was a lot more potential for it. Researching and developing it however has given me an opportunity to start putting into practice some of the concepts in dynamic programming that I have been reading for quite some time.
One of the problems I have always had with custom application development is that if you really back up and take a look at all of the applications, they have 80% common code and functionality with a little bit of custom stuff sprinkled on the top. For example, how many times have you developed content management functionality or workflow functionality? With the object management system we just put in place, if we had gone the traditional route of developing individual business, data, and service objects as well as controllers and views for every “object” that we were managing, there would have been several hundred cfcs involved to manage, update, and test. With the object management system, there are only four cfcs with a handful of XML configuration documents. By going this route, it has saved us quite a bit of development and testing time as well as making the application much more manageable down the road.
So, in the continuing quest to better understand and utilize some of the concepts behind dynamic programming (metadata, dsls, generators, etc.), Layne Vincent and I have decided to start a back and forth “conversation” on different topics related to dynamic programming. We don’t have a lot of structure behind this yet, so we will see how this turns out. Stay tuned ….