هل أصبت بمتلازمة decoupling بالبرمجة؟
ايش معنى decoupling بالبرمجة؟
لو فككنا الكلمة فهمناها على طول
couple = زوج من الأشياء
decouple = فصل الزوجين
هذا يعتبر أحد أنماط التصميم بالبرمجة وتعال نتعرف عليه بالتغريدات الجاية
Decoupling
هو تجزئة المكونات البرمجية إلى أصغر جزء ممكن بحيث يمكن لكل جزء أن يعمل لوحده بشكل تام ويمكن استخدامه في حالات كثيرة دون ربطة بحالة استخدام وحدة
وهذا يعني أن التغيير في كود معين لا يعني أنه لازم نغير في كود ثاني لان كل شيء أصبح قائم بذاته
يتم هذا النوع من العمل عادة على الكلاسات
Classes
لو جيت تشوفها من منظور coupling فهذا يعني وجود علاقة relationship مع مكون آخر في البرمجيات ( كلاس(1) يعتمد عمله على كلاس ثاني(2))
هذا يعني انه الكلاس (1) قد يتأثر عمله لو تغير أي شيء في كلاس (2)
لكن decoupling تصميم يمنع هالشيء
كل نمط تصميمDesign Patterns في البرمجة له مزاياه وله عيوبه، وله مناصرينه وله أعداؤه لكن متى يكون هذا النمط سيء ؟
باختصار كل الأنماط سيئة إذا كان المردود منها غير مجدي! بمعنى لو اتبعت هذا النمط على كود انت عارف انه ماراح تستفيد منه أو مافيه حالات استخدام له حاليا فأنت تضيع وقتك
يتم عمل Decoupling بعدة طرق واشهرها استخدام
Dependency Injection
وهو مصطلح بـ 25$ لمفهوم بـ 5 سنت ?
- جيمس شور: مؤلف كتاب The Art of Agile Development
ومعناه باختصار أنه نعطي المكون عندنا الأشياء الي يحتاجها من "الخارج" حتى يأدي وظيفته بالكامل