سؤال

في معالجة البيانات، وكثيرا ما تحتاج إلى إنشاء بنية بيانات البحث إلى تعيين معرف واحد إلى آخر. وكمثال ملموس، دعونا نلقي هيكل التي تتولى تعيين 1 إلى 1 بين كود 2 طابع البلد واسمها الكامل. في ذلك سيكون لدينا

AD -> Andorra   
AE -> United Arab Emirates  
AF -> Afghanistan

ما هو اسم جيد للمتغير الذي سيحمل هذه الخريطة؟ بعض الأفكار (أنا استخدام أسماء الإبل الحالة):

countryNameByCode
nameByCodeLookup
nameCodeLookup
codeToName
هل كانت مفيدة؟

المحلول

وسيكون لي التصويت سيكون لcodeToName في هذه الحالة بالذات، وانا اعتقد ان يعمم. هذا لا يعني أنه اسم لكنت قد اخترت نفسي في جميع الحالات؛ هذا يعتمد كثيرا على نطاق ومزيد من التغليف، وهلم جرا. لكنه يشعر وكأنه اسم جيد، وهذا من شأنه أن يساعد جعل التعليمات البرمجية قراءة:

String country = codeToName["SV"];

ويبدو لطيفا إلى حد ما، يجب أن تكون مفهومة بسهولة من قبل أي شخص. ربما تغيير كلمة "مدونة" إلى شيء أكثر دقة ( "بلد +" سيكون خياري التالي).

نصائح أخرى

country_name = countries_by_code[country_code]

ويمر اختبار "الهاتف الإملاء"، ويبدو أيضا أكثر مثل اللغة الطبيعية.

وأود أن استخدام صيغ الجمع للمجموعات.

countryNames

وتحرير: countryCodes هو الخطأ لأنك رسم من رمز لاسم

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

وcountryCodeMappingByName

وأو إذا تعيين فريد من نوعه، ببساطة:

وcountryCodeMapping

RWendi

استخدم الأمر الذي يبدو صحيحا عندما نطق به. وهذا يعني أيضا تسمية المتغيرات الرئيسية بشكل مناسب. مثال:

countryName = countries[countryCode];

وهذا يجعل الشعور بالكمال - كنت تعطي countries على countryCode، وتقوم بإرجاع countryName. وهذا من شأنه أن يكون زائدا عن الحاجة:

countryName = countryCodesToNames[countryCode];

في C #، وكنت أدعو النوع الذي يفعل هذا CountryCodeToNameMapping. عادة ما أسميه على countryCodeToNameMapping متغير، ولكن في بعض سياقات محدودة جدا (<م> منها مثلا. ، lambdas)، فما استقاموا لكم فاستقيموا ربما نسميها c أو m.

وصوت آخر لمجرد pluralizing ما كنت رسم خرائط ل.

وعلى سبيل المثال. country = countries[code]

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top