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

 كتابة كود نظيف clean code

أتعرف أهمية الــدالة (function)؟! إذا كنت حتى في بدايك في تعلم البرمجة فأعتقد أنك لاحظت كم هي مهمة وأساسية في بناء أي برنامج، من أجل كتابة clean code ينبغي التعامل مع الدالة معاملة خاصة، سنتعلم في مقال اليوم أساليب مهمة جداً لكتابة دالة جيدة مبنية على أسس الكود نظيف، سعدت بوجودك في هذا المقال.

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

إذا كنت تكتب تعليقات (comments) بكثرة من أجل أن يكون كودك واضح لمن يراه ! سنتكلم في هذا الموضوع أيضاً في مقال اليوم ونرى هل هذا في صالح كتابة الكود النظيف أم لا.

نصائح لكتابة clean code

الكود النظيف يبدو دائماً كأنه كتب من قبل شخص يهتم "Clean code always looks like it was written by someone who cares"

النصيحة الأولى: أجعل الدالة قصيرة قدر الإمكان

من مواصفات الدالة الجيدة أن تحتوي على عدد صغير من الأسطر، وقال العم بوب أنه من 10-20 سطر كود فعلي كحد أقصى شئ جيد؛ لأن هذا سيجعل الدالة واضحة مفهومة، وسيساعد في بناء كود نظيف فيكون من السهل التعامل مع الكود فيما بعد وصيانته والتطوير فيه.

  النصيحة الثانية: طبق قاعدة السطر الواحد

 عند عمل if, else, for, while...statement احرص على أن تحتوى على سطر واحد من الكود، ولنكون واقعيين ربما من الصعب القيام بهذا الشئ، ولكن أعتقد أنه يمكنك فعل ذلك عن طريق جعل هذا السطر عبارة عن دالة، والدالة نفسها يمكن وضع بها عدد من الأسطر والذي قلنا أنه من 10-20 سطر كود.

  النصيحة الثالثةيجب أن تقوم الدالة بشيء واحد، يجب أن تقوم به جيداً، ويجب أن تقوم به فقط

من المهم جداً جدً أن تكون الدالة لها وظيفة واحدة فقط تقوم بها، وتقوم بها على أكمل وجه؛ فلا يكون عندك دالة تقوم بجمع رقمين ونفس الدالة تطرح رقمين ويسلام لو تقوم بالضرب والقسمة أيضاً، ساعتها الله يرحم الــ clean code هههه.

  النصيحة الرابعة: ما يهم هو(ماذا) وليس (كيف)

من أجل كتابة عدد أسطر كود قليلة ولكي تكون الدالة ذات كفاءة عالية ستحتاج إلى إستخدم مبدأ التجريد Abstraction، ولمن لا يعرف فكرة الــ Abstraction هو تقليل التعقيد عن طريق إخفاء التفاصيل المعقدة وإظهار فقط الوظائف الأساسية. الهدف هو تقديم واجهة بسيطة وواضحة للمستخدم أو المبرمج بحيث يمكنهم استخدام هذه الوظائف دون الحاجة إلى معرفة التفاصيل الداخلية لكيفية تنفيذها.
في أخر هذا الفيديو مثال عملي لكيفية تطبيق هذه النصيحة بدقة 👇👇👇



  النصيحة الخامسة: بشكل عام حاول قدر الإمكان تقليل عدد البارميترات parameters الممرة للدالة

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

النصيحة السادسة: انتبه يوجد فرق بين الــ Function وبين الــ Procedure رغم أنهما نفس الــ Syntax

يجب معرفة الفرق بين الـ Function والـ Procedure جيداً. وللتوضيح عند إنشاء Function، يتم تصميمها بحيث ترجع قيمة (Value) وتكون هذه وظيفتها الرئيسية، وعادةً ما يتم تصميمها لتجنب الأثر الجانبي (Side Effect) في أي مكان آخر في البرنامج. وهذا ما نريده بالضبط، وهو جعل الـ Function لا تحدث أي تأثير جانبي. لا بد من فعل ذلك من أجل كتابة كود نظيف ويكون البرنامج عالي الكفاءة.

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

  • في بعض لغات البرمجة، الـ Procedures و Functions يمكن أن تُستخدم بشكل تبادلي مثل Python وغيرها، والتفريق بينهما قد لا يكون دائماً.
 النصيحة السابعة: الــ Exception handling اجعله في دالة، واجعله لوحده

مهم جداً أن تقوم باستخدام try و catch لمعالجة الأخطاء المتوقع حدوثها في البرنامج في المستقبل، ولكن الأهم لكتابة Clean Code هو أن تنشئهما في دالة وتكون هذه وظيفتها الوحيدة.
 
النصيحة الثامنةأسماء الدوال يجب أن تكون وصفية

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

النصيحة التاسعةتجنب استخدام الــ flag arguments

للتوضيح، يمكننا القول أن الــ flag arguments هي عبارة عن parameters تمرر إلى الدوال لتحديد سلوكها. على سبيل المثال، يمكننا تمرير قيمة true أو false إلى دالة ما لتحديد ما إذا كانت الدالة تقوم بمهمة معينة أم لا. هذا يمكن أن يؤدي إلى دالة تقوم بأكثر من مهمة بناءً على قيمة هذه الــ parameters  (ضد مبادئ الكود النظيف).

 كما قلنا عندما تستخدم هذه الــ parameters، فإن الدالة تبدأ في تنفيذ مهام مختلفة بناءً على قيمة هذه الــ parameters، فيزداد تعقيد وصعوبة الدالة ولا يمكن فهمها بسهولة، وبالتالي يزداد تعقيد البرنامج كله ولا يكون مبني بــ clean code.

النصيحة العاشرة: كتابة التعليقات comments عبارة عن فشل ذريع

حاول قدر الإمكان التقليل من كتابة التعليقات، فلا تكتب تعليق على كود كي توضحه؛ لأنه في الغالب بسبب سوء الكود وعدم تطبيقك لقواعد الكود النظيف كنت في حاجة إلى توضيحه بتعليق، دائماً إذا احتجت إلى كتابة تعليق تأكد من تطبيقك لمبادئ الــ Clean Code

(تطبيق على معظم نصائح كتابة الدوال المذكورة بــ ++C)

كتاب clean code عربي
كتاب clean code عربي

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

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

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

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

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

المصادر


Ali Waheed

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

إرسال تعليق

أحدث أقدم

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