6

CF9 での CFC の新しい記述方法では、CF9 で新しいコーディング規則にはどのようなものがありますか?

ここに私が考えることができるいくつかがあります...

  • 常に LOCAL スコープを使用する
  • 見つかった場合は init() を呼び出すため、常にinit()それ自体を返すメソッドを含めます。New
  • ORM エンティティの場合は必要な引数を入れないでください。それ以外の場合は例外を期待してください...init()
  • THIS.setXXXXXX が init() 内のプロパティ名である in を常に使用して、利用可能な場合は暗黙的なセッターまたはカスタム セッターを呼び出すようにします。
  • CF8 以前の INSTANCE スコープ規則を放棄します。次を参照してください。
  • スクリプト スタイル CFC のコンポーネントおよび関数の場合は、出力なし = false です。系フロン類
  • isNull(arguments.optionalArg)代わりに、よりクリーンで効率的なisDefined()
4

3 に答える 3

2

スクリプト スタイル CFC のコンポーネントと関数に対して属性 output=false を設定する必要はありますか?

私はそうは思わないでしょう。<cfscript>その性質上、空白を抑制しwriteOutput()、出力をまったく必要としません。

于 2009-08-26T17:07:43.697 に答える
0

「new my.cfc()」構文を使用して呼び出している場合、init() メソッドは「this」スコープを返す必要はありません。実話。

cfc 内でプロパティを設定したい場合は、this.setFoo() を使用せず、setFoo() に移動してください。getFoo() についても同様です。this.xxx() は、玄関から出て戻ってくるようなものです。また、関数がこのスコープにないため、 access=private カスタムゲッターとセッターは機能しません。

「var foo」と「local.foo」 - 個人的には、a) 入力するコードが少なく、b) 読み取るコードが少ないため、var 化された変数を好みます。

// there isnt a huge difference here
var today = now();
var tomorrow = dateAdd( 'd', 1, today );
local.today = now();
local.tomorrow = dateAdd( 'd', 1, local.today );

// but when you start getting more complex examples, it quickly blows out
var out = method( var1, var2, var3, var4, var5 );
local.out = method( local.var1, local.var2, local.var3, local.var4, local.var5 );

javadocs スタイルのコメントを使用します。ドキュメンテーションはあなたの友達です。

/**
* @hint This is a hint for the whole function
* @arg1 This is an argument hint
* @arg2 This is another argument hint
**/
public void function myFunction( string arg1 = 'default', boolean arg2 ) {
    return true;
}
于 2011-12-15T17:07:18.597 に答える
-1

データを変更するすべての関数は、現在常に true であるブール値であっても、何らかの値を返す必要があります。関数には、最終的に false を返す必要がある方法があります

于 2012-11-22T19:26:50.270 に答える