Коллекция ColdFusion CFC Лучшие / Рекомендуемые практики? - PullRequest
9 голосов
/ 06 марта 2009

Я составил список лучших практик ХФУ, чтобы поделиться ими.

Существует множество статей, но я подумал, что было бы неплохо собрать здесь какие-то хитрости и советы в одном месте, которое было изучено на опыте.

Я добавлю несколько ссылок, чтобы начать, но я думаю, что лучше всего было бы не длинные статьи, которые можно найти.

CFC Best Practices

Рекомендации по применению Macromedia CFC

Обновление: это было сделано в вики сообщества

Ответы [ 4 ]

1 голос
/ 09 марта 2009

Четыре быстрых вещи:

  1. Получить в списке рассылки CFCDev (или в группах Google, как сейчас).

  2. PDF шаблонов проектирования в представлении CFML Шона Корфилда - хорошее краткое чтение.

  3. http://www.cfdesignpatterns.com содержит некоторые полезные материалы со ссылками на качественные статьи о дизайне ХФУ.

  4. Статья о шаблонах проектирования на CFML в блоге Роба Брукса-Билсона.

1 голос
/ 09 марта 2009
0 голосов
/ 24 января 2011
0 голосов
/ 09 апреля 2009

До использования ColdBox Framework Я не видел ни одного сообщения об использовании Momentos для захвата свойств в тот момент; однако теперь все мои bean-компоненты имеют метод getMomento () и setMomento (). Я рекомендовал бы это в качестве наилучшей практики для всех, кому необходимо передать информацию из компонента в другой объект DAO.

В моих тестах получение импульса происходит намного быстрее, чем прохождение бина и получение свойств. Вот пример:

<cfcomponent name="userBean" output="true" hint="The account bean holds getter/setter information for a user's account.">

<cfproperty name="idUser"           required="true"     type="string"   rules="noZeroLengthString,validEmail"       invalidMessage="failed_data_validation_email"               hint="Key matching the 'accounts' table.">
<cfproperty name="loginEmail"       required="true"     type="string"   rules="noZeroLengthString,validEmail"       invalidMessage="failed_data_validation_email"               hint="E-mail address.">
<cfproperty name="password"         required="true"     type="string"   rules="noZeroLengthString,validPassword"    invalidMessage="failed_data_validation_password"            hint="Password stored in a SHA-512 hash.">

<cffunction name="init" output="false" returntype="userBean" hint="Initalizes the userBean with default values.">
    <cfset variables.instance               = structNew()>
    <cfset variables.instance.IDUser        = 0>
    <cfset variables.instance.loginEmail    = "">
    <cfset variables.instance.password      = "">
    <cfreturn this>
</cffunction>

<!--- SET LOGIN --->
<cffunction name="setLoginEmail" access="public" returntype="void" output="false">
    <cfargument name="email" type="string" required="true" />
    <cfset variables.instance.loginEmail = trim(arguments.email) />
</cffunction>
<cffunction name="getLoginEmail" access="public" returntype="string" output="false">
    <cfreturn variables.instance.loginEmail />
</cffunction>

<!--- ID --->
<cffunction name="setIDUser" access="public" returntype="void" output="false">
    <cfargument name="id" type="numeric" required="true" />
    <cfset variables.instance.IDUser = arguments.id />
</cffunction>
<cffunction name="getIDUser" access="public" returntype="numeric" output="false">
    <cfreturn variables.instance.IDUser />
</cffunction>

<!--- PASSWORD --->
<cffunction name="setPassword" access="public" returntype="void" output="false">
    <cfargument name="password" type="string" required="true" />
    <cfset var pw = arguments.password>
    <cfif len(pw) EQ 0>
        <cfset variables.instance.password = "">
    <cfelse>
        <!---><cfset variables.instance.password = hash(arguments.password, "SHA-512") />--->
        <cfset variables.instance.password = arguments.password>
    </cfif>
</cffunction>
<cffunction name="getPassword" access="public" returntype="string" output="false">
    <cfreturn variables.instance.password />
</cffunction>

<!--- MOMENTO --->
<cffunction name="setMomento" access="public" returntype="void" output="false">
    <cfargument name="momento" type="struct" required="true" />
    <cfset variables.instance = arguments.momento>
</cffunction>
<cffunction name="getMomento" access="public" returntype="struct" output="false">
    <cfreturn variables.instance />
</cffunction>

Приветствия

Аарон Гринли Мой сайт

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...