ال Code Smell هي علامات وإشارات داخل الكود تدل على أن هناك خلل في التصميم.
بحد ذاتها لا تعتبر خطأ برمجي Software Bugs ، وربما نجد أكواد مليئة بهذه الروائح لكنها تعمل على ما يرام دون أي مشاكل.
أحد الأمثلة الشهيرة على هذه الراوئح هي وجود دالة تحوي مئات الأسطر Long Method وربما تستقبل العديد من الوسائط Too many parameters ، أو نجد كائن يقوم بعمل كل شيء God Object.
أيضا كمثال آخر- دائما ما يقع فيه المطورين المبتدئين- هو وجود أجزاء مكررة في الكود Code Duplication.
لو نظرنا الى هذه العلامات أو الروائح Smells في الكود نجد أنها من الناحية التقنية ربما تكون صحيحة ، لكن تكمن المشكلة في حالة تم تغيير متطلبات المشروع وكانت هناك حوجة الى القيام بالتعديل على مثل هذه الأكواد أو إضافة خصائص وميزات جديدة.
ما يمكن أن نتوقعه في مثل هذه الحالات ، هو أن سرعة تنفيذ هذه المتطلبات الجديدة ستكون بطيئة جدا وربما لن يتمكن المطور من تطبيقها أو في بعض الحالات سينتج عن تطبيقها العديد من الأخطاء البرمجية.
مهندس البرمجيات Kent Beck مخترع منهجية التطوير XP هو أول من بدأ باستخدام هذا المصطلح للدلالة على أن هناك خلل ربما يبدوا بسيطا في أول الأمر لكن سرعان ما سيتحول إلى كارثة حقيقة في المستقبل. ظهر المصطلح وانتشر بين مهندسي البرمجيات بعدما شارك Kent Beck في كتابة الكتاب Refactoring: Improving the Design of Existing Code والذي يعتبر من أفضل الكتب في المجال لمهندسي البرمجيات ومطوري التطبيقات.
وللتخلص من هذه الروائح سنحتاج الى وضع تعريف لعملية إعادة هيكلة وتنظيم الكود Code refactoring وفق القواعد والأسس التي تم اقتراحها في الكتاب أعلاه وفي عدة كتب أخرى. وسنترك تلك المعلومة في درس قادمة ان شاء الله.
نختم الحديث بأن هناك العديد من هذه ال Smells التي يصعب سردها جميعا ، لذلك حتى تنضج هذه المعلومة نرحب بإضافة أي Smell واجهتك خلال كتابتك للتطبيقات أو عند قرائتك لأكواد زملائك.
شكرا جزيلا على الكتاب
كلمة “God object” أخشى أن تكون زلة