الفرق بين المراجعتين لصفحة: «Refactoring/shotgun surgery»

من موسوعة حسوب
أنشأ الصفحة ب'<noinclude>{{DISPLAYTITLE:تغيير الأصناف المتعدِّدة (Shotgun Surgery)}}</noinclude> == ملاحظة قبل البدء == إنّ مشكلة تغيي...'
 
ط مراجعة وتدقيق.
 
(مراجعة متوسطة واحدة بواسطة مستخدم واحد آخر غير معروضة)
سطر 10: سطر 10:


== وما الحل؟ ==
== وما الحل؟ ==
نقل سلوك (behaviour) الأصناف إلى صنفٍ (class) واحدٍ عبر [[Refactoring/move method|نقل التوابع (move methods)]] و<nowiki/>[[Refactoring/move field|نقل الحقول (move fields)]] إلى الصنف المناسب أو إنشاء صنفٍ جديدٍ عند عدم وجوده، فإن أصبحت الأصناف الأصليّة فارغةً بعد نقل الشيفرة منها إلى صنفٍ واحدٍ فمن الأفضل التُخلُّص منها عبر [[Refactoring/inline class|الأصناف المباشرة (inline class)]].
نقل سلوك (behaviour) الأصناف إلى صنفٍ (class) واحدٍ عبر [[Refactoring/move method|نقل التوابع (move methods)]] و<nowiki/>[[Refactoring/move field|نقل الحقول (move fields)]] إلى الصنف المناسب أو إنشاء صنفٍ جديدٍ عند عدم وجوده، فإن أصبحت الأصناف الأصليّة فارغةً بعد نقل الشيفرة منها إلى صنفٍ واحدٍ فمن الأفضل التُخلُّص منها عبر [[Refactoring/inline class|تضمين الأصناف (inline classes)]].


== إليك المزيد ==
== إليك المزيد ==
سطر 28: سطر 28:
[[تصنيف:Refactoring]]
[[تصنيف:Refactoring]]
[[تصنيف:Refactoring Smells]]
[[تصنيف:Refactoring Smells]]
[[تصنيف:Refactoring Classes]]
[[تصنيف:Refactoring Change Preventers]]

المراجعة الحالية بتاريخ 14:05، 26 فبراير 2019

ملاحظة قبل البدء

إنّ مشكلة تغيير الأصناف المتعدِّدة هي المشكلة المعاكسة تمامًا لمشكلة التغيير المتشعِّب (Divergent Change)، إذ إنّ التغيير المتشعِّب هو مجموع التغييرات الكثيرة التي تُجرَى في صنفٍ (class) واحدٍ، أما تغيير الأصناف المتعدِّدة فهو تغييرٌ واحدٌ يُجرَى في العديد من الأصناف.

توصيف المشكلة

يتطلَّبُ أيُّ تعديلٍ تقوم به إجراءَ تغييراتٍ طفيفةٍ بأصناف (classes) متفرِّقة.

أسبابها

توزيع مهمةٍ واحدةٍ على الكثير من الأصناف، ويحدث هذا نتيجةً للتطبيق المفرط للتغيير المُتشعِّب (Divergent Change).

وما الحل؟

نقل سلوك (behaviour) الأصناف إلى صنفٍ (class) واحدٍ عبر نقل التوابع (move methods) ونقل الحقول (move fields) إلى الصنف المناسب أو إنشاء صنفٍ جديدٍ عند عدم وجوده، فإن أصبحت الأصناف الأصليّة فارغةً بعد نقل الشيفرة منها إلى صنفٍ واحدٍ فمن الأفضل التُخلُّص منها عبر تضمين الأصناف (inline classes).

إليك المزيد

ستحصل بعلاجك المشكلة على:

  • تنظيمٍ أفضل للشيفرة.
  • تقليل الشيفرات المُتكرِّرة (duplications).
  • صيانةٍ (maintenance) أسهل.

انظر أيضًا

مصادر