تقييم الموضوع :
  • 0 أصوات - بمعدل 0
  • 1
  • 2
  • 3
  • 4
  • 5
Perfect Code 1
#1
بسم الله الرحمن الرحيم

Perfect Code



- تعني البرمجة بعبارات مفهومة وبأقل اسطر ممكنة والاستفادة القصوى من المميزات التي توفرها لك اللغة التي تبرمج بها.
فلو قمنا بطرح السؤال التالي: قم بكتابة دالة لمعرفة هل أن العدد الممرّر للدالة زوجي أم لا؟

هناك عدة سيناريوهات سيتبادر الى ذهن الشخص الذي سيقوم بكتابة هذه الدالة من المستوى المبتدأ الى المستوى المتقدم.

فمن الممكن كتابة الدالة بهذا الشكل:


PHP كود :
public bool IsEvenNumber(int number)
 
      {
 
          // Scenario #1
 
          if (number == 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 == 0)
 
          {
 
              return true;
 
          }
 
          return false;
 
      

ايضا الحل صحيح يكن لازال ليس Perfect Code.


طريقة الحل الثالثة:
PHP كود :
public bool IsEvenNumber(int number)
 
      {
 
          // Scenario #3
 
          return number == true false;
 
      

ايضا الحل صحيح


الطريقة الرابعة:
PHP كود :
public bool IsEvenNumber(int number)
 
      {
 
          // Scenario #4
 
          return number == 0;
 
      

هنا تقريبا وصلنا الى الحل الامثل بحيث لا نحتاج ان نرجع True or False لان الناتج هي بحد ذاتها قيمة بوليانية حيث سيتم ارجاع الناتج المستخلص من المعادلة.

الطريقة الاخيرة:
PHP كود :
// Scenario #5
 
      public bool IsEvenNumber(int number) => number == 0


الحل الاخير يعتبر مستوفيا لشروط الكود الأمثل Perfect Code حيث يعتبر الحل الامثل بحيث تم الاستفادة القصوى للمميزات التي توفرها اللغة كما استوفت شروط الـ Clean Code من حيث طريقة كتابة اسم الدالة وبقية الامور التي تم ذكرها سابقا.


تحياتي لكم 
الرد }}}
#2
ماشاء الله تبارك الله ،، الله يجزاك خير يالغالي
يا رحمن الدنيا والآخرة ورحيمهما
الرد }}}
تم الشكر بواسطة: sendbad100 , Sajad
#3
اتفق معك جدا استاذي وانا فعلا اعشق كتابة الاشياء في سطر واحد

ولكن Tim coery طرح نقطة هامة جدا في احد فيديوهاته كانت غائبة عني

وهي ان الكود معني ان يقرأه البشر وليس الالة ، الالة ستحول كل الاكواد التي ذكرتها حضرتك الى نفس الكود في النهاية بالاسيمبلي

فيبقى الكود الافضل الذي يكون اسهل في القراءة More Readable طالما لايخل بالعمل Functionality وبالتالي وجهة نظري هي الكود الاول الافضل

لانه سيكون اسهل في التتبع والمراجعة ولن تضطر لتقف وتفكر في فك السطر الذي يقوم ب 4 اشياء في نفس الوقت

اخيرا اطلب منك تقبل وجهة نظري المتواضعة واشكرك على الموضوع المفيد جدا
الرد }}}
تم الشكر بواسطة: محمد كريّم , محمد كريّم
#4
لله يجزاك خير يالغالي




192.168.100.1 192.168.1.1
الرد }}}
تم الشكر بواسطة:


المواضيع المحتمل أن تكون متشابهة .
الموضوع : الكاتب الردود : المشاهدات : آخر رد
  Dapper Code Builder Sample khodor1985 3 3,993 18-03-21, 12:39 AM
آخر رد: bfdnfh
  Perfect Code 2 Sajad 2 2,426 11-02-19, 04:26 AM
آخر رد: حريف برمجة
  Tips for clean code #3 Sajad 3 2,638 25-11-17, 12:35 AM
آخر رد: قاسم
  Tips for clean code #2 Sajad 2 2,235 21-11-17, 05:42 PM
آخر رد: قاسم
  Tips for clean code #1 Sajad 2 2,409 06-11-17, 03:07 AM
آخر رد: قاسم
  Entity Framework Code First Abu Ehab 1 2,516 10-06-17, 03:39 PM
آخر رد: sendbad100

التنقل السريع :


يقوم بقرائة الموضوع: بالاضافة الى ( 1 ) ضيف كريم