SOLID Principles: 1- Single Responsiblity Principle (SRP) [بالعربي]
By Passionate Coders | محمد المهدي · more summaries from this channel
14 min video·ar··22452 views
Summary
يشرح هذا الفيديو مبدأ المسؤولية الواحدة (SRP) كأول مبدأ من مبادئ SOLID، مؤكداً على أن كل كلاس يجب أن يكون له مسؤولية واحدة فقط وسبب واحد للتغيير، مما يسهل عملية التطوير والصيانة.
Key Points
- —يقدم الفيديو مبدأ المسؤولية الواحدة (SRP) كأول مبدأ من مبادئ SOLID، والذي يهدف إلى تحسين تصميم الكلاسات لتسهيل التطوير والصيانة وحل المشكلات.
- —يتم تقديم مفهوم "التماسك" (Cohesion)، حيث يشير التماسك العالي (High Cohesion) إلى أن جميع الميثودات في الكلاس مرتبطة ارتباطاً وثيقاً بمسؤوليته الواحدة، مما يؤدي إلى تصميم أفضل وأسهل في الصيانة والفهم.
- —ينص مبدأ المسؤولية الواحدة على أن الكلاس يجب أن يكون له مسؤولية واحدة فقط وسبب واحد للتغيير، مما يعني أن جميع الميثودات بداخله يجب أن تخدم غرضاً واحداً.
- —تتضمن عملية إعادة الهيكلة (Refactoring) استخراج الميثودات التي تنتمي إلى مسؤوليات مختلفة إلى كلاسات جديدة مخصصة (مثل `JobApplicationMailer` للمهام المتعلقة بالبريد الإلكتروني و`Logger` للتسجيل).
- —يتم توضيح أن الكلاس يمكنه استدعاء ميثودات من كلاسات أخرى (مثل استدعاء `JobApplicationMailer` لكلاس `MailSender`) دون انتهاك مبدأ المسؤولية الواحدة، طالما أن المسؤولية الأساسية للكلاس المستدعي تظل مميزة وهو يقوم بتفويض مهمة فرعية.
- —يبرز الفيديو أن تحديد المسؤولية الواحدة للكلاس هو الجانب الأكثر تحدياً في مبدأ المسؤولية الواحدة، وغالباً ما يتطلب الخبرة والحكم الشخصي والمناقشات الجماعية.
- —يوضح المتحدث كيفية تحديد التماسك المنخفض (Low Cohesion) من خلال تحليل كلاس `JobVacancyManager` الذي كان يحتوي في البداية على ميثودات لإدارة الوظائف الشاغرة، وإرسال رسائل البريد الإلكتروني للتقديم، والتسجيل، مما يشير إلى مسؤوليات متعددة.
- —بعد إعادة الهيكلة، يحتفظ كلاس `JobVacancyManager` فقط بالميثودات المتعلقة مباشرة بإدارة الوظائف الشاغرة، محققاً تماسكاً عالياً حيث أن جميع ميثوداته ضرورية لمسؤوليته الواحدة.
- —يحذر الفيديو من الإفراط في الهندسة (Over-engineering) عن طريق إنشاء عدد كبير جداً من الكلاسات (مثل كلاس لكل ميثود)، مما قد يؤدي إلى "كارثة الإفراط في الهندسة".
- —يوضح الفيديو أن مبدأ المسؤولية الواحدة لا يعني إنشاء كلاس منفصل لكل ميثود، بل يعني أن جميع الميثودات داخل الكلاس يجب أن تخدم مسؤولية واحدة محددة.
Copy All
Share Link
Share as image
Bookmark
More Resources
Get key points from any YouTube video in seconds




