عند كتابة التعليمات البرمجية، فإن التسمية هي أحد الجوانب الأكثر أهمية والتي يتم التغاضي عنها.
يمكن أن تؤثر الأسماء التي نختارها للمتغيرات والوظائف والفئات والكيانات الأخرى في الكود الخاص بنا بشكل كبير على سهولة القراءة وقابلية الصيانة والجودة الشاملة.
يتعمق الفصل الثاني من Clean Code في فن وعلم اختيار الأسماء ذات المعنى، مما يوفر مجموعة من الإرشادات التي يمكن أن تساعد المطورين على كتابة تعليمات برمجية معبرة ومفهومة.
في منشور المدونة هذا، سنستكشف النقاط الرئيسية من هذا الفصل، مع توضيح كل مفهوم بأمثلة في JavaScript.
يجب أن تنقل الأسماء التي تختارها بوضوح القصد من وراء المتغير أو الوظيفة أو الفئة. يجب أن يكون القارئ قادرًا على فهم ما يفعله الكود دون الحاجة إلى سياق إضافي.
// Bad let d; // Good let daysUntilDeadline;
في المثال الأول، d غامض ولا يوفر أي سياق. النسخة المحسنة، dayUntilDeadline، تشير بوضوح إلى ما يمثله المتغير.
يجب ألا تكون الأسماء مضللة. تجنب استخدام الأسماء التي قد تنطوي على معنى مختلف عما يفعله الكود بالفعل.
// Bad let accountList = new Map(); // Good let accountsMap = new Map();
هنا، قد تكون accountList مضللة لأنها تقترح قائمة (وهي مجموعة مرتبة)، في حين أن بنية البيانات الفعلية هي خريطة. يعد استخدام خريطة الحسابات أكثر دقة.
إذا كنت بحاجة إلى التمييز بين المتغيرات أو الوظائف أو الفئات المتشابهة، فافعل ذلك بطريقة تجعل التمييز واضحًا وذا معنى.
// Bad getUserInfo(); getUserData(); // Good getUserProfile(); getUserSettings();
في المثال الأول، getUserInfo وgetUserData متشابهان جدًا ولا ينقلان اختلافاتهما بوضوح. يوضح المثال الثاني الفرق من خلال تسمية الوظائف بناءً على ما تُرجعه.
يجب أن تكون الأسماء سهلة القراءة والنطق. وهذا يجعل مناقشة الكود مع الآخرين أكثر سهولة.
// Bad let genymdhms; // Good let generationTimestamp;
genymdhms هو اسم غير قابل للنطق ومن الصعب تذكره أو مناقشته. ومع ذلك، فإن GenerationTimestamp واضح وسهل القول.
في قواعد التعليمات البرمجية الأكبر حجمًا، من المهم استخدام الأسماء التي يسهل البحث عنها. تجنب استخدام الأسماء المكونة من حرف واحد أو الأسماء المختصرة بشكل مفرط.
// Bad let e = document.getElementById('email'); // Good let emailInputElement = document.getElementById('email');
e لا يمكن البحث فيه بسهولة، ولا ينقل ما يمثله. يعتبر emailInputElement أكثر وصفًا ويسهل تحديد موقعه في قاعدة التعليمات البرمجية.
تجنب تضمين الأنواع أو البادئات أو الترميزات الأخرى في أسمائك. دع الاسم نفسه يكون وصفيًا بدرجة كافية.
// Bad let phoneString; // Good let phoneNumber;
في هذه الحالة، تتضمن سلسلة الهاتف ترميزًا غير ضروري للنوع (سلسلة). رقم الهاتف أبسط وأكثر مباشرة.
تمثل الفئات كائنات أو مفاهيم، لذا يجب أن تكون أسماؤها أسماء. أما الوظائف، من ناحية أخرى، فتمثل الأفعال، لذا يجب أن تكون أسماؤها أفعالًا.
// Class names (Nouns) class UserAccount {} class ShoppingCart {} // Function names (Verbs) function calculateTotal() {} function sendEmail() {}
يساعد هذا التمييز في فهم دور كل عنصر في الكود الخاص بك.
لا تجبر القارئ على ترجمة الاسم إلى شيء ذي معنى أكبر. يجب أن يكون الاسم واضحًا بذاته.
// Bad let n = 5; // Number of users // Good let userCount = 5;
n يتطلب من القارئ أن يتذكر أو يستنتج أنه يمثل عدد المستخدمين، في حين يكون عدد المستخدمين واضحًا على الفور.
يعد اختيار الأسماء ذات المعنى أكثر من مجرد مسألة أسلوب، فهو ممارسة أساسية في كتابة تعليمات برمجية نظيفة وقابلة للصيانة.
من خلال اتباع الإرشادات الموضحة في الفصل 2 من Clean Code، يمكنك تحسين إمكانية قراءة كود JavaScript الخاص بك وتسهيل فهمه وصيانته للآخرين (وأنت).
تذكر أن الهدف هو كتابة التعليمات البرمجية التي توصل غرضها ومنطقها، مما يقلل العبء المعرفي على القارئ.
في المرة القادمة التي تقوم فيها بتسمية متغير أو وظيفة أو فئة، فكر في مبادئ التسمية ذات المعنى وكيف يمكن أن تساهم في كود أكثر وضوحًا وفعالية.
برمجة سعيدة!
تنصل: جميع الموارد المقدمة هي جزئيًا من الإنترنت. إذا كان هناك أي انتهاك لحقوق الطبع والنشر الخاصة بك أو الحقوق والمصالح الأخرى، فيرجى توضيح الأسباب التفصيلية وتقديم دليل على حقوق الطبع والنشر أو الحقوق والمصالح ثم إرسالها إلى البريد الإلكتروني: [email protected]. سوف نتعامل مع الأمر لك في أقرب وقت ممكن.
Copyright© 2022 湘ICP备2022001581号-3