ماهو الكود الجيد؟

دائما ما نتعامل مع أكواد يكتبها المبرمجين الآخرين…

وعلى الأغلب عندما تكتب كودك أنت وترجع إليه بعد شهر، قد لا تعرف ماهي فائدة الكود :grin:

في رأيك، ماهي معايير الكود الجيد؟

9 Likes

هل هو اتباع الsyntax أو اتباع المبرمجين المحترفين في طريقة كتابتهم للأكواد ؟

4 Likes

السلام عليكم

سأذكر على السريع بعض النقاط التي أراها ضرورية عند كتابة الأكواد:

  • دعم الكود بتعليقات تشرح فيها وظيفة كل جزئية block ( ما الذي يغطيه هذا الكود وماهو الغرض من استخدامه)

  • كتابة الاكواد بشكل منظم ومرتب بحيث يكون سهل قراءته ومراجعته من طرف صاحب الكود أو مبرمج آخر مثل indentation

// Not recommended
for (star of stars) {
if (star.style.display !== 'none') {
star.style.display = 'none';
break;
}}

// Recommended
for (star of stars) {
    if (star.style.display !== 'none') {
        star.style.display = 'none';
        break;
    }
}

والفاصلة المنقوطة بالنسبة للجافاسكريبت مثلا، لأننا نعلم ان في الجافاسكريبت حتى وان نسينا كتابة الفاصلة المنقوطة فالتطبيق يشتغل بشكل عادي، لكن من الأحسن عدم نسيانها لابراز نهاية كل أمر.

  • من الأحسن أن نختار نوع واحد فقط من علامات التنصيص مثلا نستعمل في كل الكود اما علامات التنصيص الفردية او الزوجية.

  • اعطاء اسماء للمتغيرات والدوال واضحة ومفهومة وسهلة القراءة بالنسبة للانسان. مع الاخذ بعين الاعتبار الـ style الافتراضي المتوافق عليه على حسب اللغة، فمثلا بالنسبة للجافاسكريبت اعطاء تسمية لمتغير او دالة تتكون من كلمتين نستعمل camelCase وبالنسبة للبايثون نستعمل under_score

// JS
// Not recommended
const firstname = 'Lara';
// Recommended
const firstName = 'Lara';
// Python
// Not recommended
firstname = 'Lara';
// Recommended
first_name = 'Lara';
7 Likes

من بين الأمور المهمة أيضا في كتابة الكود وفهمه عند العودة إليه بعد مدة هي كتابة تعليقات تشرح ما يقوم به جزء معين من الكود، وفي أغلب الأحيان نهمل هذه النقطة.

4 Likes

السلام عليكم و رحمة الله تعالى و بركاته
شكرا استاذ على اثارة النقاش حول هذا الموضوع المهم جدا جدا خاصة مع البرامج مفتوحة المصدر لأننا نلجأ كثيرا لأكواد الآخرين لحل الكثير من الإشكالات التي تواجهنا، اما بالنسبة للكود الجيد فانا سانقل لكم رأي احد خبراء البرمجة قال لي مرة أن الكود الجيد يتلخص في ثلاث نقاط:

  • كتابة تعليق مختصر يشرح كل قطعة من البرنامج
  • كتابة المتغيرات و اسماء الدوال بطريقة توحي بمعنى مهمتها
  • تبسيط الكود بأكبر قدر ممكن -تقليل الاسطر البرمجية-
    هذا رايه و قد اعجبني و اصبحت اطبقه في الاكواد التي اكتبها
    و الله أعلم
6 Likes

بصراحة أضفتو نقاط رائعة،

أود إثارة شيء مهم أيضا وهو code algorithm
مؤخرا قرأت الكثير من الأكواد معاد صياغتها بشكل معقد، لكن تأخذ فقط سطور قليلة جدا (ما يجعلها أسهل في القراءة والdebug)

المثال التالي قد يقرب الصورة:
https://khan4019.github.io/front-end-Interview-Questions/sort.html

اقتناعي الشخصي يقول: “إذا كنت قويا في الـalgorithms >> زادت فرصتي في التعامل مع أي لغة برمجة بسهولة”

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

4 Likes

جميع ما أفدتم به هو عين الصواب…

شكرا لكم جميعا لارا @L.Da، فتحي @TChiOfficiel، اسماعيل @makhlouf، ونصر @sniperadmin :heart:

لا تقلق، أمور الـ algorithms & data structures ليست كل شيء (مع أنك ستسمع الكثير من الناس يقولوا أنها الأساس للـ Computer Science)، نعم هي مهمة لكنها ليست كل شيء :wink:

4 Likes

keep it super simple

2 Likes