Learning OO in ColdFusion Pt. 1
Object oriented coding is not completely new to me. I’ve attempted to pick it up a few times over the years. I do not have a pure CS background–I majored in biology and minored in chemistry. Somehow any presentation on the subject always contained terms that I was not familiar with. So my attempts to learn OO in the past had always stalled. That is until the CFWheels framework came along a couple of years ago. I love how approachable the framework was for someone with no experience in OO. Even better, it had lots of documentation and example code to look at and use as a guide. It became my framework of choice. In fact, my work with the framework led me to my current job.
In the course of my daily work, I also deal with legacy code in another familiar framework, Fusebox 4. I love Fusebox and have worked with it in my past as well. However, I found myself thinking in CFWheels and OO terms while coding in FB. I remembered that FB can be used in an object oriented manner and our legacy code is in need of refactoring into OO so I thought this would be the perfect time to finally learn OO in CF without a framework. I’m not knocking the framework. Not at all. I love CFWheels and continue to use it. This is just another tool in my CF toolbox.
I started with some searching on the web for resources. I tried Nic Tunney’s CFOOP, which I’d heard about at a past CFUnited, but it appears to be defunct. I remembered hearing about a Object Oriented Programming in ColdFusion by Matt Gifford, so I picked up a copy from Amazon. There’s also a neat site run by Adrian Moreno called IKnowKung(Foo);. There is a great series on OO programming in CF there.
Resources in hand, I dove in, determined that this time I would get a handle on using object oriented programming in ColdFusion. It took me about a week to work my way through the book and its exercises and perhaps another week to try out the techniques by converting a fairly simple app from procedural to OO. I’m not done yet, but I’ve completed enough that I’m confident in my ability to finish shortly. My next few posts will detail my efforts to use my newly acquired knowledge to code my first app.