إعادة تسمية التوابع (Rename Method)

من موسوعة حسوب
مراجعة 13:39، 25 فبراير 2019 بواسطة جميل-بيلوني (نقاش | مساهمات) (مراجعة وتدقيق)
(فرق) → مراجعة أقدم | المراجعة الحالية (فرق) | مراجعة أحدث ← (فرق)

المشكلة

لا يعبِّر اسم التابع عن ما يقوم به.

الحل

إعادة تسمية التابع.

مثال

قبل إعادة التصميم

لا يفسر اسم التابع ()getsnm في الصنف Customer ما يقوم به.

لا يفسر اسم التابع ما يقوم به.
لا يفسر اسم التابع ما يقوم به.

بعد إعادة التصميم

إعادة تسمية التابع ()getsnm إلى ()getSecondName الذي يصف ما يقوم به.

يفسر اسم التابع ما يقوم به.
يفسر اسم التابع ما يقوم به.

لم إعادة التصميم؟

ربما كانت تسمية تابعٍ ما سيئة من البداية - على سبيل المثال، أنشأ شخصٌ ما التابع في عجلة ولم يهتم كفاية بتسميته بشكل جيد.

أو ربما سُميَ التابع بشكلٍ جيد في البداية ولكن مع تطور وظيفته، أصبح اسم التابع لا يصفه بشكلٍ جيد.

فوائد تطبيق الحل

  • قابلية قراءة الشفرة البرمجية. حاول أن تعطي التابع الجديد اسمًا يعكس ما يفعله شيء مثل createOrder()، و renderCustomerInfo()‎، ...إلخ.

آلية الحل

  1. تحقق من إذا كان التابع مُعرَّف في الصنف الأعلى أو صنفٍ فرعي. فإذا كان الأمر كذلك، يجب تكرار كل الخطوات في هذه الأصناف أيضًا.
  2. التابع التالي مهم للحفاظ على عمل البرنامج أثناء عملية إعادة التصميم. أنشئ تابعًا جديدًا باسم جديد. وانسخ شيفرة التابع القديم إليه. ثم احذف كل الشيفرة البرمجية من التابع القديم، وأدخل بدلًا منه استدعاءً للتابع الجديد.
  3. ابحث عن كافة المراجع إلى التابع القديم واستبدلها بمراجع إلى التابع الجديد.
  4. احذف التابع القديم. إذا كان التابع القديم جزءًا من واجهة عامة، فلا تُجري هذه الخطوة. وبدلًا من ذلك، ضع علامة "مُهمَل" على التابع القديم.

انظر أيضًا

مصادر