Saturday, March 12, 2011

Writing better CFML Series - An Introduction

Personally I feel that a lot of the negative comments pointed towards ColdFusion are due to the fact that its so easy to learn, and like any language, tough to master.  I think a lot of people pick it up, write a site that works, and consider themselves "programmers".  While this in itself  isn't a bad thing because the ColdFusion community needs as many developers as it can get.   I think that this leads to  a lot of poorly written CFML out there and that that it tends to give ColdFusion a bad reputation.  Instead of getting into a flame war with everybody out there bashing ColdFusion I decided to do what I could about it and write a series of blog posts that are aimed at helping entry to mid-level developers write better CFML.

One of the problems with a lot of the resources out there is that they are either too high level or to advanced.  I think there is a large void in best-practices or mid-level tutorials and articles.  Everybody wants to write about complex or advanced topics that will wow the community and have others lauding over their knowledge (who wouldn't).  

In addition to writing about the many things I have planned my goal is to put out at least two posts a month covering topics like:
  • Object composition: writing useful, well constructed objects and minimizing an objects API
  •  Writing maintainable code by looking at an object's functions and properties and a quick look into refactoring to make messy code more readable
  • A deeper dive into MVC and what "separation of concerns" really means also some guidelines to where objects should live in the MVC pattern.
  • Loosely coupling objects and why its a good thing  along with a brief overview of dependency injection.
  • What in the world are interfaces and why you should implement them and use them for a functions return type and parameter types?
  • Some best practices when writing ColdFusion
If anybody else has any suggestions for things they frequently see in poorly written CFML please let me know, I'd love for more ideas on things to write about.
Fork me on GitHub