"إذا أراد العامل أن يؤدي عمله بشكل جيد، فعليه أولاً أن يشحذ أدواته." - كونفوشيوس، "مختارات كونفوشيوس. لو لينجونج"
الصفحة الأمامية > برمجة > فهم الكود النظيف: الظهور ⚡️

فهم الكود النظيف: الظهور ⚡️

تم النشر بتاريخ 2024-11-03
تصفح:988

Understanding Clean Code: Emergence ⚡️

يستكشف الفصل 12 من الكود النظيف، بعنوان "النشوء"، كيف تنشأ البرامج النظيفة جيدة التنظيم من الالتزام بمبادئ التصميم الأساسية.

يشير الظهور في تصميم البرمجيات إلى العملية التي ينشأ من خلالها السلوك أو الوظيفة المعقدة من قواعد بسيطة ومفهومة جيدًا.

يمكن أن يساعد اتباع هذه القواعد المطورين في تصميم برامج يسهل صيانتها وتوسيعها وفهمها.


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


؟ القواعد الأربعة للتصميم البسيط

  • اجتياز جميع الاختبارات
  • يكشف النية
  • لا يوجد تكرار
  • تقليل عدد الفئات والأساليب

دعونا نقسم كل قاعدة من هذه القواعد ونرى كيفية تطبيقها باستخدام جافا سكريبت.


1. يجتاز جميع الاختبارات

أساس البرامج النظيفة والناشئة هو أنها يجب أن تكون وظيفية.

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

في جافا سكريبت، يتم تحقيق ذلك غالبًا من خلال كتابة اختبارات الوحدة مع مكتبات مثل Jest أو Mocha.


function add(a, b) {
  return a   b;
}

// Test (using Jest)
test('adds 1   2 to equal 3', () => {
  expect(add(1, 2)).toBe(3);
});


من خلال التأكد من اجتياز البرنامج لجميع الاختبارات، فإنك تضمن أن النظام يعمل على النحو المنشود.

يبدأ الكود النظيف باختبارات موثوقة. وبدون هذا، لا يهم أي من القواعد الأخرى.


2. يكشف النية

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

الكود الذي يكشف عن غرضه لا يحتاج إلى شرح.

تسمية سيئة:


function d(x) {
  return x * 2;
}


حسن التسمية:


function doubleNumber(number) {
  return number * 2;
}


في هذه الحالة، يكشف doubleNumber() بوضوح عن غرض الوظيفة.

يمكن لأي شخص يقرأ هذا الرمز أن يفهم الغرض منه على الفور دون أي تفسيرات إضافية.

هذه الممارسة لا تقلل من الارتباك فحسب، بل تعمل أيضًا على تحسين إمكانية الصيانة.


3. لا الازدواجية

يعد النسخ في التعليمات البرمجية أحد أكبر أعداء البرامج النظيفة. يمكن أن يؤدي المنطق المتكرر إلى حدوث أخطاء وزيادة جهود الصيانة.

الهدف هو تقليل التكرار عن طريق تلخيص السلوكيات الشائعة في وظائف أو وحدات قابلة لإعادة الاستخدام.

تكرار الكود:


function calculateAreaOfSquare(side) {
  return side * side;
}

function calculateAreaOfRectangle(length, width) {
  return length * width;
}


تقوم كلتا الوظيفتين بإجراء حسابات مماثلة. من خلال إعادة البناء، يمكننا القضاء على الازدواجية.

لا يوجد تكرار:


function calculateArea(shape) {
  if (shape.type === 'square') {
    return shape.side * shape.side;
  } else if (shape.type === 'rectangle') {
    return shape.length * shape.width;
  }
}


من خلال تعميم الوظيفة، نتخلص من المنطق المتكرر ونجعل الكود أكثر قابلية للصيانة.


4. يقلل من عدد الفئات والأساليب

القاعدة الأخيرة للتصميم البسيط تشجع على تقليل عدد الفئات والأساليب دون التضحية بالوضوح.

وهذا يعني تجنب التعقيد غير الضروري.

يجب أن يكون لكل فئة أو وظيفة مسؤولية واضحة ومركزة، مع الالتزام بمبدأ المسؤولية الفردية (SRP).

طرق كثيرة جدًا:


class User {
  constructor(name) {
    this.name = name;
  }

  getName() {
    return this.name;
  }

  setName(name) {
    this.name = name;
  }

  printWelcomeMessage() {
    console.log(`Welcome, ${this.name}!`);
  }

  // Additional unrelated methods
  getUserProfile() {
    // ... some logic
  }

  logActivity() {
    // ... some logic
  }
}


هذا الفصل لديه الكثير من المسؤوليات. يجب أن يركز فقط على إدارة اسم المستخدم.

معاد تصميمه:


class User {
  constructor(name) {
    this.name = name;
  }

  getName() {
    return this.name;
  }

  setName(name) {
    this.name = name;
  }
}

class Logger {
  static logActivity(user) {
    // ... some logic
    console.log(`${user.getName()} performed an activity.`);
  }
}


من خلال فصل الاهتمامات، يصبح الكود أبسط وأسهل في الصيانة.

الآن، كل فئة لديها مسؤولية واحدة، مع الالتزام بمبادئ البساطة والبساطة.


خاتمة

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

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

برمجة سعيدة!

بيان الافراج تم نشر هذه المقالة على: https://dev.to/alisamir/understanding-clean-code-emergence-19bm?1 إذا كان هناك أي انتهاك، يرجى الاتصال بـ [email protected] لحذفه
أحدث البرنامج التعليمي أكثر>

تنصل: جميع الموارد المقدمة هي جزئيًا من الإنترنت. إذا كان هناك أي انتهاك لحقوق الطبع والنشر الخاصة بك أو الحقوق والمصالح الأخرى، فيرجى توضيح الأسباب التفصيلية وتقديم دليل على حقوق الطبع والنشر أو الحقوق والمصالح ثم إرسالها إلى البريد الإلكتروني: [email protected]. سوف نتعامل مع الأمر لك في أقرب وقت ممكن.

Copyright© 2022 湘ICP备2022001581号-3