اهلا وسهلا بكم احبائي ان شاءالله في هذه المحاضرة سوف نتعلم ما اذا نعني بـ Solid Principle … لكن قبل البدء بهذا المفهوم .. يجب ان نعطيكم فكرة عن الـDesign Pattern او ماهو مفهوم الـ Design Pattern . حيث يجب على كل مبرمج ان يفهم جيدا هذا المصطلح لما له من اهمية كبيرة في اولى خطواتك البرمجية وفهم اساسيات الكود البرمجي ولماذا نكتب التعليمات البرمجية وما المفهوم من ذلك وما غرضها .
فلو افترضنا انك تعمل على مشروع برمجي او تخطط لبنا مشروع برمجي . فكيف تخطط لبناء هذا المشروع وما هي الطريقة التي سوف تؤسس مشروعك البرمجي وكتابة الكود لهذا المشروع .
وحتى تتحاشى مشكلات كتابة الكود لمشروعك . فينصح ان تختار طريقة معينة لكتابة الكود البرمجي وهذه الطريقة قد تم تجربتها وتمت عليها عملية الاختبار لسلامة الكود .. فلذلك جاء مصطلح يسمى الـ Design Pattern وهذا المصطلح فيه اكثر من طريقة واكثر من Pattern تم تجربتها من قبل .
اذن الـ Design Pattern : : هي مفاهيم وحلول لمشاكل برمجية تكررت اكثر من مرة وتم الاتفاق عليها بانها الطرق المناسبة لحل مثل هذه المشاكل او الحل الامثل لمشكلة معينه
للتوضيح اكثر .. لو ا فترضنا ان كتابة الكود ممكن ان يسبب مشاكل شائعة ومعروفة لذلك يجب اختيار طريقة مناسبة ليتم تطبيقها لكتابة الكود من الـ مجموعة الـ Design pattern ولتحاشي وقوع مثل هذه المشاكل .
بمعنى ماهي افضل طريقة برمجية ممكن ان تكتب فيها هذا الكود البرمجي لتحاشي وقوع مشاكل في المستقبل ويكون الكود قابل للتعديل في اي وقت من غير حدوث مشاكل برمجية تؤثر على المشروع
اذا الفائدة من استخدام الـ Design Pattern هو استخدام افضل الطرق المناسبة لكتابة الكود البرمجي حتى لانقع في مشاكل برمجية في المستقبل اذا طلب التعديل ويتم حلها في اقل مجهود
وهناك فائدة اخرى مهمة وهي انك تقلل من كتابة الكود بطريقة بسيطة فقد يكون الكود متشعب ومترابط ومتداخل مع بعضه وفي اكثر من مكان .مما يصعب تتبع الكود في حالة التعديل . لذلك جاء الـ مفهوم ال Design pattern ليقلل من الترابط ما بين اجزء الكود .
وهناك مفهوم مترابط مع الـ Design pattern يسمى الـ Solid Principle بمعنى انها مجموعة من المبادئ والقواعد التي يجب ان تمشي عليها عندما تقوم ببناء البرنامج لحل مشاكل معينة .. وكلمة Solid هي ليست مصطلع ولكن كل حرف يمثل قاعدة ومبدأ مفهوم برمجي .. لاحظ معي الصورة
الصور اعلاه توضح اننا معنا خمس مبادئ مأخوذة من كلمة SOLID .. وهي كتالي :
- S = Single Responsibility Principle : بمعنى ان المكان الذي اكتب فيه الكود يجب ان يكون مسؤول عن عملية معينة او شئ محدد
- O =Open/Close Principle : بمعنى ان المكان الذي كتبت فيه الكود يكون مغلق ولكن مفتوح لعملية التطوير على الكود .
- L =Liskov Substation Principle : هذا المفهوم خاص بالوراثة فمثلا لو معنا Object بتورث من بعضها فمن الممكن ان استخدام نفس الـ Object في مكان اخر من غير ان يؤثر ذلك على الكود بمعنى لو انا معي Object A يورث من Object B فلو قمت بعمل استبدال اي A مكان B يعمل بشكل طبيعي
- I =Interface Segregation Principle : بمعنى مبدأ الفصل للواجهة ..
- D = Dependency Inversion principle : بمعنى لو معنا Class به دالة وهذا الكلاس يورث من نفس الـ Interface عندئذا الـ Classe يجب ان لايعرف عن تنفيد هذه الدالة في الـ Interface