ConstructiCat Logo
CodeBust.
Browse section ▾

الهوس بالأنواع الأساسية.

استخدام الأنواع الأساسية (primitives) بدلاً من الكائنات الصغيرة للمهام البسيطة (مثل العملة، النطاقات، سلاسل النصوص الخاصة بأرقام الهواتف، إلخ.) استخدام الثوابت لترميز المعلومات (مثل الثابت USER_ADMIN_ROLE = 1 للإشارة إلى المستخدمين الذين لديهم صلاحيات المسؤول.) استخدام الثوابت النصية كأسماء حقول للاستخدام في مصفوفات البيانات.

##Signs and Symptoms

  • استخدام الأنواع الأساسية (primitives) بدلاً من الكائنات الصغيرة للمهام البسيطة (مثل العملة، النطاقات، سلاسل النصوص الخاصة بأرقام الهواتف، إلخ.)

  • استخدام الثوابت لترميز المعلومات (مثل الثابت USER_ADMIN_ROLE = 1 للإشارة إلى المستخدمين الذين لديهم صلاحيات المسؤول.)

  • استخدام الثوابت النصية كأسماء حقول للاستخدام في مصفوفات البيانات.

##Reasons for the Problem

مثل معظم الروائح الأخرى، يولد الهوس بالأنواع الأساسية في لحظات الضعف. قال المبرمج: "مجرد حقل لتخزين بعض البيانات!". إن إنشاء حقل أساسي أسهل بكثير من إنشاء فئة جديدة تماماً، أليس كذلك؟ وهكذا تم الأمر. ثم دعت الحاجة لحقل آخر وتمت إضافته بنفس الطريقة. وبمرور الوقت، أصبحت الفئة ضخمة ويصعب التعامل معها.

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

مثال آخر على الاستخدام السيئ للأنواع الأساسية هو محاكاة الحقول. تحتوي الفئة على مصفوفة كبيرة من البيانات المتنوعة، وتُستخدم الثوابت النصية (المحددة في الفئة) كفهارس (indices) للمصفوفة للحصول على هذه البيانات.

##Payoff

  • يصبح الكود أكثر مرونة بفضل استخدام الكائنات بدلاً من الأنواع الأساسية.

  • فهم وتنظيم أفضل للكود. تكون العمليات على بيانات معينة في نفس المكان بدلاً من أن تكون مبعثرة. لا مزيد من التخمين حول سبب كل هذه الثوابت الغريبة وسبب وجودها في مصفوفة.

  • سهولة أكبر في العثور على الكود المكرر.