إلى المبتدئين في صناعة البرمجيات.. حان الوقت للانتقال إلى المستوى التالي باعتماد قواعد الكود النظيف Clean Code.
اذا كنت مبرمج متمرس أو حتى متوسط فأنت تعرف أهمية الكود النظيف clean code .. في هذا الثريد 👇 رح نوضح أهم القواعد العامة لكتابة الكود النظيف Clean Code.
@programming_4
اذا كنت مبرمج متمرس أو حتى متوسط فأنت تعرف أهمية الكود النظيف clean code .. في هذا الثريد 👇 رح نوضح أهم القواعد العامة لكتابة الكود النظيف Clean Code.
@programming_4
-عدد متغيرات أقل ما يمكن:
لا يختلف اثنان على ضرورة تخفيض عدد المتغيرات والدوال والـ classes. إلخ، للوصول إلى كود أسهل وذي أفكار أبسط.
-عدم التكرار:
هذا شيء معروف عند الجميع، علينا أن نلغي كل الأسطر المتفرقة ذات نفس المهمة، ونجمعها في سطر واحد أو دالة واحدة نستدعيها عند اللزوم.
لا يختلف اثنان على ضرورة تخفيض عدد المتغيرات والدوال والـ classes. إلخ، للوصول إلى كود أسهل وذي أفكار أبسط.
-عدم التكرار:
هذا شيء معروف عند الجميع، علينا أن نلغي كل الأسطر المتفرقة ذات نفس المهمة، ونجمعها في سطر واحد أو دالة واحدة نستدعيها عند اللزوم.
-اجتياز كافة الاختبارات:
هناك بيئات عمل معروفة أو ما تسمى Test-driven development TDD لاختبار الأكواد البرمجية، وهي عبارة عن أكواد برمجية عادية تقوم بفحص الكود البرمجي والهدف منها هو وضع معايير عامة للمشروع.
هناك بيئات عمل معروفة أو ما تسمى Test-driven development TDD لاختبار الأكواد البرمجية، وهي عبارة عن أكواد برمجية عادية تقوم بفحص الكود البرمجي والهدف منها هو وضع معايير عامة للمشروع.
-وضوح الهدف والبساطة:
يجب أن تكون مهمة كل دالة واضحة، وألا تتشعب فيها المهام لأداء كثير من الأفكار فإن كانت دالة ما لها وظيفة عداد على سبيل المثال، فلا يجب تضمين مهام أخرى فيها حتى لو كانت الأمور تسير بدون أخطاء وهذا ينطبق على الكود ككل.
يجب أن تكون مهمة كل دالة واضحة، وألا تتشعب فيها المهام لأداء كثير من الأفكار فإن كانت دالة ما لها وظيفة عداد على سبيل المثال، فلا يجب تضمين مهام أخرى فيها حتى لو كانت الأمور تسير بدون أخطاء وهذا ينطبق على الكود ككل.
-المحافظة على السياق:
إذا كتبت دالة ما باستخدام طريقة ما، وكان عليك كتابة دالة مشابهة ولكن لغرض آخر، فاستخدم نفس الطريقة التي استخدمتها في الدالة الأولى.
إذا كتبت دالة ما باستخدام طريقة ما، وكان عليك كتابة دالة مشابهة ولكن لغرض آخر، فاستخدم نفس الطريقة التي استخدمتها في الدالة الأولى.
كيف نكتب الكود النظيف Clean Code؟
-اجعل الأسماء ذات معنى:
يجب أن تكون أسماء المتغيرات والدوال وكل شيء في الكود البرمجي يشير إلى عمله، فالمتغير الذي يعبر عن سيارة يجب أن يكون اسمه car وليس x، وإن كنت تريد إنشاء دالة تقوم بالعد فسمها count وليس c مثلاً.
-اجعل الأسماء ذات معنى:
يجب أن تكون أسماء المتغيرات والدوال وكل شيء في الكود البرمجي يشير إلى عمله، فالمتغير الذي يعبر عن سيارة يجب أن يكون اسمه car وليس x، وإن كنت تريد إنشاء دالة تقوم بالعد فسمها count وليس c مثلاً.
-لا تستخدم الاختصارات:
وكما قلنا عن وجوب استخدام الأسماء المعبرة، فبالتأكيد يجب عدم استخدام الاختصارات، يجب أن يكون الكود مقروء للجميع، فمتغير اسمه name لا يجب أن يُختصر إلى nm، ومتغير اسمه lastName لا يجب أن يُختصر إلى ln.
وكما قلنا عن وجوب استخدام الأسماء المعبرة، فبالتأكيد يجب عدم استخدام الاختصارات، يجب أن يكون الكود مقروء للجميع، فمتغير اسمه name لا يجب أن يُختصر إلى nm، ومتغير اسمه lastName لا يجب أن يُختصر إلى ln.
-اختر الأسماء البسيطة:
قد تشعر بالحيرة بعض الأحيان عند تسمية بعض الدوال، وستتخلص من هذه الحيرة إذا اتبعت قاعدة المَهمّة الواحدة للدالة التي سنأتي على ذكرها لاحقاً، لا تستخدم مهاراتك اللغوية في كتابة الأسماء، فدالة وظيفتها الحذف يمكن تسميتها بكل بساطة delete وليس kill.
قد تشعر بالحيرة بعض الأحيان عند تسمية بعض الدوال، وستتخلص من هذه الحيرة إذا اتبعت قاعدة المَهمّة الواحدة للدالة التي سنأتي على ذكرها لاحقاً، لا تستخدم مهاراتك اللغوية في كتابة الأسماء، فدالة وظيفتها الحذف يمكن تسميتها بكل بساطة delete وليس kill.
-طريقة التسمية:
اختر صيغة الفعل لتسمية الدوال أي بدلاً من taxCalculator قم بتسميتها calculateTax، أما فيما يتعلّق بتسمية classes فعلى العكس أي استخدم معها صيغة الوصف أو الاسم بدلاً من الفعل.
اختر صيغة الفعل لتسمية الدوال أي بدلاً من taxCalculator قم بتسميتها calculateTax، أما فيما يتعلّق بتسمية classes فعلى العكس أي استخدم معها صيغة الوصف أو الاسم بدلاً من الفعل.
كما لا تنس القواعد المعروفة باستخدام أسلوب camelCase في التسمية المركبة والتي تبدأ فيها أول كلمة بحرف صغير والكلمة الثانية بحرف كبير وذلك لسهولة القراءة.
كما يجب أن تبدأ التسمية بحرف صغير للدوال والمتغيرات بشكل عام، أما classes فيجب أن تبدأ بحرف كبير.
كما يجب أن تبدأ التسمية بحرف صغير للدوال والمتغيرات بشكل عام، أما classes فيجب أن تبدأ بحرف كبير.
-التعليقات:
ومع أني أحب كتابة التعليقات، إلا أن قواعد الكود النظيف تقول أنه يجب أن يشرح نفسه بنفسه وهو لا يحتاج إلى التعليقات مطلقاً! بل وعلى العكس لو كان الكود مفهوماً فما احتاج إلى تعليقات بالأصل! طبعاً باستثناء التعليقات حول حقوق التأليف والاستخدام أو التعريف بالبرنامج ككل.
ومع أني أحب كتابة التعليقات، إلا أن قواعد الكود النظيف تقول أنه يجب أن يشرح نفسه بنفسه وهو لا يحتاج إلى التعليقات مطلقاً! بل وعلى العكس لو كان الكود مفهوماً فما احتاج إلى تعليقات بالأصل! طبعاً باستثناء التعليقات حول حقوق التأليف والاستخدام أو التعريف بالبرنامج ككل.
-الدوال:
حاول أن تتصف الدوال بالصفات التالية:
-ذات حجم صغير-
حاول أن لا يكون طول الدالة أكثر من 10 أو 15 أو 20 سطراً هذه أمثلة عليك جعلها أقصر ما يمكن.
-ذات اسم معبر عن مهمتها-
عدد الـ arguments أقل ما يمكن. ثلاثة على الأكثر، وإلا عليك التفكير بكتابتها على شكل class.
حاول أن تتصف الدوال بالصفات التالية:
-ذات حجم صغير-
حاول أن لا يكون طول الدالة أكثر من 10 أو 15 أو 20 سطراً هذه أمثلة عليك جعلها أقصر ما يمكن.
-ذات اسم معبر عن مهمتها-
عدد الـ arguments أقل ما يمكن. ثلاثة على الأكثر، وإلا عليك التفكير بكتابتها على شكل class.
-لها مهمة واحدة محدد-
حاول أن يكون للدالة مهمة واحدة حتى يستطيع الأصدقاء فهم ما يحصل.
-اجعل الأسطر قصيرة قدر الإمكان:
لا تجعل القارئ مضطراً لتمرير النافذة أفقياً ليقرأ سطراً طويلاً.
في الحقيقة الموضوع يطول ويطول وتبقى الخطوات السابقة جزءاً من كم لا بأس به من القواعد العامة
حاول أن يكون للدالة مهمة واحدة حتى يستطيع الأصدقاء فهم ما يحصل.
-اجعل الأسطر قصيرة قدر الإمكان:
لا تجعل القارئ مضطراً لتمرير النافذة أفقياً ليقرأ سطراً طويلاً.
في الحقيقة الموضوع يطول ويطول وتبقى الخطوات السابقة جزءاً من كم لا بأس به من القواعد العامة
لكتابة الكود النظيف، ربما ستتعلمها بشكل عملي من المجتمع الخاص بلغة البرمجة التي تعمل بها ولكن كبداية يمكنك الاستعانة بكتاب:
Clean Code: A Handbook of agile software craftsmanship
الذي يعتبر أحد أبرز الكتب في هذا المجال.
Clean Code: A Handbook of agile software craftsmanship
الذي يعتبر أحد أبرز الكتب في هذا المجال.
جاري تحميل الاقتراحات...