سؤال

مع الطرق الجديدة لكتابة CFC في CF9، ما هي بعض مؤتمر الترميز الجديد إلى CF9؟

هنا بعض ما يمكنني التفكير في ...

  • استخدام دائما النطاق المحلي
  • تشمل دائما init() الطريقة التي ترجع نفسها، منذ New سوف نسمي INIT () إذا وجدت.
  • فعل ليس وضع الحجج المطلوبة في init() إذا كان كيان orm، فالتوقع استثناءات ...
  • دائما يستخدم THIS.setXXX في المكان الذي يوجد فيه XXX اسم الملكية داخل INIT ()، بحيث سيتصل ب STINTERS أو STERTER المخصص إذا كان ذلك متاحا.
  • التخلي عن اتفاقية نطاق ما قبل CF8، انظر: http://henrylearnstorock.blogspot.com/2009/08/08/08/should-we-abandon-instance-scope-in-cf9.html.
  • لا الإخراج = خطأ للمكون والوظائف في نمط البرنامج النصي CFC، انظر: http://www.coldfusionjedi.com/index.cfm/2009/8/26/ask-a-jedi-impact-whitespace-and-script-based-cfcs.
  • استخدام الأنظف وأكثر كفاءة isNull(arguments.optionalArg) بدلاً من isDefined()
هل كانت مفيدة؟

المحلول

هل ما زلنا بحاجة إلى ضبط إخراج السمة = خطأ للمكون والوظائف في Script Style CFC؟

لن أعتقد ذلك. <cfscript> بطبيعتها قمع أي بيضاء واحتياجات writeOutput() من أجل الحصول على أي إخراج على الإطلاق.

نصائح أخرى

لا يتعين على طريقة INIT () إرجاع النطاق "هذا" إذا كنت تتصل به باستخدام بناء جملة "New My.cfc ()". قصة حقيقية.

إذا كنت داخل CFC وترغب في تعيين خاصية، فلا تستخدم هذا. Setefoo ()، فقط Go SetFoo (). الشيء نفسه ينطبق على getfoo (). this.xxx () يشبه الخروج من الباب الأمامي فقط للعودة إليه. أيضا، الوصول الخاص بك = getters المخصصة الخاصة والسينطين لن يعمل كوظائف لن تكون في هذا النطاق.

"Var Foo" vs "local.foo" - شخصيا، أفضل متغيرات Var'D كما هو الحال) أقل رمز لكتابة، و B) أقل رمز القراءة.

// 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;
}

يجب أن تعيد جميع الوظائف التي تتغير البيانات بعض القيمة حتى لو كانت شركة منطقية حقيقية حاليا. الوظائف لديها وسيلة للحاجة في نهاية المطاف إلى العودة كاذبة

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top