نام‌گذاری و کدنویسی تمیز: یه هنر فراموش‌شده!

یادمه اوایل کار کردنم وقتی با محمد کد میزدیم همیشه یکی از چالش هایی که داشتیم این بود اسم گذاری اشتباه!
همیشه ی خدا روز چند ساعت بحث داشتیم تا اینو بهم یاد بده که اسم گذاری اصولی چیه!

چرا؟ چون هرکسی یه ذهنیت داره و داره با همون ذهنیت کد میزنه و خیلی طبیعیه که کد شما رو بقیه نفهمن! اما مگه میشه کد شما رو همکارتون نفهمه؟؟؟؟

این دقیقاً همون جاییه که می‌فهمیم نام‌گذاری توی برنامه‌نویسی یکی از سخت‌ترین و در عین حال مهم‌ترین کارهاست. به ظاهر ساده‌ست، اما وقتی به پروژه‌های بزرگ می‌رسی می‌بینی که اسم خوب مثل اکسیژنه: وجودش رو حس نمی‌کنی، ولی نبودش خفه‌ات می‌کنه!


چرا اسم مهمه؟

  • کد رو برای آدم‌ها می‌نویسیم، نه برای کامپیوتر.

  • اسم خوب باعث می‌شه کمتر نیاز به کامنت داشته باشیم.

  • فهمیدن هدف یک قطعه کد با اسم درست در یک نگاه ممکن می‌شه.


چند اصل طلایی در نام‌گذاری

۱. متغیرها باید اسم باشن (Noun)

متغیرها داده نگه می‌دارن. داده‌ها باید اسم داشته باشن.
مثال بد:

let x = 1500;  // ???

مثال خوب:

let monthlySalary = 1500;

۲. توابع و متدها باید فعل باشن (Verb)

تابع کاری انجام می‌ده. پس اسمش باید نشون بده چه عملی می‌کنه.

# بد
def data():
    ...

# خوب
def fetch_user_data():
    ...

۳. بولی‌ها رو مثبت نام‌گذاری کن

اسم بولی باید مثل یه سؤال بله/خیر باشه:

  • isValid

  • isComplete

  • hasPermission

اگه خواستی حالت مخالفش رو استفاده کنی، عملگر ! یا not همیشه در دسترسه.


۴. طولانی بودن بد نیست، مبهم بودن چرا

یه اسم طولانی و توصیفی بهتر از یه اسم کوتاه و گیج‌کننده‌ست.

// بعد از چند ماه این یعنی چی؟!
var a = GetData();  

// واضح و شفاف
var orderWithCharges = GetData();

۵. حروف و سبک نگارش مهمه

به‌خاطر فاصله‌نداشتن، سبک‌های مختلفی داریم:

  • PascalCase → برای کلاس‌ها: UserProfile

  • camelCase → برای متغیرها و توابع: fetchData

  • snake_case → بعضی زبان‌ها مثل Python: user_name

هرچی انتخاب کردی، فقط یکدست باش.


۶. اسم‌ها رو مفرد نگه دار

این یکی شاید عجیب باشه، ولی جواب می‌ده. به‌جای users، بگو userTable. به‌جای items، بگو itemList.

-- گیج‌کننده
SELECT * FROM users;

-- بهتر
SELECT * FROM user;

۷. متغیرهای خصوصی رو متمایز کن

مثلاً با پیشوند m یا _.

class Person {
  String _name; // private
  int age;      // public
}

۸. قانون طلایی: یکدست باش

هرچی انتخاب کردی، تا تهش برو. بدترین کابوس هر تیم کدی هست که نصفش camelCase باشه، نصفش snake_case.


چند نکته اضافه از تجربه‌ی شخصی

کامنت جای اسم رو نمی‌گیره

اسم درست باعث می‌شه حتی بدون کامنت هم کد خونده بشه. ولی اگه یه منطق پیچیده داری، کامنت کوتاه و مفید همیشه ارزشمنده.

مخفف ممنوع!

usrNm یا prmChk شاید امروز برات معنی داشته باشه، ولی سه ماه دیگه بهت نگاه می‌کنه می‌گه: "من کی بودم؟" 😅

مثال واقعی

یه کد شلوغ و مبهم:

function d(u) {
  if (!u) return -1;
  return 1;
}

نسخه‌ی تمیزتر:

function validateUser(user) {
  if (!user) return -1;
  return 1;
}

جمع‌بندی

اسم‌گذاری توی کدنویسی مثل تیتر توی روزنامه‌ست. یه نگاه به اسم باید بگه داستان چیه.

  • متغیر = اسم

  • تابع = فعل

  • بولی = حالت مثبت

  • طولانی = اوکی، مبهم = فاجعه

  • یکدست باش

در نهایت، کدی که امروز برای خودت می‌نویسی، فردا یه نفر دیگه (یا حتی خودت) باید بخونه. پس بهتره طوری اسم بذاری که کدت خودش حرف بزنه.