Yet Another 'Learn A Framework' Blog Series
About a week ago I blogged about a struggle I was having with choosing a framework. I've since done some more reading and chatting with folks and have made a few decisions. Despite the popular consensus I've decided to try to learn Mach-ii. The reasons I chose Mach-ii are simple: 1.) It looks the easiest to learn to me. I'm not sure if it's because the documentation/quick start guides are that well written or if it truly is the easiest framework to learn. 2.) I know a few really smart dudes that are big fans of Mach-ii and I think that they will really be cool in helping to answer any questions that I come across.
I've also decided to document my experiences on this blog. This series will probably be different from any "learn a framework" type series that you've come across before. I anticipate some bumps along the road as well as possibly some changes in direction along the way. I've mapped out a mental strategy with how I'm going to tackle this application and will outline it below. However I ask that you, the community, bear with me and share in my learning. If you have a constructive thought on any of the experiences that I share please feel free to comment. I'm a very open person when it comes to learning and I believe that we all have something we can learn from one another.
Here is my roadmap that I plan to follow (again, this is subject to (and likely may) change). My first step will be to build the DB structure. I then intend to use some sort of code generator to build my beans, DAOs and Gateways. (Before I go on I should mention that if you're not familiar with these terms then you should definitely check out Doug Boude's OO Terms in a ColdFusion Context. A very easy to read and comprehend document that will certainly help you to understand the basic concepts of frameworks and OO/MVC development). I've always been unsure about using code generators but for this project I'm going to look at two of them and decide which (if either) that I like. It's not that I don't think code generators are helpful but I've always been skeptical about using them. The thing thats kept me away so long has been the fact that the code that they produce rarely seems to be usable in the initial format. I believe that is intentional - no cookie cutter code ever fits everyone's needs - but I've been skeptical about the time/effort saved in customizing the code as opposed to writing from scratch. But I'm going to overlook those skepticisms and give them a shot since one of the reasons that I'm attempting to learn a framework is to write consistent, manageable code faster then I have before. The two code gen's that I'm going to evaluate are Tom Shreck's cfcPowerTools and Brian Rinaldi's Illudium PU-36 Code Generator. I may not end up using either of the resulting code in the final project, but it's worth a shot.
After I've built my Model and Controller I'll move on to actually digging into the framework and implementing my application. I believe this is a sound strategy - I typically build my CFCs first without even writing a line of code for the UI. I think it helps to build the foundation on which the UI relies before designing the interface. I know this is a highly debated topic but I'm comfortable with this way of thinking and will likely stay with it until someone convinces me not to. I believe the data should dictate the interface - not the other way around.
So that's the initial plan. Stay tuned as I do my best to document my experiences. My next few posts will focus on installing the code generators.



Good luck. I started a mach-ii project not so long ago.... maybe I should get back to it.
So if you can start with a completely clean DB, code generation may be useful.
(re: the smart dudes)
j/k good luck with the learnination, I think you have made a good choice!