منتدى فيجوال بيسك لكل العرب | منتدى المبرمجين العرب
Perfect Code 1 - نسخة قابلة للطباعة

+- منتدى فيجوال بيسك لكل العرب | منتدى المبرمجين العرب (http://vb4arb.com/vb)
+-- قسم : قسم لغة السي شارب C#.NET (http://vb4arb.com/vb/forumdisplay.php?fid=175)
+--- قسم : قسم مقالات C#.NET (http://vb4arb.com/vb/forumdisplay.php?fid=177)
+--- الموضوع : Perfect Code 1 (/showthread.php?tid=28526)



Perfect Code 1 - Sajad - 08-02-19

بسم الله الرحمن الرحيم

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 من حيث طريقة كتابة اسم الدالة وبقية الامور التي تم ذكرها سابقا.


تحياتي لكم 


RE: Perfect Cdoe - حريف برمجة - 08-02-19

ماشاء الله تبارك الله ،، الله يجزاك خير يالغالي


RE: Perfect Cdoe 1 - Anas Mahmoud - 25-09-20

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

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

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

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

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

اخيرا اطلب منك تقبل وجهة نظري المتواضعة واشكرك على الموضوع المفيد جدا


RE: Perfect Cdoe 1 - bfdnfh - 18-03-21

لله يجزاك خير يالغالي




192.168.100.1 192.168.1.1