08-02-19, 09:53 PM
(آخر تعديل لهذه المشاركة : 21-04-21, 03:11 AM {2} بواسطة الشاكي لله.)
بسم الله الرحمن الرحيم
Perfect Code
- تعني البرمجة بعبارات مفهومة وبأقل اسطر ممكنة والاستفادة القصوى من المميزات التي توفرها لك اللغة التي تبرمج بها.
فلو قمنا بطرح السؤال التالي: قم بكتابة دالة لمعرفة هل أن العدد الممرّر للدالة زوجي أم لا؟
هناك عدة سيناريوهات سيتبادر الى ذهن الشخص الذي سيقوم بكتابة هذه الدالة من المستوى المبتدأ الى المستوى المتقدم.
فمن الممكن كتابة الدالة بهذا الشكل:
PHP كود :
public bool IsEvenNumber(int number)
{
// Scenario #1
if (number % 2 == 0)
{
return true;
}
else
{
return false;
}
}
الحل اعلاه صحيح لكن ليس Perfect Code من ناحية المحتوى. لكن تصريح الدالة وطريقة تعريفها مع القيمة الممررة هي Perfect Code لانها تدل على المحتوى. وايضا الدالة يجب ان تؤدي مهمة واحدة حسب المبدأ الأول من مبادئ الـ SOLID ،وايضا اسم الدالة هي PascalCase وهي المستخدمة في طريقة كتابة اسم الدالة في لغة C#.NET ،والقيمة الممررة تم كتابتها على اساس camelCase وهي الطريقة المتبعة لكيفية كتابة الباراميترات والمتغيرات.
طريقة الحل الثانية:
PHP كود :
public bool IsEvenNumber(int number)
{
// Scenario #2
if (number % 2 == 0)
{
return true;
}
return false;
}
ايضا الحل صحيح يكن لازال ليس Perfect Code.
طريقة الحل الثالثة:
PHP كود :
public bool IsEvenNumber(int number)
{
// Scenario #3
return number % 2 == 0 ? true : false;
}
ايضا الحل صحيح
الطريقة الرابعة:
PHP كود :
public bool IsEvenNumber(int number)
{
// Scenario #4
return number % 2 == 0;
}
هنا تقريبا وصلنا الى الحل الامثل بحيث لا نحتاج ان نرجع True or False لان الناتج هي بحد ذاتها قيمة بوليانية حيث سيتم ارجاع الناتج المستخلص من المعادلة.
الطريقة الاخيرة:
PHP كود :
// Scenario #5
public bool IsEvenNumber(int number) => number % 2 == 0;
الحل الاخير يعتبر مستوفيا لشروط الكود الأمثل Perfect Code حيث يعتبر الحل الامثل بحيث تم الاستفادة القصوى للمميزات التي توفرها اللغة كما استوفت شروط الـ Clean Code من حيث طريقة كتابة اسم الدالة وبقية الامور التي تم ذكرها سابقا.
تحياتي لكم