> ## Content Index
> Fetch the complete content index at: https://informatic-ar.com/llms.txt
> Use this file to discover other available public pages before exploring further.

# ما هي رائحة الكود Code Smell؟
- URL: https://informatic-ar.com/code-smell/
- Published: 2013-09-30T20:17:51.000Z
- Updated: 2016-05-25T18:47:16.000Z
- Author: أحمد عصام
- Tags: مقالات عامة, code smell, #wordpress-archive, #Import 2026-10-03 20:48

ال Code Smell هي علامات وإشارات داخل الكود تدل على أن هناك خلل في التصميم.

بحد ذاتها لا تعتبر خطأ برمجي Software Bugs ، وربما نجد أكواد مليئة بهذه الروائح لكنها تعمل على ما يرام دون أي مشاكل.

أحد الأمثلة الشهيرة على هذه الراوئح هي وجود دالة تحوي مئات الأسطر Long Method وربما تستقبل العديد من الوسائط Too many parameters ، أو نجد كائن يقوم بعمل كل شيء God Object.

أيضا كمثال آخر- دائما ما يقع فيه المطورين المبتدئين- هو وجود أجزاء مكررة في الكود Code Duplication.

لو نظرنا الى هذه العلامات أو الروائح Smells في الكود نجد أنها من الناحية التقنية ربما تكون صحيحة ، لكن تكمن المشكلة في حالة تم تغيير متطلبات المشروع وكانت هناك حوجة الى القيام بالتعديل على مثل هذه الأكواد أو إضافة خصائص وميزات جديدة.

ما يمكن أن نتوقعه في مثل هذه الحالات ، هو أن سرعة تنفيذ هذه المتطلبات الجديدة ستكون بطيئة جدا وربما لن يتمكن المطور من تطبيقها أو في بعض الحالات سينتج عن تطبيقها العديد من الأخطاء البرمجية.

مهندس البرمجيات [Kent Beck](http://en.wikipedia.org/wiki/Kent%5FBeck?ref=informatic-ar.com) مخترع منهجية التطوير [XP](http://en.wikipedia.org/wiki/Extreme%5FProgramming?ref=informatic-ar.com) هو أول من بدأ باستخدام هذا المصطلح للدلالة على أن هناك خلل ربما يبدوا بسيطا في أول الأمر لكن سرعان ما سيتحول إلى كارثة حقيقة في المستقبل. ظهر المصطلح وانتشر بين مهندسي البرمجيات بعدما شارك Kent Beck في كتابة الكتاب [Refactoring: Improving the Design of Existing Code](http://www.amazon.com/Refactoring-Improving-Design-Existing-Code/dp/0201485672?ref=informatic-ar.com) والذي يعتبر من أفضل الكتب في المجال لمهندسي البرمجيات ومطوري التطبيقات.

وللتخلص من هذه الروائح سنحتاج الى وضع تعريف لعملية إعادة هيكلة وتنظيم الكود **Code refactoring** وفق القواعد والأسس التي تم اقتراحها في الكتاب أعلاه وفي عدة كتب أخرى. وسنترك تلك المعلومة في درس قادمة ان شاء الله.

نختم الحديث بأن هناك العديد من هذه ال Smells التي يصعب سردها جميعا ، لذلك حتى تنضج هذه المعلومة نرحب بإضافة أي Smell واجهتك خلال كتابتك للتطبيقات أو عند قرائتك لأكواد زملائك.