This writing is an attempt to address some of the critical issues related to database-driven web application development using Macromedia�s Cold Fusion scripting language in a team environment, it is by no means to cover most aspects of Cold Fusion web application development and grammar in the writing is less of a concern.

It is this author�s opinion that it essentially bogs down to three core elements of a good understanding and knowledge of the Cold Fusion language, design documentation with an agreed standard (at least guideline), team spirit and prior experience or knowledge of the subject matter of a given application or aptitude and interest in learning about the subject matter.  Each of these would be discussed in some detail below.

The Cold Fusion scripting language
This author is of the opinion that a developer�s understanding and grasp of the following areas of the language would determine his/her ability to design and develop a Cold Fusion based web application to a large degree.  

Core Language
Application framework setting
Cfapplication etc.

Various variable handling
Variable scoping like application variable, session variable, locking like what variables need to be locked and setting variable values etc.

Flow control
Like if else end if and the more powerful one of switch case end case end switch;  cfexit, cfabort; cfloop, cfbreak etc.

Interaction with Files on File System
Tags like cffile and cfdirectory and their respective family.

Code management, efficiency and re-use
Like cfinclude, cfmodule, cfcomponent

Data Input Manipulation
Cfform family

Mail
Cfmail family, cfpop

Visual Dimension/Presentation
Cfgraph, cfchart and their respective family tags.


Verity search technology tags
Like cfsearch, cfindex, cfcollection etc.

Debugging
Cfdump

DATA SETS MANIPULATION
(cf functions)
Selectively powerful ones like
Array family like ArrayNew
Structure family like StructCopy, duplicate
List family like ListGetAt
String manipulcation like Left, Mid, Right ...
Just too many to list here �

Database related tags
Cfquery/cfoutput
Btw, each team member is expected to have a good understanding of database concepts and experience in the technology.

More stuff like UDF �

Agreed or Shared Standard or Development Methodology
First and foremost, a design document must be created based on a full understanding and analysis of requirements for the given application.  Preferably creating Use Case documentation as well. Tasks are clearly identified and assigned to team members.  Task scheduling needs to take task inter-dependency into consideration when applicable.  Each team member would perform his/her work following the design documentation.  Now here comes the standard, loosely speaking, I consider �standard� as a common language that all the team members speak, but not some rigid rules that dictators force people to follow.  

A standard could be like this:
Application Framework
That deals with application level stuff like data source, security, global variables and settings for presentation part of the application like CSS.

Application Segment/Component/Section Flow Control
Be it index.cfm or main.cfm or whatever we name it, and segmented by Cfswitch.
This template may be called the main Program Flow Control.
Security may also be implemented at this level in conjunction to that at application level depending on the particular application.

Templates/Scripts Placement / Web Document Directory Structure
/appDir
  /segA (segment A)
  /segB (segment B)
  /seg�

/multimediaDir
/qryDir
/presDir or dspDir

/cfInstallation/CustomTag/appTags/

Commenting
The standard or guideline needs to establish some common agreed commenting practice like each template needs to include at least 3 things on top, that is, What, Who and When.  What the template is for (function of the template); who, who writes it and When, when it is written.  Maybe add Usage as well.

Team Spirit and Prior Experience Or Knowledge of The Subject Matter of a Given Application or Aptitude and Interest in Learning about the Subject Matter

It may sounds less tangible, however, I think they are important to the process as well.

Another issue might be configuration management via version control, its introduction into the process may add a measure of quality assurance.

In sum, every team member is expected to know Cold Fusion very well, share a common development methodology or practice, prior experience in the subject matter of the application or an interest in learning about it and last but not least team spirit.

Your contribution/comments would be most welcome.

Don Li
[Todays Threads] [This Message] [Subscription] [Fast Unsubscribe] [User Settings] [Donations and Support]

Reply via email to