I've had a few people ask me why I often have variables named things like "variables._foo" inside of my CFC's. Specifically, they're wondering about the underscore. In short, it's all about protecting data in the variables scope.
Expanded version of that one-sentence explanation:
If I've got something used by multiple methods in the variable, like a reference to a bean representing datasource information in a DAO, it gets two things: an underscore and a private getter method. Like this:
<cfcomponent displayname="SomeDAO">
<cffunction name="init">
<cfargument name="datasource" />
<cfset variables._datasource = arguments.datasource />
</cffunction>
<cffunction name="getDatasource" access="private">
<cfreturn variables._datasource />
</cffunction>
</cfcomponent>
Why?
It means that if I accidently to this in some function, forgetting to var scope...
<cfset datasource = "wallaWallaBingBang" />
...I'll have only overwritten variables.datasource, not the variables._datasource that everything else uses.
In other words, it's just a quick way to prevent me from harming myself or others with a sloppy error that'd be hard to trace down.