Magic number

Yassine Elyahyaoui 1/07/2016

كمبرمج يجب عليك أن تعرف بعض المفاهيم وكيف يمكنك التعامل معها خصوصا تلك التي تخص طريقة كتابة الكود وما يعرف ب Code quality, وسيتم طرح عدة مواضيع تخص هذا الامر أولها عن Magic numbers

ما هو Magic number؟


Magic Number هو استعمال مباشر للارقام في الكود الذي تكتبه, مثلا في حالة أردت أن تقوم بالتأكد أن قيمة متغير age ستكتب الكود على هذا الشكل :
if(age > 18){ .... }

في هذا المثال الرقم 18 يسمى Magic number 

ما المشكل المترتب عن استعمال Magic numbers؟

المشكل في استعمال الارقام بهذا الشكل يتضح مثلا عندما تريد تغيير هذه القيمة, تخيل أن هذا الرقم تستعمله أكثر من 10 مرات في الكود الذي كتبته, فلو أردت أن تغير من قيمة هذا الرقم يجب عليك أن تقوم بالتغيير 10 مرات ولو نسيت واحد منها ستقوم بتغيير عمل الكود


إذن ما الحل لمعالجة هذا الامر؟


الحل في أن تقوم بعمل متغير يحتوي على هذه القيمة بالشكل التالي(هذا مثال لكود بلغة جافا ويمكنك تعميم هذا الامر في كل اللغات)

public static final int MAX_RESTRICT_AGE = 18;
....
if(age > MAX_RESTRICT_AGE) {....} 

ماهي فوائد هذه الطريقة؟


بهذه الطريقة لو أردت تغيير هذه القيمة يكفي أن تغيرها مرة واحدة, كما أنه يمكنك استعمالها خارج هذه الكلاس بما أنها public static 
الفائدة الثانية هي أن هذه الطريقة تعطي كود سهل في القراءة والتعامل معه

وللاشارة بعض أدوات التي تقوم بمعاينة Code quality تقوم بتنبيهك عند استعمال مثل هذه الطريقة في الكود لتحويل الارقام لمتغيرات, وهذه الطريقة ينصح بها كذلك لكل أنواع المتغيرات ك String ...

وفي النهاية ما رأيك في هذه الطريقة؟ وهل كنت تعلم بهذا المفهوم من قبل؟

ليست هناك تعليقات:

إرسال تعليق