Table of Contents
أولاً ما المقصود بـ SOLID
هو مصطلح مركب من مجموعة حروف وهي المباديء الخمسة التي وضعها روبرت مارتن عام 2000 وتعمل هذه المبادي على رفع كفاءة التصميم البرمجي بحيث تصبح قابلة للتطوير والصيانة ،وأكد روبرت سي كارتن المعروف أيضاً بالعم بوب في كتابه Clean Architecture على ضرورة كتابة كود جيد لكي نصل إلى البرمجيات الجيدة
انظر الشكل التالي لتعرف أكثر:
ثانياً: مايجب معرفته عن Laravel SOLID
– مبدأ المهمة الواحدة (SRP) Single responsibility principle :
وهذا ما يشير إليه حرف S ويعني أن كل كائن يجب أن تكون له مهمة واحدة فقط
– مبدأ المفتوح المغلق (OCP) Open-closed principle :
وهذا ما يشير إليه حرف O ويعني أن البنية البرمجية يجب أن تكون متاحة للتطوير وغير قابلة للتعديل
– مبدأ استبدال ليسكوف (LSP) Liskov substitution principle:
وهذا ما يشير إليه حرف L ويعني استبدال كائنات بكائنات أخرى فرعية دون التأثير على صحة البرنامج
– مبدأ فصل الواجهة(ISP) Interface segregation principle :
وهذا ما يشير إليه حرف I ويعني تقسيم الواجهات أو الفئات الكبيرة جدًا إلى واجهات أصغر
– مبدأ عكس التبعي (DIP) Dependency inversion principle :
وهذا ما يشير إليه حرف D ويعني جعل الوحدات عالية المستوى مستقلة عن تفاصيل تنفيذ الوحدات منخفضة المستوى
تذكر جيداً
- مبدأ المسئولية الفردية يشير إلى التركيز على القيام بمهمة واحدة فقط جيداً وهذا يساعد في عدم تعقيد الكود
- مبدأ الفتح والإغلاق يشير إلى قابلية إضافة وظائف جديدة دون التغيير في الكود الحالي
- مبدأ استبدال ليزكوف من الممكن أن يشير إلى استبدال فئات فرعية ترث من الفئة الأساسية
- مبدأ فصل الواجهة يشير هذا المبدأ إلى إمكانية إنشاء واجهات أصغر وذات مهام محددة
- مبدأ عكس التبعية يشير إلى إمكانية تغيير التبعية دون التأثير على الكود
وهذه الخمسة مبادي التي غايتها جعل البرامج والأنظمة البرمجية مرنة وقابلة للتطوي والصيانة وأقل تعقيداً
هناك كود سيء مكتوب بشكل منظم وهناك أيضاً كود جيد مكتوب بشكل فوضوي ، الهدف من المباديء الخمسة أن نصل إلى الكود الجيد المكتوب بشكل منظم
هل تم سؤالك في مقابلة عمل عن هذه المباديء؟
مبدأ المهمة الواحدة
S=> (SRP) Single responsibility principle
مبدأ المفتوح المغلق
O=> (OCP) Open-closed principle
مبدأ استبدال ليسكوف
L=> (LSP) Liskov substitution principle
مبدأ فصل الواجهة
I=>(ISP) Interface segregation principle
مبدأ عكس التبعية
D=> (DIP) Dependency inversion principle
وهذه الخمسة مبادي التي غايتها جعل البرامج و الأنظمة البرمجية مرنة و قابلة للتطوير والصيانة وأقل تعقيداً
هناك كود سيء مكتوب بشكل منظم و هناك أيضاً كود جيد مكتوب بشكل فوضوي ، الهدف من المباديء الخمسة أن نصل إلى الكود الجيد المكتوب بشكل منظم
هيا بنا نكتب كوداً نظيفاًوساعدت المباديء التي وضعها روبرت سي مارتن المبرمجين على كتابة كود نظيف Clean Code فيجب عليك عزيزي المبرمج فهم الخمسة مباديء فهماً جيداً لتكون برمجياتك اكثر مرونة و قابلة للصيانة و التطوير
لعلك فهمت الآن أهمية SOLID في البرمجة و كتابة الكود وهذه المفاهيم عادة مايتم سؤالك عنها في مقابلات العمل الخاصة بإطار لارافيل ولذلك يجب عليك عزيزي المبرمج عدم إهمال فهم هذه المباديء فهماً جيداً حتى تكون قادراً على كتابة الكود النظيف المنظم الغير عشوائي وهذا سيجعل الأنظمة البرمجية تعمل بكفاءة وستلاحظ الفرق عند استخدامك وتطبيقك لهذه المفاهيم في كتابة الكود البرمجي التي ستجعل برنامجك قابل للتطوير والتوسع والصيانة وهذا ما تم ذكره في هذه المقالة وأكدت عليه الكثير من الموضوعات التي تناولت توضيح هذه المباديء
ولعل هذا المقال يتناول الموضوع كمقدمة جيدة لكي تكون قادراً على الإجابة عن الأسئلة المتعلقة بمفاهيم SOLID وهذا سوف يتيح لك الخلفية الجيدة للبحث أكثر وفهم تطبيق هذه المفاهيم عملياً
وهناك مشاريع عملية سوف تساعدك على تطبيق هذه المفاهيم من خلال مشاريع لارافيل حقيقية وكل ماعليك هو البحث وستجد دورات مناسبة لكي تصل إلى البرمجيات المرنة المفهومة
فهيا انطلق واكتب كوداً جيداً منظماً ، نتمنى أن تكون قضيت وقتاً ممتعاً مفيداً معنا.