اريد ان افهم ماهو code smells
ماهو code smells
بالنسبة لمصطلح code smells هو يُعبر عن بعض المشاكل التي عندما تجدها في الشفرة يُعد ذلك إشارة عن سوء التصميم , بعض علامات الcode smells
- data clumbs : عندما يكون لدينا مجموعة من المتغيرات يتم تمريرها عادةً سويًا , على سبيل المثال
public int doSomeThingWithPoint(int x, int y, int z)
- تلك الدالة تقوم بإستقبال الإخداثيات الثلاثة الخاصة بنقطة ما ومن ثم تقوم بعملية ما على تلك النقطة, هذا يُعد إشارة لتصميم سيئ, يمكننا تعديل التصميم ونضع المتغيرات الثلاثة في صنف يُعبر عن النقطة كما يتضح
public class Point{ public setX(){ //set x} public setY(){ //set y} public setZ(){ //set y} ///getters }
- data classes : في المثال السابق عالجنا مشكلة الdata clumps ولكن تسببنا في ظهور مشكلة جديدة وهي data classes أي أصناف لا يوجد بها إلا getters , setters لا يوجد بها دوال فعلية, يمكننا معالجة تلك المشكلة عبر نقل دالة doSomeThing إلى الصنف point
public class Point{ public setX(){ //set x} public setY(){ //set y} public setZ(){ //set y} ///getters public doSomeThing(){ //do something with point } }
- shotgun surgery: عندما تقوم بعمل تعديل على دالة ما وتتسبب في جعلك تحتاج تعديل على دوال واماكن اخرى كثيرة غيرها, هذا علامة على التصميم السيئ حيث من علامات التصميم الجيد أن التغيير في أحد الدوال أو الأصناف لا يؤثر على باقي البرنامج:
ومن المفيد حتى نتجنب الcode smells أن نحاول إتباع مبادئ SOLID قدر الإمكان , ويمكنك قراءة المزيد عن مبادئ SOLID عبر الرابط التالي
https://academy.hsoub.com/t...
التعليقات