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

فهم الكود النظيف: الكائنات وهياكل البيانات⚡

تم النشر بتاريخ 2024-08-24
تصفح:420

Understanding Clean Code: Objects and Data Structures⚡

يعد فهم التمييز بين الكائنات وهياكل البيانات أمرًا بالغ الأهمية عند كتابة تعليمات برمجية نظيفة.

كلاهما لهما مكانهما في تصميم البرامج ولكنهما يخدمان أغراضًا مختلفة وهما الأنسب لسيناريوهات مختلفة.

في هذه المقالة، سنتعمق في الاختلافات بين الكائنات وهياكل البيانات، ونستكشف متى يتم استخدام كل منها، باستخدام أمثلة JavaScript لتوضيح المفاهيم.


؟ ما هي الكائنات؟

الكائنات هي أساس البرمجة الشيئية (OOP).

إنها تقوم بتغليف كل من البيانات والسلوك، مما يعني أنها لا تحتفظ بالمعلومات فحسب، بل توفر أيضًا طرقًا للتفاعل مع تلك المعلومات.

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

مثال للكائن:

class Rectangle {
  constructor(width, height) {
    this.width = width;
    this.height = height;
  }

  getArea() {
    return this.width * this.height;
  }

  getPerimeter() {
    return 2 * (this.width   this.height);
  }
}

const myRectangle = new Rectangle(5, 10);
console.log(myRectangle.getArea());       // Output: 50
console.log(myRectangle.getPerimeter());  // Output: 30

في هذا المثال، فئة المستطيل هي كائن يقوم بتغليف بيانات العرض والارتفاع، بالإضافة إلى الأساليب getArea() و getPerimeter().

البيانات الداخلية (العرض والارتفاع) محمية ولا يمكن الوصول إليها أو تعديلها إلا من خلال هذه الطرق.


؟ ما هي هياكل البيانات؟

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

يركزون على الكشف عن البيانات بدلاً من حمايتها، مما يجعلها في متناول الوظائف الخارجية للتلاعب بها.

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

مثال على بنية البيانات:

const rectangle = {
  width: 5,
  height: 10
};

function getArea(rectangle) {
  return rectangle.width * rectangle.height;
}

function getPerimeter(rectangle) {
  return 2 * (rectangle.width   rectangle.height);
}

console.log(getArea(rectangle));       // Output: 50
console.log(getPerimeter(rectangle));  // Output: 30

المستطيل هنا عبارة عن بنية بيانات. يعرض بياناته مباشرة، وتعمل الدالتان getArea() و getPerimeter() على هذه البيانات المكشوفة.

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


؟ متى تستخدم الكائنات

تعتبر الكائنات مثالية عندما تريد تغليف السلوك مع البيانات.

يسمح لك هذا التغليف بالتحكم في كيفية الوصول إلى البيانات وتعديلها، مما يوفر طبقة من الحماية.

الكائنات أيضًا مناسبة تمامًا للمواقف التي تحتاج فيها أنواع مختلفة من الكائنات إلى التفاعل مع بعضها البعض من خلال واجهات محددة جيدًا.

⚡ استخدم الأشياء عندما:

  • تحتاج إلى حماية الحالة الداخلية والتأكد من أنه لا يمكن تغييرها إلا من خلال طرق محددة.
  • تريد تحديد السلوك الذي يرتبط ارتباطًا وثيقًا بالبيانات.
  • أنت تعمل مع نظام معقد حيث التغليف والتجريد مهمان.

؟ متى تستخدم هياكل البيانات

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

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

⚡ استخدم هياكل البيانات عندما:

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

الوجبات السريعة الرئيسية؟

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

يعد فهم التمييز بين الكائنات وهياكل البيانات أمرًا ضروريًا لكتابة تعليمات برمجية نظيفة وقابلة للصيانة.

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

برمجة سعيدة!

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

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

Copyright© 2022 湘ICP备2022001581号-3