جاري التحميل...
جاري التحميل...
تحسين كود مشروع حقيقي
في هذا المشروع الأخير، ستطبق جميع مبادئ الكود النظيف التي تعلمتها طوال الدورة على كود حقيقي. ستبدأ بمشروع يحتوي على كود فوضوي، وتحلل المشاكل، وأخيراً تعيد كتابته بطريقة نظيفة واحترافية.
💡 ما سنفعله في هذا المشروع::
1. تحليل الكود السيئ وتحديد المشاكل، 2. تسمية المتغيرات والدوال بشكل صحيح، 3. تقسيم الدوال الطويلة إلى دوال صغيرة، 4. إزالة التكرار (مبدأ DRY)، 5. إضافة تعليقات مفيدة، 6. عرض النتيجة النهائية
هذا الكود مأخوذ من نظام إدارة الطلاب. الكود يعمل بشكل صحيح، لكنه يحتوي على العديد من المشاكل التي تجعله صعباً للصيانة والقراءة. دعنا نحلل المشاكل واحداً تلو الآخر.
💡 المشاكل في الكود أعلاه::
أسماء متغيرات غير واضحة (d, t, r, s, n)، دوال طويلة مركبة، تكرار الكود، لا تعليقات، أرقام سحرية (50, 90, 80, 70, 60)، اهتمامات مختلطة.
الخطوة الأولى في تحسين الكود هي تسمية كل شيء بشكل واضح ووصفي. الأسماء الجيدة تحل محل التعليقات وتجعل الكود يُقرأ كقصة.
✅ التحسينات::
d → students, t → filterType, r → filteredStudents, s → score, n → name, proc → filterStudentsByType, calc → calculateStatistics, rpt → generateReportTable
الدوال الطويلة يجب تقسيمها إلى دوال أصغر كل واحدة تفعل شيئاً واحداً. هذا يجعل الكود أسهل للقراءة والاختبار وإعادة الاستخدام.
مبدأ DRY (لا تكرر نفسك) يقول: أي قطعة من المعرفة يجب أن يكون لها تمثيل واحد. عندما تجد تكراراً، استخرجه في دالة مشتركة.
التعليقات الجيدة تشرح لماذا وليس ماذا. الكود الجيد يشرح نفسه، لكن أحياناً تحتاج إلى تعليقات لتوضيح السبب خلف القرارات المعمارية أو القيود الخاصة.
الآن دعنا نرى الكود النظيف الكامل بعد تطبيق جميع المبادئ. الكود الناتج أسهل للقراءة والصيانة والاختبار.
✅ مقارنة بين الكود القديم والجديد::
القراءة: الكود يُقرأ كقصة، الصيانة: تغيير درجة النجاح يتطلب تغيير مكان واحد، الاختبار: يمكن اختبار كل دالة بشكل مستقل، إعادة الاستخدام: يمكن استخدام الدوال في أجزاء مختلفة، التوسع: إضافة فلتر جديد = سطر واحد في filterStrategies
الكود التالي يمثل نظام حساب فواتير بسيط لكن غير نظيف. مهمتك هي تطبيق جميع مبادئ الكود النظيف التي تعلمتها.
المتطلبات: سمّ المتغيرات والدوال بشكل وصفي، قسّم الدوال الطويلة إلى دوال صغيرة، أزل التكرار، حوّل الأرقام السحرية إلى ثوابت، أضف تعليقات مفيدة حيث تحتاج.
كيف تطبق Clean Code في مشروع حقيقي؟
الإجابة:
ابدأ بأسماء واضحة، ثم دوال صغيرة، ثم اختبارات، ثم refactor.
استخدم linting
ESLint + Prettier يُلقنان الكود تلقائياً