شاید انتخاب نام مناسب برای متغیر ها و تابع هامون یه مقدار زمان بیشتری ببره ولی بعدا از صرف ساعت ها فکر کردن برای درک کد پیشگیری میکنه. برای همین هرموقع احساس کردین اسم بهترین برای متغیرهاتون پیدا کردین، بهتره که عوضش کنین.
اسم ها باید انقدر واضح باشن که بدون نیاز به کامنت نوشتن، هدف، نحوه استفاده و کاربردش رو توضیح بده و جای هیچ سوالی باقی نذاره. مثلا این اسم هیچ مفهومی نداره و برای درکش باید براش کامنت نوشته بشه:
int a // age
اما این کد کاملا واضح و نیاز به کامنت نداره:
int age int daysSinceCreation
گاهی فکر میکنیم اسمی که انتخاب کردیم واضحه ولی درواقع اینطور نیست چون ما فقط شرایط حال حاضر رو درنظر میگیریم و داریم به حافظمون اعتماد میکنیم. مثل این:
List list
درسته که اسمی انتخاب کردیم که مشخص میکنه متغیرمون یه لیست ولی معلوم نیست چه اطلاعاتی داخلش هست
List studentList
این اسم خیلی واضح تره و مشخصه که لیستی از دانش آموز ها هست.
یه حالتی که خیلی هم رایجه استفاده از حالت مخفف و کوتاه شده یه کلمه هست مثل:
int cnt int hp
شاید تو فضای فکری حال حاضر شما خیلی واضح باشه که اینا چی هستن ولی بهتره از اسم کاملش استفاده بشه:
int counter int healthProgress
یه سری اسم ها هستن که واضح نیستن ولی به صورت تف مال کار مارو راه میندازن چون نمیخوایم بیشتر زمان بزاریم و اسم مناسبی براش پیدا کنیم مثل:
string ProductInfo string ProductData string TheProduct
اینا اصلا وضوح و توضیحی به کد ما نمیده.
مراقب اسم هایی که اختلاف خیلی کمی باهم دارن باشین چون خیلی راحت ممکنه شمارو به اشتباه بندازن:
string XYZControllerForEfficientHandlingOfStrings string XYZControllerForEfficientStorageOfStrings
اگه بتونین از اسمایی که تلفظ راحت تری داره استفاده کنین قطعا راحت ترین. مثلا انتخاب این اسم باعث میشه هربار کلی تلاش کنین تا تلفظش کنین:
int PlayerDeteriorate
بجاش میشه از کلمه ای که شاید دقیقا اون معنی رو نده ولی خیلی واضح تره استفاده کرد:
int PlayerDamage
یه نکته ای به صورت تجربی دستتون میاد اینه که از اسم هایی استفاده کنین که تا حد ممکن یکتا یا یونیک باشن چون خیلی پیش میاد که بین هزاران خط کد، دنبال متغیری هستین که یه بخشایی از اسمش یادتون هست، اینجوری اگه سرچ کنین خیلی راحت بهش میرسین. بعلاوه بعضی زبون های برنامه نویسی IDE های قدرتمندی ندارن تا موقع تغییر نام یه متغیر یا یه تابع، تمام جاهایی که از اون استفاده شده هم اسمش تغییر کنه. اینجاست که شما مجبور میشین از قابلیت replace استفاده کنین و با کلی ترس و لرز این کارو بکنین بعد ببینین اسم خیلی چیزای دیگه هم تغییر کرد و یه دردسری براتون میشه. مثلا این اسم ها خیلی رایجه:
string name int counter int result
ولی این اسم ها یونیک تره:
string customerFirstName int levelFinalScore
یه سری اسم ها هستن که همه بهش عادت کردن و اگه شما تغییرش بدین، کسی که کد شمارو میخونه باید فکر کنه و تو ذهنش بگه آها منظورش همون فلان چیزه. مثلا همه تو حلقه شمارنده رو i میزارن و اگه یه حلقه دیگه داخلش باشه شمارندشو j میزارن. اگه شما بجاش از q و w استفاده کنین باعث سردرگمی میشه. مگر اسمی انتخاب کنین که خیلی واضح منظورتون رو برسونه.