ما هي أفضل الممارسات/الترميز القياسية فيما يتعلق "هذا" نطاق AS3?

StackOverflow https://stackoverflow.com/questions/619505

سؤال

ما هي أفضل الممارسات/الترميز القياسية فيما يتعلق "هذا" نطاق AS3?هل هناك أحد ؟ أشعر أنها تساعد حقا مع التوحيد ، بلدي القراءة, ولكن في بعض الأحيان يبدو أن "أكثر من اللازم".

فعلى سبيل المثال ، يتم استخدام كلمة "هذا" في أعقاب ضروري (أنا أعلم أنه يعمل بدون "هذا")?:

private var _item:Object;

private var selectedItem:Object;

public function set item(value:Object):void
{
    this._item = value;

    if (this._item["label"] == "doodad")
        this.selectedItem = value;
}

public function set item(value:Object):void
{
    return this._item;
}
هل كانت مفيدة؟

المحلول

"هذا" غير مطلوب إلا إذا كنت ترغب في منع تسمية الصراعات بين محليا راقب المتغيرات (طريقة params على سبيل المثال) و المتغيرات سبيل المثال.

في المثال الخاص بك كنت بالفعل باستخدام تسطير علامة خاصة متغير ، حتى إنه سبب إضافي عدم استخدام "هذه" منذ كنت حقا أقول مرتين نفس الشيء.

نصائح أخرى

ومن المؤكد أنه ليس من الضروري ، ولكن أنا أتفق أنه يمكن أن يساعد مع القراءة.منذ ان عمل في أكثر ديناميكية اللغات (مثلا ، بيرل و بايثون) هذه الاتفاقيات يمكن أن تكون حيوية بالنسبة بسرعة تحديد مكان المتغيرات والوظائف راقب/تقع.إذا هذه الاتفاقية يعمل بالنسبة لك ، وأنا لا أعتقد أنه أمر سيء بحد ذاته.

وهكذا قال: لقد قضيت ساعات إعادة رمز الواردة حرج الاتفاقيات التي تعيق القراءة.

على سبيل المثال:شخص واحد عملت مع كتب جميع المهام مثل هذا:

var foo:String= "bar";

هذا كان غضب (أنا أفضل " = " إذا كنت يمكن أن نرى بوضوح المشغل) ، و قضيت الكثير من الوقت في تنظيف الآلاف من الأسطر من التعليمات البرمجية كان لي للحفاظ على.له الاتفاقية (والتي ، وإن قلنا عنه عدة مرات ، ورفض التنازل عن) تميل إلى عرقلة العمل.

نسعى جاهدين من أجل الوحدة w/آخرين يعملون معك.إذا كانوا بحاجة إلى دعم التعليمات البرمجية الخاصة بك والعثور على هذا المشددة ، فمن المحتمل لا يستحق أن تترك في.إذا كنت لا تتوقع أي شخص للعمل مباشرة مع المصدر ، استخدام الاتفاقيات التي تساعدك على فهم رمز الوثيقة (في مكان ما) ما تعنيه.

إذا كنت تعمل في فريق العصا مع الترميز الاتفاقيات الفريق.

لكن شخصيا صريحة استخدام "هذا", عندما لا تكون مطلوبة من أجل توضيح ، مبالغة أن يؤثر سلبا على القراءة بلغة كتابتها بشكل ثابت مثل AS3 (اللغات الديناميكية هي قصة أخرى!).

فئة فقط من المسؤولية لذلك عموما لا ينبغي أن يكون هناك خصائص كثيرة جدا على ذلك.داخل الأسلوب عموما تتعامل مع ثلاثة أنواع من المتغيرات:مؤقتة المتغيرات المحلية, معلمات الأسلوب ، خصائص.أساليب يجب أن لا تكون طويلة جدا ، لذلك ينبغي أن يكون من السهل على الفور الفرق بين ثلاثة أنواع - إذا كان لا يعرف محليا و لم يتم تمريره كمعلمة ، ثم إنه الملكية.إذا كان كل أسلوب لا يصلح على الشاشة ثم إنه ربما طويلة جدا!

أنا فقط استخدام "هذا" عند الحاجة إلى إزالة الغموض بين الملكية و معلمة مع نفس الاسم.

أنا أفضل عدم استخدام "هذا" كثيرا, ولكن في بعض الأحيان لا في الكسوف فقط للحصول على تكملة (وربما أسوأ والسبب أن تفعل ذلك!)

سيكون من المنطقي أكثر إذا كان ذلك على سبيل المثال:

public function set item(_item:Object):void
{
    this._item = _item;

    if (this._item["label"] == "doodad")
        this.selectedItem = this._item;
}
مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top