كيف تكتب clean code
في عالم تطوير البرمجيات، تُعتبر إختبارات الوحدة Unit Tests حجر الزاوية لضمان جودة الكود وموثوقيته. لكن، لماذا بالضبط يُعَد Unit Tests من أهم الأدوات في ترسانة أي مطور؟ سنكتشف ذلك في مقال اليوم وسنتعرف على أهم النصائح لكتابة Unit Test قوي طبقاً لكتاب clean code للعم بوب.
![]() |
| كتاب clean code عربي - ملخص كتاب clean code الشهير الجزء الرابع (الأخير) |
نصائح لكتابة كود نظيف
النصيحة الأولى: اجعل الــ Test Code مثل الــ Production Code
ينبغي لكي تكتب Unit Tests جيدة أن تطبق مبادئ الكود النظيف فيها، وتحرص عليها مثلما تفعل بالضبط مع الكود الفعلي للبرنامج؛ لأن ذلك سيسهل عليك الكثير فيما بعد، على سبيل المثال حتماً سيتم تحديث وتطوير أي برنامج بشكل عام في المستقبل، وبالتالي هنا سينفعك عنايتك بالــ Unit Test فلن تحتاج لإنشائه من جديد بل فقط ستعدل عليه بكل سهولة ويسر ليواكب التحديثات الجديدة.
- يوجد Unit Tests جاهزة يمكنك إستخدامها مباشرة مثل الموجودة في gtest) Google Test)، ولكن لا تغنيك لأنك في كثير من الأحيان ستحتاج أن تصنع Unit Test مخصص أكثر للتحقق من شئ معين في برنامجك.
النصيحة الثانية: اجعلها اختبارات صغيرة
اجعل كل اختبار يتحقق من حالة واحدة فقط، مما يجعل من السهل فهم النتائج وتحديد الأخطاء بسلاسة.النصيحة الثالثة: اجعلها اختبارات سريعة (Fast)
يجب أن تكون اختبارات الوحدة سريعة لتشجيع تشغيلها بشكل متكرر خلال عملية التطوير؛ فلنفترض أن كل اختبار حتي يعمل run يحتاج ساعتين، فمن المؤكد أنك لن تستخدمه وبالتالي وجود الاختبار مثل عدمه وبالتالي وجود أخطاء في البرنامج لن تكتشفها إلا بعد فوات الأوان وبالتالي الله يعينك على إصلاحها ههههه.النصيحة الخامسة: اجعلها تعمل في أي وقت وفي أي مكان (Repeatable)
حاول تجنب اعتمادية تشغيل الاختبار على شئ معين مثل قواعد بيانات معينة أوشبكة معينة، لا تجعله يتوقف عمله على بيئة معينة.- يمكننا تلخيص النصائح من 3-7 في كلمة "FIRST" تسهيلاً للتذكر كما ذكر العم بوب
النصيحة الثامنة: اتبع المماراسات المعروفة في تنظيم الكود طبقاً لما تستخدمه
مثلاً أثناء إنشاء Class بلغة مثل ++C نضع الــ Private Variables آخر شئ في الكلاس، في حين في لغة Java نضع Public Static Constants قبل Private Variables في الكلاس، وهكذا في حال تكنولوجي معينة أو أي شئ. قم بتطبيق القواعد المعروفة لكي يكون الكود مفهوم أكثر بالنسبة لجميع من يستخدم نفس اللغة أو التكنولوجي (زملائك في المشروع مثلاً) وليس لك انت فقط.
النصيحة التاسعة: لا بد أن يكون الكلاس صغير ويقوم بشئ واحد فقط (Single Responsibility)
المبدأ واحد، أعتقد أن هذه النصيحة ليست جديدة ذكرناها بالفعل بشكل أو بآخر في كيفية بناء دالة على قواعد الكود النظيف.
النصيحة العاشرة: راجع الكلاس واتحقق من Single Responsibility إذا تتحققت هذه الأمور 👇👇
- اسم الكلاس كبير جداً؛ لأن من المفترض أن الكلاس يعبر عن مفهوم واحد فقط فغالباً إذا كان الاسم كبير بشكل مبالغ يكون الكلاس يعبر عن أكثر من مفهوم
- إذا لم يفهم كل زملائك في المشروع مراد الكلاس والغرض منه بشكل سلس، فغالباً الكلاس لم يراعي قواعد clean code
- الكلاس حجمه كبير، وهذا بالفعل لم يحقق الجزء الأول من النصيحة التاسعة، النصائح كلها متكاملة
لا تترددوا في مشاركة آرائكم أو استفساراتكم في قسم التعليقات أدناه. وإذا وجدتم الفائدة، تابعوا المدونة، وستجدون أيضاً مواضيع مختلفة في البرمجة والذكاء الاصطناعي.
كان معكم علي وحيد.
"اللهم إن كان من توفيق فمنك وحدك وإن كان من خطأ أو نسيان فمني ومن الشيطان."
