SOLID (تصميم كائني المنحى)

من ويكيبيديا، الموسوعة الحرة
اذهب إلى: تصفح، ‏ ابحث

SOLID (بالعربية:  سوليد) هو اسمً تاجي استذكاري وضعه مايكل فيذرز اختصاراً للمبادئ الخمسة الأولى المقترحة من قبل روبرت سي. مارتن[1] في بداية عام 2000[2] والمتبعة في البرمجة والتصميم كائني المنحى. هذه المبادئ هي: Single responsibility (بالعربية:  مسؤولية إفرادية) وOpen-closed (بالعربية:  فتح-إغلاق) وLiskov substitution (بالعربية:  استبدال ليسكوف) وInterface segregation (بالعربية:  فصل الواجهة) وDependency inversion (بالعربية:  عكس التبعية). تهدف هذه المبادئ لدى تطبيقها إلى زيادة احتمال قيام المبرمج بتطوير نظامٍ سهل الصيانة والتمديد مستقبلاً[2]. يمكن القول أن مبادئ سوليد هي مجموعة من الإرشادات التي يؤدي تطبيقها أثناء تطوير النظام البرمجي إلى إزالة روائح الكود بسبب دفع المبرمج إلى إعادة هيكلة الكود مراراً وتكراراً إلى أن يحصل في النهاية على كود برمجي سهل القراءة والتمديد. تُعتبر سوليد جزءاً من استراتيجية شاملة خاصة بالمنهجيات التكيفية والأجايلية[2].

لمحة عامة[عدل]

الحرف

الاستهلالي

يرمز إلى المفهوم
S SRP [3]
Single responsibility principle (بالعربية:  مبدأ المسؤولية الإفرادية)
يمتلك الصف مسؤولية إفرداية فقط (بمعنى أن أي تعديل على توصيف البرنامج يجب أن يكون له تأثير على توصيف الصف).
O OCP [4]
Open-closed principle (بالعربية:  مبدأ فتح-إغلاق)
يجب أن تكون البنى البرمجية مفتوحة إلى التمديد ومغلقة بالنسبة للتعديل.
L LSP [5]
Liskov substitution principle (بالعربية:  مبدأ استبدال ليسكوف)
يجب على الكائنات الموجودة أثناء عمل البرنامج أن تكون قابلة للاستبدال بكائنات أخرى وارثة لها دون التأثير على صحة البرنامج.
I ISP [6]
Interface segregation principle (بالعربية:  مبدأ فصل الواجهة)
إن وجود عدد من الواجهات الخاصة بالزبون أفضل كثيراً من وجود واجهة وحيدة عمومية الأهداف.
D DIP [7]
Dependency inversion principle (بالعربية:  مبدأ عكس التبعية)
"يجب الاعتماد على التجريدات وليس التحقيقات"، عكس التبعية هي طريقة تساعد على اتباع هذا المفهوم.

المراجع[عدل]

  1. ^ “الحصول على بداية سوليد.”، روبرت سي. مارتن (“العم بوب”), objectmentor.com. (إنجليزية)
  2. ^ أ ب ت “التصميم الكائني المنحى سوليد”، ساندي ميتز (جامعة ديوك)، تموز، 2009. (إنجليزية)
  3. ^ "Single Responsibility Principle".  (إنجليزية)
  4. ^ "Open/Closed Principle".  (إنجليزية)
  5. ^ "Liskov Substitution Principle".  (إنجليزية)
  6. ^ "Interface Segregation Principle".  (إنجليزية)
  7. ^ "Dependency Inversion Principle".  (إنجليزية)