كيفية استخدام الكود النظيف في برامجنا؟
كيفية استخدام الكود النظيف في برامجنا؟
كتابة كود البرنامج شيء ، لكن كتابة كود نظيف ومقروء شيء آخر. ولكن ماذا يسمى الرمز النظيف؟ لقد كتبت هذا المقال لجميع المبتدئين الذين يخططون لكتابة كود نظيف. لنفترض أنك تقرأ مقالاً ، يوجد في الفقرة الأولى ملخص لما ستتبعه في هذه المقالة.
هناك عناوين مختلفة في هذه المقالة ، كل منها يحتوي على عدد من الفقرات. تتكون الفقرات نفسها من مجموعة من المعلومات التي تسهل عليك قراءة المقالة. لنفترض الآن أنه لا توجد عناوين أو عناوين في المقالة ، فلن يكون لديك سوى فقرات طويلة يكون ترتيبها مربكًا لك.
لا يمكنك معرفة الكثير من نظرة سريعة على مقال ما وعليك قراءة المحتوى بعناية للحصول على تعليق منه. قد يكون هذا محبطًا لك. يجب أن يكون الرمز الخاص بك مثل مقال جيد.
فكر في الفئات والملفات كعناوين وطرق على أنها فقرات. الجمل تشبه عباراتك في البرمجة. فيما يلي بعض ميزات التعليمات البرمجية النظيفة:
- يتم التركيز على الكود النظيف – يجب أن تقوم كل وظيفة أو فصل دراسي أو وحدة نمطية بعمل شيء واحد ، وتقوم به بشكل جيد.
- يجب أن يكون الرمز النظيف لطيفًا وسلسًا ، ويجب أن يكون الرمز النظيف سهل القراءة ، ويجب أن ترسم قراءته ابتسامة على وجهك ، بعد قراءة الكود يجب أن تعرف بالضبط ما يتم فعله.
- يتم إيلاء المزيد من العناية لتنظيف الكود ، يجب أن يأخذ المبرمجون وقتًا لتبسيط الكود وتبسيطه. تولي هذه الأنواع من المبرمجين مزيدًا من الاهتمام للتفاصيل.
- يجب أن يجتاز الكود النظيف الاختبارات ، الكود الذي لا يجتاز مرحلة الاختبار ليس نظيفًا.
لكن السؤال الذي قد يدور في ذهنك الآن هو كيفية كتابة كود نظيف كمبرمج مبتدئ؟
استخدم المسافات البادئة والتنسيق المتسق
إذا لم يتم احترام تباعد الأسطر في الكتب ، فإن قراءتها تصبح مهمة صعبة. حجم الخط والمكان الذي يجب أن تستخدم فيه الأسطر الفارغة مهمان للغاية. هذا صحيح تمامًا بالنسبة لرموزك. لتنظيف التعليمات البرمجية الخاصة بك وتسهيل قراءتها ، تأكد من استخدام المسافات البادئة والأسطر الفارغة والتنسيق المتسق.
يوجد أدناه مثال جيد وسيئ على ذلك.
مثال جيد:
1 2 3 4 5 6 7 | function getStudents(id) { if (id !== null) { go_and_get_the_student(); } else { abort_mission(); } } |
بإلقاء نظرة سريعة على الكود أعلاه ، يمكنك بسهولة معرفة أن التعبير if / else مستخدم في الوظيفة. جعلت الأقواس المتوافقة والمسافات البادئة من السهل رؤية بداية ونهاية كتلة الكود ، وقد لوحظ الاتساق في استخدام الأقواس ، أي أن قوس البداية والنهاية محددان بوضوح لكل جزء من الكود.
مثال على المثال التالي:
1 2 3 4 5 6 7 8 9 10 | function getStudents(id) { if (id !== null) { go_and_get_the_student();} else { abort_mission(); } } |
ولكن ما الخطأ في المثال أعلاه؟ لم يتم استخدام المسافة البادئة بشكل صحيح ولا يمكنك معرفة مكان نهاية الدالة أو بداية كتلة if / else؟ التراكبات مربكة وغير متسقة. التباعد بين السطور غير متناسق.
ربما تكون العيوب المذكورة في المثال أعلاه مبالغًا فيها بعض الشيء ، لكن هذا المثال البسيط يوضح استخدام فترات الاستراحة والتوافق جيدًا. لا اعرف ما هو رايك؟ لكنني أعلم جيدًا أن الشفرة النظيفة يجب أن تتمتع بسهولة قراءة أفضل.
لكن الخبر السار هو أن العديد من بيئات البرمجة الحالية تقوم بذلك تلقائيًا نيابة عنك ، حتى أنه يمكنك استخدام المكونات الإضافية المقابلة لهذه المهمة. بعض الإضافات هي:
- في VS Code استخدم المكوّن الإضافي Prettier
- في Atom ، استخدم المكوّن الإضافي Atom Beautify
- في Sublime Text استخدم المكوّن الإضافي Prettify
استخدم متغيرات واضحة وأسماء مناسبة للطرق
في بداية المقال ، تحدثت عن أهمية قراءة الكود. أحد الجوانب المهمة في هذا هو الأسماء التي تختارها ، وكان هذا أحد الأشياء التي كافحت معها في وقت مبكر. دعنا نلقي نظرة على مثال حيث تتم قاعدة التسمية بشكل جيد:
1 2 3 4 5 6 7 8 9 | function changeStudentLabelText(studentId){ const studentNameLabel = getStudentName(studentId); } function getStudentName(studentId){ const student = api.getStudentById(studentId); return student.name; } |
يعتبر الكود أعلاه رمزًا جيدًا من نواح كثيرة. يتم تسمية وظائفها وحججها بوضوح ، عندما يقرأ المطور هذا الرمز ، فإن وظائفه واضحة في ذهنه. إنه يعلم أنه إذا استدعى الوظيفة getStudentName باستخدام المعرف studentId ، فسيحصل على اسم الطالب. داخل دالة استدعاء getStudentName ، تم تسمية المتغيرات والأساليب بوضوح.
كيفية استخدام الكود النظيف في برامجنا
يعد استخدام الأسماء بشكل صحيح للمبتدئين أكثر صعوبة مما تعتقد ، خاصةً عندما ينمو تطبيقك ويزداد عدد أسطر التعليمات البرمجية ، فمن الأفضل استخدام قواعد محددة للتسمية.
استخدم أسلوب تسمية محددًا في جميع أنحاء التطبيق الخاص بك. من القاعدة camelCase أو استخدم under_scores (أحدهما ، وليس كليهما)
قم بتسمية الوظائف والطرق والمتغيرات وفقًا لما تفعله ، إذا كان النص الخاص بك يرجع شيئًا من الكلمة get استخدمه في بداية التسمية
ملاحظة: إذا كان هناك الكثير من الأشياء التي تقوم بها طريقتك بحيث لا يمكنك اختيار الاسم الصحيح لطريقتك ، فمن الأفضل تقسيم طريقتك إلى طرق أصغر ، في هذه الحالة ، ستؤدي كل طريقة ناتجة مهمة محددة.
استخدم التعليقات عند الضرورة
ربما تكون قد سمعت مقولة مفادها أن الكود الخاص بك يجب أن يشرح ما يفعله ، مما يعني أن الكود الخاص بك يجب أن يكون مكتوبًا جيدًا بحيث لا يحتاج إلى تعليقات ، ولكن هذه نقطة مثالية. بالطبع ، لا يزال عالم البرمجة بعيدًا عن هذه النقطة. لذلك في بعض الأحيان تكون التعليقات ضرورية وواجبة.
التعليقات الوثائقية
تعليقات التوثيق هي تعليقات تصف الوظيفة المحددة لطريقة أو فئة. إذا كنت تكتب مكتبة ، فستكون تعليقات التوثيق مفيدة للمطورين الذين يخططون لاستخدام مكتبتك. فيما يلي مثال على هذه التعليقات:
1 2 3 4 5 6 7 8 9 10 11 12 13 | /** * Solves equations of the form a * x = b * @example * // returns 2 * globalNS.method1(5, 10); * @example * // returns 3 * globalNS.method(5, 15); * @returns {Number} Returns the value of x for the equation. */ globalNS.method1 = function (a, b) { return b / a; }; |
كيفية استخدام الكود النظيف في برامجنا
التعليقات Clarification
التعليقات Clarification تحدد تفسيرات لأولئك الذين يعتزمون الحفاظ على عملك وتطويره. يوضح المثال التالي هذه الأنواع من التعليقات:
1 2 3 4 5 6 7 8 9 10 11 12 | /* This function calls a third party API. Due to some issue with the API vender, the response returns "BAD REQUEST" at times. If it does, we need to retry */ function getImageLinks(){ const imageLinks = makeApiCall(); if(imageLinks === null){ retryApiCall(); } else { doSomeOtherStuff(); } } |
أمثلة على التعليقات السيئة
فيما يلي بعض الأمثلة على التعليقات التي يجب تجنبها. فهي ليست عديمة القيمة فحسب ، بل يمكنها أيضًا أن تسبب الارتباك:
تعليق متكرر لا يخلق قيمة:
1 2 | // this sets the students age function setStudentAge(); |
أو تعليق مضلل:
1 2 | //this sets the fullname of the student function setLastName(); |
تعليق مضحك :
1 2 | // this method is 5000 lines long but it's impossible to refactor so don't try function reallyLongFunction(); |
تجنب تكرار الرموز
في أبسط مستوى تحتاجه لتقليل مقدار الكود المكرر ، يمكن أن يصبح الكود المكرر كابوسًا للتغيير والمحافظة عليه في المستقبل. حاول دائمًا استخدام وظيفة كوحدة في وظيفة ، وفي هذه الحالة عند تغييرها أو تحريرها ، سيتم تطبيق التغييرات على المشروع بأكمله. خلاف ذلك ، يجب عليك البحث في أماكن مختلفة في البرنامج للعثور على رموز مماثلة.
لا تقم بتنظيف الكود كثيرًا
يواصل بعض المطورين تنقية الكود الخاص بهم بقلق شديد ، احذر من أن هذا قد يكون له تأثير معاكس ، في الواقع سيكون له تأثير سلبي على إنتاجيتك.
أخيرا نتمنى أن يكون درس كيفية استخدام الكود النظيف في برامجنا؟ قد أفادكم
يسعدنا إثراء الموضوع من خلال تعليقاتكم و استفساراتكم المفيدة
مع تحيات موقع hdegy