Learning Object Oriented ColdFusion
I am an apprentice programmer. A ColdFusion Padawan. I realize that now.
Up until recently, if something code needed writing, I simply wrote it. I did not consider whether there could be another way, or if I was duplicating code. I simply wrote it and tested it until it worked.
I was first introduced to the concept of Object Oriented Programming (OOP) by some workmates back when I was a systems admin. Sometimes when we had some downtime, I’d get a few quick lessons in programming techniques in Java, most of which went way over my head. Struts, beans, model view controller – alien terms.
It has become apparent that I am sorely lacking in jargon, for starters. Simply having a work conversation with my designer/business partner makes this obvious. This is one of the drawbacks of being self-educated. I refer to the “thing” and I struggle to find the word. He throws his hands up in frustration.
A few days ago, he started looking in to Mate, which apparently is some sort of framework for Flex applications. I was vaguely aware of frameworks from when I developed in PHP – specifically the Zend Framework, which I played with for about an hour before giving up. Bad, I know.
Anyway nothing bothers me more than not knowing things that I should. It’s something of an obsession, really. So I decided that I should look into grasping the full thrust of OOP and frameworks, specifically as they apply to ColdFusion. I imagine the concepts are universal, so I could take it back to PHP if I ever needed to. I have a feeling that some of the things I’ve been doing already fit within the OOP best practices, but I gather I could improve things further. And such is my knowledge that I’m not sure what I’ve done that is or isn’t OOP. At the very least, I’d like to be in a state without these doubts.
The first resource I’ve found for this is cfOOP.org, which appears to be fairly new but once it gets fleshed out could be exactly what I need. And as far as frameworks go, I’m leaning towards Mach-II as it is reportedly the most “mature” framework, as well as the most easy to use – which again is a relative term since some of the concepts are still new to me.
Does anyone out there have a suggestion of reading material, or another practical resource I could use? Perhaps even suggest an alternative to Mach-II that an apprentice might better learn from?
The ColdBox framework. Download it and look through the code. Then, download Luis’ CodexWiki from riaForge and look at its code. After that, you will have seen some of the best out there.
I second the ColdBox and CodexWiki download/review. It will really turn on the lightbulb.
In regards to Mate, it’s easily the best framework to work with Flex in terms of simplicity.
Just subscribing to this post. :-)
Like you, I came from a background with virtually zero frameworks knowledge when I started playing around with Mach-II a couple of months ago. After going through a couple of the quick start examples, I really started to like it. Once you see how everything flows, it’s pretty simple to use.
I like it so much, I’ve started trying to integrate Mach-II into several of my new projects, and am even refactoring an old project to use it.
As far as Mach-II resources, I would start here: http://greatbiztoolsllc.trac.cvsdude.com/mach-ii/wiki/Quickstart
Specifically, these two tutorials will have you up in running with Mach-II in no time:
http://greatbiztoolsllc.trac.cvsdude.com/mach-ii/wiki/QuickstartGuide
http://greatbiztoolsllc.trac.cvsdude.com/mach-ii/wiki/QuickstartEventObjectAndListeners
My response: http://www.aliaspooryorik.com/blog/index.cfm/e/posts.details/post/want-to-learn-oop–213
Just out of curiosity, those of you who are familiar with frameworks, did you learn them at the same time as you learned CFML?
Or did you master the language first and then decide to pick up a framework?
Or did you encounter a problem and pragmatically decided to let a framework solve it for you?
I ask because all the framework documentation seems to assume a LOT. Like assuming you can mentally break down a UML diagram, or that you know all the OO terms like you know your own face.
I feel like I download the framework code and the documentation says “have at it”. And I pretty much feel like an idiot because I don’t even know what the hell I’m supposed to “have at”. Maybe I’m overthinking it and letting it intimidate me.
@amclean: I started programming in CFML before I knew about those frameworks. I came from another (procedural) language where I learned about modularisation though. Only after a few years I of CFML I got in contact with framworks, of which Fusebox still is my favourite one.
I had a feeling I was putting the cart before the horse.