یکی از نکات کلیدی برای موفقیت در برنامهنویسی، استفاده از قواعد نامگذاری مناسب است. قواعد نامگذاری نه تنها باعث خواناتر شدن کد میشوند، بلکه در مدیریت و نگهداری کد هم بسیار مفیدند. اگر به دنبال برنامهنویسی بهینه و حرفهای هستید، یادگیری و رعایت این قواعد میتواند شما را به سمت نوشتن کدهای کارآمدتر هدایت کند.
بسیاری از برنامهنویسها در اوایل مسیر یادگیری خود، به نامگذاری متغیرها و توابع توجه نمیکنند! این موضوع علاوه بر اینکه باعث کاهش خوانایی کد آنها میشود، عادت اشتباه و نامناسبی را در آنها نهادینه میکند. استفاده از نامهای معنادار و رعایت اصول نامگذاری، درک کد را برای سایر برنامهنویسها و حتی خود شما سادهتر میکند. به عبارتی رعایت این اصول در زمانی که کدهای شما توسط سایر اعضای تیم بررسی میشود یا خود شما به کدهای قدیمیتان برمیگردید، به فهم سریعتر و آسانتر کدها کمک میکند.
در این آموزش ابتدا قواعد عمومی نامگذاری در برنامهنویسی را بررسی کرده و سپس روشهای معروف نامگذاری یا اصطلاحاً Naming Conventions را آموزش میبینیم. در انتها نیز به پاسخ این سؤال میرسیم که کدام روش را برای کدنویسی انتخاب کنیم؟
فهرست محتوای آموزش
قواعد عمومی نامگذاری در برنامهنویسی
در همهٔ زبانهای برنامهنویسی، قواعد عمومی و کلی برای نامگذاری متغیرها و توابع وجود دارد. رعایت این قواعد اجباری نیست اما بسیار مفید و کاربردی خواهند بود.
در ادامه پنج قاعده مهم را با مثال بررسی میکنم. پیشنهاد میکنم سعی کنید از همین امروز این پیشنهادها را در نامگذاری هنگام برنامهنویسی رعایت کنید. این پنج قاعده عبارتاند از:
- اسامی معنادار (Meaningful Names)
- نامهای قابل تلفظ (pronounceable Names)
- پایبندی به روش انتخابی (Consistency)
- نامگذاری مرتبط با زمینه (Contextual Naming)
- اسامی مثبت در مقادیر بولین (Positive Naming)
اسامی معنادار انتخاب کنید
اولین و مهمترین قاعده، استفاده از نامهای معنادار است. متغیر یا تابع باید نامی داشته باشد که هدف و کارکرد آن را بهوضوح نشان دهد. یعنی هنگامی که من به کد شما (که هیچ چیز در مورد آن نمیدانم) نگاه میکنم، بتوانم هدف احتمالی تعریف این متغیر و اینکه فلان تابع احتمالاً چه کاری انجام میدهد را بدون بررسی همهٔ کد یا پرسیدن از شما تشخیص دهم.
برای مثال، بهجای استفاده از نامهایی مثل x
برای نام دانشجو یا cal()
برای محاسبه میانگین نمرات او، از نامهای کامل و معناداری مثل stundent_name
و calculate_average()
استفاده کنیم.
# نامهای خوب
student_name = "Omid"
calculate_average()
# نامهای بد
x = "Omid"
cal()
نامها قابل تلفظ باشند
بهتر است نام متغیرها و توابع بهگونهای انتخاب شوند که بتوانیم آنها را بهراحتی تلفظ کنیم. این مسئله به درک بهتر و انتقال اطلاعات در پروژههای گروهی کمک میکند. بنابراین پیشنهاد میشود تا جای ممکن از نامهای پیچیده یا مخفف استفاده نشود.
# نام خوب
total_price = 159000
# نامهای بد
tprc = 159000
total_price_of_the_products_that_in_user_card = 159000
پایبند روش انتخابی باشید
یکی از مهمترین نکات در نامگذاری متغیرها و تابعها در برنامهنویسی، پایبندی به یک روش خاص است. کمی جلوتر در همین آموزش با روشهای معروف نامگذاری آشنا میشویم، پیشنهاد میشود وقتی که یکی از این روشها را انتخاب کردید، در سراسر آن پروژه از همان روش استفاده کنید.
اینگونه کدهای پروژه شما منسجم و یکپارچه خواهند بود. به عبارتی اینطور نباشد که در بخشی از کدهای شما از روش x و بخشی دیگر از روش y استفاده شده باشد.
نامگذاری مرتبط با زمینه برنامهنویسی باشد
بهتر است نامگذاری در برنامهنویسی با زمینه (context) و موضوع پروژه مرتبط باشد. پیشنهاد میشود بهجای استفاده از نامهای عمومی مثل score یا value برای ذخیره نمره دانشجو، از نام student_score
استفاده شود.
# نام خوب
student_score = 90
# نامهای عمومی و نامناسب
value = 90
نکته: در مواردی، ما در حال توسعه یک سیستم ثبت نمره و محاسبه نمرات دانشجو (در مثال بالا) هستیم. در چنین حالتی اگر از نام score یا grade بهتنهایی استفاده کنیم هیچ مشکلی ندارد. اما شاید استفاده از value همچنان با زمینه متناسب نباشد. بنابراین توجه داشته باشید که حتماً لازم نیست شبیه به باکس کد بالا، student را به ابتدای متغیر اضافه کنیم. اگر طوری باشد که مفهوم آن نام مشخص باشد، میتوانید از آن استفاده کنید.
نام booleanها مثبت باشد
برخی پیشنهاد میکنند که در نامگذاری مقادیر بولین (True/False) یا توابعی که خروجی آنها یک مقدار boolean است، از ساختارهای مثبت بهجای منفی استفاده کنیم. مثلاً بهجای بررسی غیرفعال بودن با نام is_disabled
، فعال بودن آن مورد را با نام is_enabled
استفاده کنیم.
# نام پیشنهادی
is_loggedin = True
# نام غیرپیشنهادی
is_loggedout = False
روشهای معروف نامگذاری در برنامهنویسی
وقتی میخواهیم نام یک متغیر را بنویسیم، میتوانیم از حروف کوچک، بزرگ یا ترکیبی از اینها استفاده کنیم. همچنین هنگامی که نام متغیر یا تابع دو یا چند کلمهای میشود، ایدههای مختلفی برای جداسازی بخشهای مختلفش در اختیار داریم.
روشهای شناختهشدهای برای نامگذاری در زبانهای برنامهنویسی وجود دارد که متناسب با زبان یا نیاز پروژه میتوانیم آنها را انتخاب کنیم. البته توجه کنید که هر روش را انتخاب کردیم، بهتر است در تمام کدهای همان پروژه، از همین یک روش استفاده کنیم. (قاعده consistency که پیشتر آموختیم)
در این بخش ۶ روش معروف برای نامگذاری را با هم بررسی میکنیم.
روش Flat Case
در این روش، تمام حروف بدون فاصله و بهصورت کوچک (lower-case) نوشته میشوند. Flat Case بیشتر در زبانهای خاص و برای موارد محدود استفاده میشود. پیشنهاد میکنم به دلیل سخت بودن خوانایی این روش، از آن در نامگذاری متغیر و تابع استفاده نکنید.
studentage
totalprice
شیوه Camel Case
Camel در انگلیسی یعنی شتر! کوهان شتر را به خاطر بیاورید. چیزی شبیه به عکس زیر است.
در روش نامگذاری Camel Case در برنامهنویسی، دو حالت کلی داریم:
- اگر نام متغیر/تابع یک کلمهای بود، تمام حروف با نام کوچک نوشته میشوند.
- اگر نام مورد نظر، دو کلمهای یا بیشتر بود، حرف اول کلمات دوم و سوم و … با حرف بزرگ (Upper) نوشته میشوند.
age = 27
studentAge = 27
sum()
CalculateSum()
totalInvoicePrice = 359000
نامگذاری Pascal Case در برنامهنویسی
در روش Pascal Case، حرف اول تمام کلمات با حروف بزرگ نوشته میشود. بنابراین چه نام مورد نظر ما یک کلمهای باشد چه چند کلمهای، حروف اول تمامی کلمات بهصورت Upper نوشته خواهند شد.
Age = 28
StudentAge = 28
Sum()
CalculateSum()
روش Kebab Case
در این روش، اگر نام متغیر یا تابع چند کلمهای باشد، کلمات با استفاده از خط تیر (-
) از هم جدا میشوند. این روش معمولاً در نامگذاری فایلها و URLها استفاده میشود.
age = 29
student-age = 29
sum()
calculate-sum()
total-price
توجه کنید که متناسب با قوانین نامگذاری در زبانهای برنامهنویسی مختلف، ممکن است استفاده از برخی کاراکترها مجاز نباشد. برای مثال، در زبان PHP و پایتون نمیتوانیم از -
بهعنوان کاراکترهای نام استفاده کنیم. بنابراین این روش در این زبانها عملاً بی استفاده هستند.
روش Snake Case
در این روش نامگذاری تمام حروف بهصورت کوچک نوشته میشوند. در صورتی که آن نام از دو یا چند کلمه تشکیل شده باشد، کلمات با استفاده از underscore (همان _
) از یکدیگر جدا میشوند. شیوه نامگذاری Snake Case یکی از محبوبترین روشهای نامگذاری در برنامهنویسی است.
age = 25
student_age = 25
sum()
calculate_sum()
total_price
شیوه Upper Case یا Screaming Snake Case
این روش نامگذاری شبیه به Snake Case است با این تفاوت که تمام حروف بهصورت بزرگ (Upper) نوشته میشوند. یعنی تمام حروف نام متغیر یا تابع با حرف بزرگ نوشته شده و اگر آن نام چند کلمهای باشد، از _
برای جداسازی استفاده میکنیم.
از Upper Case بیشتر برای نامگذاری ثابتها (Constants) در زبانهای برنامهنویسی استفاده میشود.
AGE = 26
STUDENT_AGE = 26
SUM()
TOTAL_PRICE
MAX_LIMIT
شیوههای دیگری نیز برای نامگذاری در برنامهنویسی داریم که اگر مایل بودید میتوانید لیست کامل آنها، به همراه یک نمونه مثال و نامهای جانبیشان را در این صفحه از ویکیپدیا ببینید.
از کدام شیوه نامگذاری استفاده کنیم؟
انتخاب روش نامگذاری بستگی به قوانین تیم یا پروژه و زبان برنامهنویسی دارد. هر زبان ممکن است راهنمای خاص خود را داشته باشد.
برای مثال، در زبان پایتون استفاده از روش snake case برای متغیرها و توابع معمولتر است. این روش در قواعد PEP8 نیز پیشنهاد شده است. (پیشنهادی: دوره آموزش پایتون)
# Python naming convention (snake case)
student_name = "Ehsan"
def get_price():
pass
در زبان PHP، مطابق با استاندارد PSR-12 معمولاً از camel case برای نامگذاری متغیرها و توابع استفاده میکنیم.
<?php
// PHP naming convention (camel case)
$studentName = "Ehsan";
function getPrice(){
// function body codes
}
?>
همچنین در زبان جاوا از ترکیبهای مختلفی مانند camel case و pascal case پیشنهاد میشود. (قواعدش را در این منبع انگلیسی بخوانید)
خلاصه نامگذاری در برنامهنویسی
در این آموزش به اهمیت قواعد نامگذاری در برنامهنویسی پرداختیم. همچنین روشهای معروف نامگذاری از جمله Snake Case، Pascal Case و Camel Case را بررسی کردیم. انتخاب روش مناسب نامگذاری بستگی به زبان برنامهنویسی و قوانین و مقررات تیم شما دارد.
پیشنهاد میکنم از همین امروز سعی کنید قواعد عمومی را در کدهای خود لحاظ کنید. همچنین سعی کنید یک یا دو شیوه نامگذاری را انتخاب کرده و در تمام پروژههای خود از یکی از آنها استفاده کنید.
نام روش نامگذاری | نمونه نام تککلمهای | نمونه نام دو کلمهای |
---|---|---|
Flat Case | name | sabzdanesh |
Camel Case | name | sabzDanesh |
Pascal Case | Name | SabzDanesh |
Kebab Case | name | sabz-danesh |
Snake Case | name | sabz_danesh |
Upper Case | NAME | SABZ_DANESH |
این آموزش برای همیشه رایگانه! میتونید با اشتراکگذاری لینک این صفحه از ما حمایت کنید یا با خرید یه فنجون نوشیدنی بهمون انرژی بدید!
میخوام یه نوشیدنی مهمونتون کنم