تحسين الكود: استخدام Magic Numbers

This article is available in English too, check it out here.

نظرة خاطفة

درسنا في هذا اليوم يتكلم عن أحد الطرق لتحسين الكود أو ما نسميها بعملية Refactoring. يتكلم عن طريقة استخدام Magic Numbers لجعل الكود أسهل وأبسط في القراءة والكتابة.

مقدمة

تحسين الكود أو ما نسميه علميا بـ Refactoring هي أفكار أو طرق يتم تطبيقها على الكود لجعله أبسط وأسهل في القراءة والكتابة ولجعل عملية التنقيح Debugging أو مراجعة Revising الكود أسهل وأبسط.

هناك طرق عديدة جدا للـ Refactoring ومنها استخدام الـ Magic Numbers.

أرقام Magic Numbers هي عبارة عن أرقام لها دلالات معينة. فعلى سبيل المثال إذا كنا نريد تحويل عدد من المترات إلى سنتيميترات فسوف نقوم بالضرب في 100. وبالعكس، إذا كنا نريد تحويل السنتيميترات إلى مترات فسوف نقوم بالقسمة على 100. ولذلك يعتبر 100 هو رقم سحري Magic Number. فبدلا من كتابتك لهذا الرقم مرات عديدة في الكود يمكنك جعل هذا الكود في متغير  Variable أو حتى في متغير ثابت Constant وتقوم بدلا من كتابة الرقم 100 تقوم بكتابة اسم المتغير أو هذا الثابت.

لنأخذ مثال آخر أكثر تعقيدا فربما الرقم 100 هو رقم بسيط وسهل. إذا كنا نريد عمل برنامج يقوم بالتحويل بين المترات والأقدام فسوف يكون عندنا رقم سحري Magic Number وهو 3.2808398950131233595800524934383 (هذه أعلى دقة لهذا الرقم.) فإنك إذا كنت تريد التحويل إلى الأقدام فسوم تقوم بالضرب في هذا الرقم وإذا كنت تريد العكس بالتحويل على المترات فسوف تقوم بالقسمة على هذا الرقم. فبدلا من أن تقوم بكتابة هذا الرقم بهذه الدقة في كل مكان في الكود وإذا كنت تريد تغييره فسوف يكون هذا شبه مستحيل أن تبحث في كل الكود عن هذا الرقم وتقوم بتغييره. ولكن الحل الأفضل هو أن تقوم بتسجيل هذا الرقم في متغير وتقوم بكتابة فقط اسم المتغير في كل دالة بدلا من الرقم وهكذا تستطيع التعامل مع الكود الأسهل وأبسط بالإضافة إلى أنه سيكون أسهل في القراءة.

التطبيق

الكود التالي يوضح دالتين واحدة للتحويل من المتر إلى القدم والأخرى للتحويل بالعكس من القدم إلى المتر. لاحظ كيفية قراءة وكتابة الكود.

// C# Code
public static double ConvertMetersToFeet(double meters)
{
    return meters * 3.2808398950131233595800524934383;
}
public static double ConvertFeetToMeters(double feet)
{
    return feet / 3.2808398950131233595800524934383;
}
' VB.NET Code
Public Function ConvertMetersToFeet(meters As Double) As Double
    Return meters * 3.2808398950131233595800524934383
End Function
Public Function ConvertFeetToMeters(feet As Double) As Double
    Return feet / 3.2808398950131233595800524934383
End Function

بعد أن نقوم بتحسين الكود أو بمعنى أصح عمل Refactoring من نوع Magic Number يصبح كودنا بالشكل التالي:

// C# Code
public const double MeterFeet = 3.2808398950131233595800524934383;
public static double ConvertMetersToFeet(double meters)
{
    return meters * MeterFeet;
}
public static double ConvertFeetToMeters(double feet)
{
    return feet / MeterFeet;
}
' VB.NET Code
Public Const MeterFeet As Double _
    = 3.2808398950131233595800524934383
Public Function ConvertMetersToFeet(meters As Double) As Double
    return meters * MeterFeet
End Function
Public Function ConvertFeetToMeters(feet As Double) As Double
    return feet / MeterFeet
End Function

خاتمة

تعلمنا في هذا الدرس كيفية تحسين الكود Refactoring عن طريق استخدام Magic Numbers لجعل الكود أسهل وأيسر وأسهل في عملية التنقيح والمراجعة. سوف نقوم بإذن الله تعالى بشرح طرق أكثر لتحسين الكود في الدروس القادمة.

مواضيع مشابهة:

اخترنا لك:

أحدث المواضيع:

هل أعجبتك؟ شارك بها...
  • حسن العطاس

    شكرا على هذا الدرس الرائع,, ننتظر المزيد.

  • حسن العطاس

    شكرا على هذا الدرس الرائع,, ننتظر المزيد.

  • المقاتلة العنقاء

    موضوعك رائع

  • المقاتلة العنقاء

    موضوعك رائع

  • H.Wasef

    جزاك الله خير علي المعلومات القيمة ومنتظرين جديدك

    • قريبا بإذن الله تعالى. كل عام وأنتم بخير.