كتاب clean code عربي - ملخص كتاب clean code الشهير الجزء الرابع (الأخير)

كيف تكتب clean code 

في عالم تطوير البرمجيات، تُعتبر إختبارات الوحدة Unit Tests حجر الزاوية لضمان جودة الكود وموثوقيته. لكن، لماذا بالضبط يُعَد Unit Tests من أهم الأدوات في ترسانة أي مطور؟ سنكتشف ذلك في مقال اليوم وسنتعرف على أهم النصائح لكتابة Unit Test قوي طبقاً لكتاب clean code للعم بوب.

كتاب clean code عربي
كتاب clean code عربي - ملخص كتاب clean code الشهير الجزء الرابع (الأخير)

سنتحدث أيضاً عن مفهوم مهم من مفاهيم الــ Oop، الكل يستخدمه بشكل كبير عند بناء أي مشروع برمجي . سنتحدث عن الــ Classes وكيفية الإلتزام بقواعد الكود النظيف عند إنشائها. سعدت بوجودك في هذا المقال.

نصائح لكتابة كود نظيف

النصيحة الأولى: اجعل الــ Test Code مثل الــ Production Code

ينبغي لكي تكتب Unit Tests جيدة أن تطبق مبادئ الكود النظيف فيها، وتحرص عليها مثلما تفعل بالضبط مع الكود الفعلي للبرنامج؛ لأن ذلك سيسهل عليك الكثير فيما بعد، على سبيل المثال حتماً سيتم تحديث وتطوير أي برنامج بشكل عام في المستقبل، وبالتالي هنا سينفعك عنايتك بالــ Unit Test فلن تحتاج لإنشائه من جديد بل فقط ستعدل عليه بكل سهولة ويسر ليواكب التحديثات الجديدة.

  • يوجد Unit Tests جاهزة يمكنك إستخدامها مباشرة مثل الموجودة في gtest) Google Test)، ولكن لا تغنيك لأنك في كثير من الأحيان ستحتاج أن تصنع Unit Test مخصص أكثر للتحقق من شئ معين في برنامجك. 

النصيحة الثانية: اجعلها اختبارات صغيرة

اجعل كل اختبار يتحقق من حالة واحدة فقط، مما يجعل من السهل فهم النتائج وتحديد الأخطاء بسلاسة.

النصيحة الثالثة: اجعلها اختبارات سريعة (Fast)

يجب أن تكون اختبارات الوحدة سريعة لتشجيع تشغيلها بشكل متكرر خلال عملية التطوير؛ فلنفترض أن كل اختبار حتي يعمل run يحتاج ساعتين، فمن المؤكد أنك لن تستخدمه وبالتالي وجود الاختبار مثل عدمه وبالتالي وجود أخطاء في البرنامج لن تكتشفها إلا بعد فوات الأوان وبالتالي الله يعينك على إصلاحها ههههه.

النصيحة الرابعة: اجعلها اختبارات مستقلّة (Independent)

 كل اختبار يجب أن يكون قادرًا على التشغيل بشكل مستقل لا يعتمد بأي حال من الأحوال على أي اختبار آخر،  فلو عندنا مثلاً اختبار (A) واختبار (B)  وعملنا run لــ (A) قبل (B) لابد أن يعطي نفس النتيجة لو كان العكس.

النصيحة الخامسة: اجعلها تعمل في أي وقت وفي أي مكان (Repeatable)

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

النصيحة السادسة: اجعلها موضوعية (Self-Validating)

اختبارات الوحدة Unit Tests يجب أن تكون قادرة على تحديد نجاحها أو فشلها بشكل تلقائي، دون الحاجة إلى أي تدخل يدوي أو قراءة أي تفاصيل لتحديد النتيجة؛ لأن التدخل البشري ربما يؤدي إلى حدوث أخطاء وبالتالي انخفاض موثوقية هذه الاختبارات.

 النصيحة السابعة: اجعلها تصنع في الوقت المناسب (Timely)

أشار العم بوب في كتابه clean code أنه ينبغي كتابة الاختبارات قبل الكود الفعلي Production Code. هذا الأسلوب يُعرف باسم Test-Driven Development (TDD)، والسبب في ذلك أنه إذا قمت بكتابة الكود الفعلي أولاً، قد تجد صعوبة في كتابة اختبارات له لاحقًا بسبب شدة تعقيد الكود الفعلي. على عكس إذا كنت بدأت بالاختبارات فحينها ستشكل الكود الفعلي بسهولة بحيث يحقق هذه الاختبارات دون أي مشكلة أو تعقيد.

  • يمكننا تلخيص النصائح من 3-7 في كلمة "FIRST" تسهيلاً للتذكر كما ذكر العم بوب

 النصيحة الثامنة: اتبع المماراسات المعروفة في تنظيم الكود طبقاً لما تستخدمه

مثلاً أثناء إنشاء Class بلغة مثل ++C نضع الــ Private Variables آخر شئ في الكلاس، في حين في لغة Java نضع Public Static Constants  قبل Private Variables في الكلاس، وهكذا في حال تكنولوجي معينة أو أي شئ. قم بتطبيق القواعد المعروفة لكي يكون الكود مفهوم أكثر بالنسبة لجميع من يستخدم نفس اللغة أو التكنولوجي (زملائك في المشروع مثلاً) وليس لك انت فقط.

 النصيحة التاسعة: لا بد أن يكون الكلاس صغير ويقوم بشئ واحد فقط (Single Responsibility)

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

النصيحة العاشرة راجع الكلاس واتحقق من Single Responsibility إذا تتحققت هذه الأمور 👇👇

  • اسم الكلاس كبير جداً؛ لأن من المفترض أن الكلاس يعبر عن مفهوم واحد فقط فغالباً إذا كان الاسم كبير بشكل مبالغ يكون الكلاس يعبر عن أكثر من مفهوم
  • إذا لم يفهم كل زملائك في المشروع مراد الكلاس والغرض منه بشكل سلس، فغالباً الكلاس لم يراعي قواعد clean code
  • الكلاس حجمه كبير، وهذا بالفعل لم يحقق الجزء الأول من النصيحة التاسعة، النصائح كلها متكاملة

الخاتمة

كان هذا المقال الرابع والأخير من عدة مقالات بشرح فيها أهم النصائح لكتابة كود نظيف (رابط المقال الثالث) من كتاب Clean Code: A Handbook of Agile Software Craftsmanship للعم بوب؛ قدمت لكم فيه عشر نصائح في غاية الأهمية لكتابة clean code، وكانت نصائح اليوم تركز بشكل كبير على كيفية عمل إختبارات وحدة جيدة Unit Test، وبعض النصائح الهامة في كتابة Classes تتبع قواعد الكود النظيف.

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

كان معكم علي وحيد.

"اللهم إن كان من توفيق فمنك وحدك وإن كان من خطأ أو نسيان فمني ومن الشيطان."

المصادر


Ali Waheed

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

إرسال تعليق

أحدث أقدم

نموذج الاتصال