اصول نام گذاری در برنامه نویسی تمیز – به زبان ساده
نام گذاری در برنامه نویسی مهارتی برای انتخاب نامهای بامعنی و صریح برای متغیرها، توابع و کلاسها است که خواندن و درک کد را آسان میکند. یکی از پایههای اصلی و شاید کلیدیترین بخش برای رسیدن به یک «کد تمیز» (Clean Code) و قابل نگهداری رعایت اصول نام گذاری در برنامه نویسی است. نامهای انتخاب شده برای متغیرها، توابع، کلاسها و سایر اجزای کد به نوعی زبان ارتباطی ما با خودمان و سایر برنامهنویسان در آینده هستند. انتخاب نامهای درست و معنیدار یک اصل اساسی در برنامه نویسی است که به طور مستقیم بر روی خوانایی، درکپذیری و قابلیت نگهداری کد تاثیر میگذارد. در این مطلب از مجله فرادرس به بررسی عمیق اصول نام گذاری در برنامه نویسی خواهیم پرداخت. بایدها و نبایدها، شیوهها و تکنیکهای مختلف نام گذاری متغیرها، کلاسها و توابع در این مطلب آموزش داده شده است.
- یاد میگیرید نام گذاری در برنامه نویسی چه اهمیتی دارد.
- با قواعد نام گذاری در برنامه نویسی تمیز آشنا خواهید شد.
- سبکهای مختلف نام گذاری در برنامه نویسی را یاد خواهید گرفت
- نام گذاری اصولی متغیرها، توابع و کلاسها را یاد میگیرید.
- نام گذاری در برنامه نویسی را به صورت عملی تمرین خواهید کرد.


علاوه بر این، برای درک بهتر قواعد نام گذاری سعی شده است تا مثالهای متعددی از نام گذاریهای خوب و بد ارائه شود. با مطالعه این مطلب یاد خواهید گرفت که چگونه با انتخاب نامهای مناسب کدی بنویسید که تمیز، خوانا و قابل فهم باشد. در ادامه با مهمترین قوانین نام گذاری در برنامه نویسی تمیز آشنا خواهید شد.
قوانین نام گذاری در برنامه نویسی تمیز چیست؟
در دنیای برنامه نویسی تمیز نام گذاری تنها انتخاب یک کلمه نیست، بلکه یک اصل بنیادین است که هدف اصلی آن انتقال قصد و نیت پشت کد است. انتخاب نامهای خوب شاید زمانبر باشد، ولی در نهایت منجر به صرفهجویی بیشتر در زمان میشود.
نام گذاری خوب به خواننده کد کمک میکند تا به سرعت هدف و چرایی کد را درک کند. در ادامه مهمترین قوانین نام گذاری در برنامه نویسی تمیز آورده شده است.
- بیان قصد و نیت
- اجتناب از اطلاعات نادرست
- استفاده درست از نامهای کوتاه و طولانی
- استفاده از نامهای قابل تلفظ
- استفاده از نامهای قابل جستجو
- اجتناب از رمزگذاری
- اجتناب از نگاشت ذهنی
- استفاده از نامهای حوزه راه حل

۱. بیان قصد و نیت
نامهای انتخاب شده در برنامه باید تا حد امکان، هدف و نقش آن بخش را در کد روشن کنند. به زبان ساده، نامها باید گویا باشند و نیازی به توضیحات اضافی نداشته باشند. نام یک متغیر، تابع یا کلاس باید به تمام سوالات بزرگ در خصوص آن (چرایی، چگونگی و نحوه استفاده) پاسخ دهد. اگر هنگام نام گذاری یک متغیر نیاز به ارائه توضیحات به صورت کامنت باشد، آنگاه به طور مشخص این اصل رعایت نشده است.
در مثال بالا، متغیری از نوع «عدد صحیح» (Integer) و با نامd تعریف شده است که قرار است تعداد روزهای سپری شده را نشان دهد. نام انتخاب شده برای این متغیر به هیچ عنوان گویا نیست و هدف آن را نشان نمیدهد. نام متغیر باید نشان دهد که چه چیزی قرار است اندازهگیری شود و واحد اندازهگیری آن نیز مشخص باشد. به عنوان مثال، نامهای زیر نمونههای مناسبتری برای نام گذاری این متغیر هستند.
این نامها به وضوح نشان میدهند که این متغیر چه چیزی را نگه میدارد. در برنامه نویسی هر چه نامها توصیفکنندهتر باشند، خواندن و درک کد نیز آسانتر میشود. به عنوان مثال، اگر نام یک تابعprocess() باشد، هیچ ایدهای از کاری که انجام میدهد، نخواهیم داشت. با این حال اگر نام آنprocessPayment() بلافاصه متوجه عملکرد آن خواهیم شد.
۲. اجتناب از اطلاعات نادرست
یکی از اشتباهات بزرگ برنامهنویسان در نام گذاری، استفاده از نامهایی است که اطلاعات نادرست یا گمراهکننده به خواننده میدهند. استفاده از مخففهای غیر استاندارد، نامهایی با معانی متفاوت و نامهایی که پیشتر معانی دیگری داشتهاند در برنامه نویسی مجاز نیست. به طور کلی موارد زیر را میتوان به عنوان اطلاعات نادرست در نظر گرفت.
- نام شرکتهای مطرح یا مخففهای غیر استاندارد
- نامهایی با معانی متفاوت
- نامهایی با تفاوتهای کوچک
- استفاده از حروف کوچک و بزرگ گمراهکننده
- تغییر نام کلمات کلیدی در برنامه

نام شرکتهای مطرح یا مخففهای غیر استاندارد
در نام گذاری نباید از نام شرکتها، محصولات شناخته شده یا مخففهایی غیر استاندارد استفاده کرد. زیرا، این موارد معانی مشخصی دارند و باعث گمراهی مخاطب میشوند. به عنوان مثال، نامهایhp ،aix وsco انتخابهایی ضعیف و نامناسب برای نام متغیر هستند، زیرا آنها نام سیستمعامل یا شرکتهای فناوری هستند.
نامهایی با معانی متفاوت
نام انتخاب شده باید با مفهوم و کارکرد آن در برنامه مرتبط باشد. به عنوان مثال، در صورت داشتن لیستی از کاربران نام گذاری آن به صورتuserList مناسب است، اما نام گذاری آن به صورتaccountList یاcustomerData میتواند گمراهکننده باشد. اجتناب از این نوع نام گذاری به حفظ یکپارچگی و وضوح در نام گذاری در برنامه نویسی کمک میکند.
نامهایی با تفاوتهای کوچک
در نام گذاری باید از نامهایی که صرفاً تفاوتهای کوچکی با یکدیگر دارند نیز اجتناب کرد. به عنوان مثال، چه مقدار طول میکشد تا تفاوت بین متغیری با نامXYZControllerForEfficientHandlingOfStrings که در بخشی از برنامه استفاده شده است را با متغیری با نامXYZControllerForEfficientStorageOfStrings که در جایی کمی دورتر آورده شده را تشخیص دهید.
استفاده از حروف کوچک و بزرگ گمراهکننده
یکی دیگر از اشتباهات وحشتناک در نام گذاری استفاده از حروف کوچک و بزرگ مشابه در ترکیب با یکدیگر است. به عنوان مثال، استفاده از حالت کوچک حرفL یا حالت بزرگ حرفO به عنوان نام متغیر و به طور خاص در ترکیب با یکدیگر باعث گمراهی مخاطب میشود. البته، مشکل این است که این حروف به ترتیب مشابه اعداد ثابت1 و0 هستند. برای درک بهتر این مسئله به مثال زیر توجه کنید.
قطعه کد بالا بیش از آن که شبیه یک برنامه کامپیوتری باشد، به یک قطعه کد رمزی شباهت دارد که باید رمزگشایی شود. خواننده به سختی میتواند تفاوت بین کاراکترها و اعداد را در این قطعه کد تشخیص دهد.
تغییر نام کلمات کلیدی در برنامه
عدم استفاده از کلمات کلیدی و رزرو شده مانندClass ،foreach و سایر موارد یکی از نکاتی است که در نام گذاری متغیرها در برنامه نویسی باید رعایت شود. بر همین اساس، گاهی برنامهنویسان صرفاً برای راضی کردن کامپایلر نامهایی را برای متغیرها انتخاب میکنند که در نهایت منجر به ایجاد مشکلاتی میشود. به عنوان مثال، برنامهنویس متغیری با نامklass را انتخاب میکند، زیرا کامپایلر اجازه انتخاب کلمهclass را نمیدهد.
۳. استفاده درست از نامهای کوتاه و طولانی
یکی دیگر از چالشهای نام گذاری در برنامه نویسی انتخاب بین نامهای کوتاه یا بلند است. در گذشته، برنامهنویسان به دلیل محدودیتهای حافظه تمایل داشتند تا از نامهای کوتاه استفاده کنند. امروزه با پیشرفت تکنولوژی دیگر چنین محدودیتهایی وجود ندارد و خوانایی کد دارای اولویت است. در خصوص نامهای کوتاه و طولانی بهتر است از هر کدام در جای مناسب استفاده کنید.
- نامهای کوتاه: این نامها برای زمانی مناسب هستند که دامنه متغیر بسیار محدود باشد. به عنوان مثال، متغیرهای شمارنده حلقه یا نامهای کوتاه در معادلات ریاضی که ماهیت آنها مشخص است.
- نامهای طولانی: گاهی اوقات استفاده از نامهای توصیفی و کمی طولانی مانندcustomerFirstName یاtotalOrderAmount به درک بهتر کد کمک میکنند. این نامها جزئیات بیشتری را منتقل میکنند و نیاز به جستجو یا حدس و گمان را کاهش میدهند.
نکته مهم در خصوص طول نامها در برنامه نویسی این است که باید نقطه تعادل را پیدا کنید. نامها نباید آن قدر کوتاه باشند که معنی خود را از دست بدهند و نباید آن قدر طولانی باشند که خواندن آنها خستهکننده شود.
۴. استفاده از نامهای قابل تلفظ
انسانها با استفاده از کلمات و زبان گفتاری با یکدیگر ارتباط برقرار میکنند. بخش بزرگی از مغز انسان برای درک و تولید کلمات تکامل یافته است. بنابراین، در نام گذاری در برنامه نویسی باید نامها به گونهای انتخاب شوند تا به راحتی تلفظ شوند. اگر نامی قابل تلفظ نباشد، نمیتوان به سادگی در مورد آن بحث کرد. برنامه نویسی یک فعالیت تیمی و گروهی است، پس استفاده از نامهای قابل تلفظ ارتباط تیمی را آسانتر میکند.
نامهای انتخاب شده در قطعه کد بالا غیرقابل تلفظ هستند و اعضای تیم به سختی میتوانند آنها را تلفظ کنند. همچنین، معنی آنها برای اعضای جدید تیم باید توضیح داده شود. در ادامه نحوه درست نام گذاری این متغیرها آورده شده است.
نامهای اصلاح شده در قطعه کد بالا به سادگی تلفظ میشوند و سایر اعضای تیم نیز میتوانند آنها را درک کنند. به طور خلاصه، در نام گذاری در برنامه نویسی باید نامی انتخاب شود که بتوان آن را به راحتی تلفظ کرد.
۵. استفاده از نامهای قابل جستجو
یکی دیگر از نکات مهم نام گذاری در برنامه نویسی استفاده از نامهای قابل جستجو در برنامه است. اگر نام در نظر گرفته شده برای متغیر خیلی کوتاه باشد مانند یک حرف یا عدد ثابت، پیدا کردن آن در میان کدها بسیار دشوار است. ابزارهای جستجو در محیطهای برنامه نویسی به سادگی میتوانند متغیری با نامMAX_CLASSES_PER_STUDENT را پیدا کنند، ولی پیدا کردن متغیری با نامe بسیار دشوار است، زیرا در تمام کد دیده میشود.
متغیرهای استفاده شده در قطعه کد بالا قابل جستجو نیستند و به سختی میتوان آنها را در پروژه پیدا کرد. مثال زیر، نمونه خوبی برای استفاده از نامهای قابل جستجو در برنامه است.
در مثال بالا، متغیری با نامWORK_DAYS_PER_WEEK به سادگی در سراسر کد قابل جستجو است. استفاده از نامهای توصیفی و قابل جستجو برای متغیرهای پروژه کار اشکالزدایی و درک کد را برای تیم برنامه نویسی آسان میکند.
۶. استفاده از رمزگذاری
در نام گذاری در برنامه نویسی به هیچ عنوان نباید اطلاعاتی مانند نوع داده یا دامنه دسترسی را به صورت پیشوند یا پسوند در نام متغیر یا کلاس قید کرد. این کار نوعی رمزگذاری است و باعث میشود تا هر عضو جدید تیم مجبور باشد تا یک زبان اضافی را یاد بگیرد.
به عنوان مثال، عبارتm_ در ابتدا نام متغیر به متغیر عضو و عبارتp_ به اشارهگر در برنامه اشاره میکند. این کار باعث میشود تا بار ذهنی غیر ضروری به برنامه نویس تحمیل شود. علاوه بر این، نامهای رمزگذاری شده به سادگی قابل تلفظ نیستند و در هنگام تایپ نیز امکان اشتباه نوشتن آنها وجود دارد. امروزه محیطهای توسعه مدرن بدون نیاز به رمزگذاری، اطلاعاتی مانند نوع و دامنه متغیر را به صورت هوشمند نمایش میدهند. قطعه کد زیر نمونهای از نام گذاری با رمزگذاری را نشان میدهد.
در مثال بالا، متغیرها به صورت رمزگذاری شده نام گذاری شدهاند که در مثال زیر نمونه اصلاح شده آنها آورده شده است.
به طور خلاصه، در نام گذاری در برنامه نویسی باید نامها را ساده، واضح و بدون پیشوند یا پسوند اضافی انتخاب کرد.
۷. اجتناب از نگاشت ذهنی
نام گذاری در برنامه نویسی باید به گونهای انجام شود که خواننده نیازی به ترجمه مفاهیم در ذهن خود نداشته باشد. به عنوان مثال، اگر از یک حرف ثابت مانندc در کد استفاده شده، خواننده باید مدام به ذهن خود رجوع کند تا مخفف آن را به یاد بیاورد. این کار باعث خستگی ذهن و کاهش خوانایی کد میشود.
تنها استثنا در این زمینه متغیرهای شمارنده حلقه (i ،j وk ) هستند که آن هم فقط در حلقههای کوتاه و محدود مجاز است. برنامهنویسان حرفهای شفافیت و خوانایی کد را از هر چیزی مهمتر میدانند. بنابراین، حفظ کردن نگاشتهای ذهنی پیچیده مانند حرفr که مخفف آدرس اینترنتی بدون میزبان و پروتکل است، کاری حرفهای نیست.
در مثال بالا برای نام متغیر از حرفr استفاده شده است و خواننده باید همواره آن را به خاطر بسپارد. شیوه درست نام گذاری این متغیر در قطعه کد زیر آورده شده است.
به طور خلاصه، حرفهای بودن یعنی کد را به گونهای بنویسید که نیاز به ترجمه ذهنی نداشته باشد.
۸. استفاده از نامهای حوزه راه حل
این نکته را باید در نظر داشت که خوانندگان کد شما در آینده به احتمال زیاد برنامه نویس هستند. بنابراین، هنگام نام گذاری متغیرها، توابع و کلاسها در برنامه بهتر است از اصطلاحات علوم کامپیوتر، نام الگوریتمها، الگوهای برنامه نویسی و اصطلاحات ریاضی استفاده کنید. هوشمندانه نیست که برای نام گذاری از نامهای مرتبط با مشکل یا مسئله مشتری استفاده شود، زیرا در آینده سایر برنامهنویسان برای درک کارکرد هر بخش باید به سراغ مشتری بروند و از او اطلاعات دریافت کنند.
هنگامی که یک برنامه نویس با نامهایی نظیرBinaryTree ،JobQueue یاVisitor مواجه میشود، علاوه بر درک سریع ساختار داده یا الگوریتم مورد استفاده بلافاصله از قیود، رفتار و پیچیدگی آن نیز مطلع میشود. در مقابل، استفاده از نامهای تجاری مانندHierarchicalDataHolder صرفاً نیازمند جستجو بیشتر در مستندات برای کشف اطلاعات است. به طور کلی، استفاده از «نامهای حوزه راه حل» (Solution Domain Names) موجب کاهش ابهام و افزایش خوانایی کد میشود.
چرا نام گذاری در برنامه نویسی مهم است؟
برنامهنویسان در فرایند توسعه نرم افزار همواره با مقوله نام گذاری مواجه هستند. در واقع، نامها در همه جا هستند. در برنامه نویسی متغیرها، توابع، آرگومانها، کلاسها و بستهها باید نام گذاری شوند.
یکی از پایههای اصلی برای رسیدن به یک کد تمیز و قابل نگهداری، پیروی از اصول نام گذاری در برنامه نویسی است. نامهای انتخاب شده برای متغیرها، توابع، کلاسها و سایر اجزای کد به گونهای ارتباط برنامهنویس با خودش و سایر برنامهنویسان در آینده را مشخص میکنند. به زبان ساده، این نامها زبان ارتباطی برنامهنویس با دنیای کد هستند. این نامها پیامهای کوتاهی هستند که کارکرد و هدف هر بخش از کد را نشان میدهند.
مثالی عینی از اهمیت نام گذاری در برنامه نویسی
انتخاب نامهای درست و معنیدار در برنامه نویسی فقط یک کار سلیقهای یا سطحی نیست، بلکه یک اصل بنیادین در برنامه نویسی است که به طور مستقیم بر روی خوانایی، درک و قابلیت نگهداری کد تاثیر میگذارد.
برای درک بهتر اهمیت نام گذاری در برنامه نویسی تصور کنید که در یک پروژه بزرگ با صدها یا هزاران خط کد روبرو هستید. اگر در این پروژه نامها گویا نباشند، مانند این است که در یک کتابخانه عظیم بدون فهرست و عناوین به دنبال یک کتاب خاص میگردید. انتخاب نامهای نامناسب یا ضعیف در برنامه میتواند منجر به سردرگمی، ایجاد خطاهای ناخواسته، افزایش زمان خطایابی و اشکالزدایی در کد شود. در ادامه مهمترین اصول نام گذاری در برنامه نویسی تمیز را بیان خواهیم کرد.
برای نصب اپلیکیشن رایگان مجله فرادرس، کلیک کنید.
یادگیری کد نویسی تمیز با فرادرس
به احتمال زیاد برای شما این اتفاق رخ داده است که کد یا برنامهای را که مدتها پیش نوشتهاید را باز کنید و به سختی متوجه منطق آن شوید. همچنین، ممکن است در یک پروژه تیمی هنگام خواندن کدهای نوشته شده توسط سایر برنامهنویسان دچار سردرگمی شوید. اهمیت کد نویسی تمیز در این شرایط خود را نشان میدهد. کد نویسی تمیز مجموعهای از اصول و شیوهها است که باعث میشود کد نوشته شده خوانا، قابل فهم و قابل نگهداری باشد. بنابراین، هر برنامهنویسی باید با این اصول آشنا باشد و از آنها در کد نویسی استفاده کند.
خوشبختانه در سایت فرادرس مجموعه آموزشی کد نویسی تمیز برای همین هدف طراحی شده است. در این مجموعه آموزشی به صورت گامبهگام با اصول و تکنیکهای کد نویسی تمیز آشنا خواهید شد. این آموزشها در مجموعه فیلمهای آموزش کد نویسی تمیز از مقدماتی تا پیشرفته فرادرس در دسترس هستند که لینک آن در ادامه آورده شده است.
با مشاهده فیلمهای آموزشی موجود در این مجموعه با مفاهیمی همچون نام گذاری درست، توابع گویا، مدیریت خطاها و اصول طراحی شیگرا آشنا خواهید شد. علاوه بر این، نحوه پیادهسازی این اصول را در پروژههای واقعی نیز یاد میگیرید. در ادامه تعدادی از آموزشهای پیشنهادی موجود در این مجموعه آورده شده است.
- فیلم آموزش کدنویسی تمیز Clean Code برای برنامه نویسی با گواهینامه فرادرس
- فیلم آموزش کدنویسی تمیز برای بهینه سازی و خواناتر شدن کد با گواهینامه فرادرس
- فیلم آموزش اصول و قواعد نام گذاری در برنامه نویسی بر اساس استاندارد مایکروسافت فرادرس
- فیلم آموزش رایگان معرفی کتاب کد نویس تمیز Clean Coder با جادی فرادرس

نام گذاری متغیرها در برنامه نویسی تمیز
متغیرها یکی از عناصر سازنده اصلی در هر برنامه کامپیوتری هستند. آنها دادهها را ذخیره میکنند و منطق برنامه را شکل میدهند. به همین دلیل، نام گذاری در برنامه نویسی برای متغیرها اهمیت ویژهای دارد. برای آشنایی بیشتر با مفهوم متغیر میتوانید فیلم آموزش رایگان متغیر در برنامه نویسی چیست از فرادرس را مشاهده کنید که لینک آن در ادامه آورده شده است:
نام گذاری ضعیف متغیرها در برنامه میتواند خوانایی کد را کاهش دهد. رعایت موارد زیر در نام گذاری متغیرها ضروری است.
- استفاده از نامها گویا
- استفاده از نامهای پرسشی
- اجتناب از سبک نشانهگذاری مجاری
- ثبات در نام گذاری
- توجه به دامنه متغیر

استفاده از نامهای گویا
مهمترین اصل در نام گذاری متغیرها این است که نام متغیر باید هدف و کارکرد آن را توضیح دهد. در واقع، نام متغیر باید اطلاعات خوبی در خصوص نوع داده ذخیره شده در متغیر و نقش آن به خواننده بدهد. بر همین اساس، باید به طور جدی از به کار بردن نامهای کوتاه، مبهم و بیمعنی برای متغیرها در برنامه خودداری کرد. در ادامه چند نمونه نامناسب برای نام گذاری متغیر آورده شده است.
نامهای ارائه شده در بالا نمونههای نامناسبی برای نام گذاری متغیر هستند که در ادامه نمونه اصلاح شده آنها آورده شده است.
در برنامه نویسی وقتی نام متغیر معنای مشخصی داشته باشد، برنامه نویس دیگر نیازی به صرف زمان زیاد برای درک کارکرد آن متغیر ندارد. این مورد در پروژههای بزرگ اهمیت دوچندانی دارد، زیرا چندین برنامه نویس به صورت همزمان بر روی کد کار میکنند.
استفاده از نامهای پرسشی
یکی از ترفندهای خوب برای انتخاب نام متغیر، فکر کردن به سوالی است که متغیر به آن پاسخ میدهد. به عنوان مثال، اگر متغیری در برنامه وجود دارد که نشان دهنده وضعیت لاگین کاربر است میتوان از نامisUserLoggedIn برای آن استفاده کرد. نامهای پرسشی مفهوم را به خوبی نشان میدهند و برنامه نویس به سادگی دلیل و چرایی استفاده از متغیر را درک میکند.
اجتناب از سبک نشانهگذاری مجاری
در گذشته برنامه نویسان از روش «نشانهگذاری مجاری» (Hungarian Notation) برای نام گذاری متغیرها استفاده میکردند. در این روش نام گذاری در ابتدای نام متغیر عبارتی قرار داده میشد که نوع یا کاربرد آن را نشان دهد. به عنوان مثال، موارد زیر نمونهای از این نوع نام گذاری هستند.
| نوع متغیر | نام انتخاب شده به سبک HN |
| رشته | strName |
| عدد صحیح | intCount |
| دکمه | btnSave |
امروزه این روش منسوخ شده است، زیرا محیطهای برنامه نویسی مدرن نوع داده را مدیریت میکنند. بنابراین، در نام گذاری متغیرها دیگر نیازی به استفاده از این روش نیست.
ثبات در نام گذاری
یکی دیگر از ترفندهای نام گذاری متغیرها در برنامه نویسی رعایت یک سبک یا الگوی مشخص است. به عنوان مثال، اگر قصد استفاده از یک الگوی خاص مانند «camelCase» یا «snake_case» را دارید، باید در تمام طول پروژه به آن پایبند باشید تا یکپارچگی کد حفظ شود. رعایت این اصل به نام گذاری در برنامه نویسی نظم میبخشد.
توجه به دامنه متغیر
«دامنه» (Scope) متغیر یکی دیگر از نکاتی است که در نام گذاری متغیر باید به آن دقت کرد. برای متغیرهای به کار برده شده در یک حلقه یا تابع کوچک بهتر است از نامهای کوتاه استفاده کرد. در نقطه مقابل، برای متغیرهایی که دامنه وسیعتری دارند بهتر است از نامهای توصیفی استفاده شود.
در نهایت، باید به این نکته دقت داشت که نام گذاری در برنامه نویسی برای متغیرها یک فرایند تکراری است. در واقع، باید نام متغیرها را به صورت منظم بررسی کرد و در صورت یافتن نام بهتر آن را تغییر داد.
نام گذاری توابع در برنامه نویسی تمیز
توابع در برنامه نویسی بلوکهایی از کد هستند که وظایف خاصی را انجام میدهند. نام گذاری توابع باید به گونهای باشد که بلافاصله عمکلرد آنها را مشخص کند.
استفاده از نامهای نامناسب برای توابع باعث میشود که برنامه نویس نداند تابع چه کاری انجام میدهد، چه پارامترهایی میگیرد یا چه مقداری را برمیگرداند. در نظر گرفتن موارد زیر برای نام گذاری توابع میتواند مفید باشد.
- استفاده از فعل یا عبارات فعلی
- صریح و واضح بودن
- داشتن یک وظیفه مشخص
- طول مناسب
- عدم اشاره به جزئیات پیادهسازی
- استفاده از اصطلاحات رایج

استفاده از فعل یا عبارات فعلی
توابع معمولاً مسئول انجام یک عمل هستند. بنابراین، باید نام آنها نشان دهنده آن عمل باشد. بهترین روش در نام گذاری توابع استفاده از فعل یا عبارات فعلی است. این کار به خواننده کد کمک میکند تا بلافاصله متوجه شود که با اجرای این تابع چه اتفاقی رخ میدهد. به عنوان مثال، موارد زیر نمونههایی خوب برای نام تابع هستند.
در نقطه مقابل، موارد زیر نامهای ضعیفی برای تابع محسوب میشوند.
استفاده از افعال واضح و مشخص درک عملکرد برنامه را آسان میکند.
صریح و واضح بودن
نام تابع باید صریح و واضح باشد و به طور دقیق نشان دهد که چه کاری انجام میدهد. به جای به کار بردن اسامی بی معنی مانندprocess وdoIt میتوان از نامsendWelcomeEmail استفاده کرد. این نام به قدری صریح و واضح است که خواننده بدون نگاه کردن به کد، هدف از نوشتن تابع را متوجه میشود.
داشتن یک وظیفه مشخص
هر تابع در برنامه به طور مشخص باید یک کار را انجام دهد و نام تابع نیز باید آن وظیفه را بازتاب دهد. اگر در نام گذاری تابع مجبور شدید از حرف «و» (And) استفاده کنید، یعنی تابع چند کار انجام میدهد. به عنوان مثال، تابعی با نامvalidateAndSave چنین شرایطی دارد. در این حالت بهتر است تا این تابع را به دو تابع جداگانه یعنیvalidateUser وsaveUser تقسیم کرد تا هر کدام تنها یک مسئولیت داشته باشند.
طول مناسب
نام تابع نباید خیلی کوتاه باشد مانندfn که باعث ایجاد ابهام برای مخاطب شود. از سوی دیگر، نباید خیلی بلند باشد مانندsaveUserDataAndUpdateLogAndNotifyAdmin که به سختی خوانده شود. طول مناسب برای نام تابع باید بین ۲ تا ۴ کلمه باشد، به اندازهای که مفهوم را برساند بدون اینکه حوصله کاربر سر برود.
عدم اشاره به جزئیات پیادهسازی
نام تابع صرفاً باید مشخص کند که تابع چه کاری را انجام میدهد. در واقع، نیازی نیست که نحوه انجام کار توضیح داده شود. به عنوان مثال، نامwriteStringToFileUsingUTF8 برای تابع گزینه خوبی نیست، زیرا جزئیات رمزنگاری را فاش میکند. برای این تابع بهتر است از نامsaveTextToFile استفاده شود.
استفاده از اصطلاحات رایج
در تیمهای برنامه نویسی که چندین نفر به صورت همزمان بر روی پروژه کار میکنند بهتر از اصطلاحات رایج در برنامه نویسی به نحوی هماهنگ استفاده شود. در واقع، همه اعضا باید از یک قرارداد در نام گذاریهای خود پیروی کنند. به عنوان مثال، اگر همه اعضای تیم از اصطلاحfetchUser استفاده میکنند، دیگر نباید کسی از اصطلاحgetUser استفاده کند.
نام گذاری اصولی کلاس ها در برنامه نویسی تمیز
کلاسها در برنامه نویسی شیگرا نقش بسیار مهمی دارند و نمایانگر مفاهیم، اشیا یا موجودیتهای دنیای واقعی در نرمافزار هستند.
نام کلاس باید نشاندهنده ماهیت و مسئولیت کلی آن باشد. استفاده از نام گذاری ضعیف برای کلاسها میتواند باعث سردرگمی در مورد هدف و کاربرد کلاس شود و درک کلی معماری نرمافزار را نیز دشوار میکند. برای نام گذاری اصولی کلاسها توجه به موارد زیر ضروری است.
- استفاده از اسم یا عبارت اسمی
- نشاندهنده عملکرد کلاس
- کوتاه و مختصر
- قابل تلفظ بودن

استفاده از اسم یا عبارت اسمی
برخلاف توابع که یک عمل مشخص را انجام میدهند، کلاسها نشاندهنده یک چیز یا مفهوم هستند. کلاسها ماهیت، حالت و رفتار یک شی را تعریف میکنند. بنابراین، در نام گذاری کلاسها باید از اسم یا عبارات اسمی استفاده کرد. اسم انتخاب شده برای کلاس باید به طور واضح نشان دهد که کلاس چه شی را مدلسازی میکند. موارد زیر نمونههایی خوب برای نام کلاس هستند.
| نام کلاس | کارکرد کلاس |
| Customer | نمایانگر مشتری |
| Account | نشان دهنده حساب بانکی یا کاربری |
| OrderProcessor | نمایانگر سیستم پردازش سفارشات |
| HttpRequest | نمایانگر درخواست HTTP |
| DatabaseConnection | نمایانگر اتصال به پایگاه داده |
نمونههای زیر نامهای نامناسبی برای یک کلاس هستند.
| نام کلاس | دلیل ضعیف بودن |
| ProcessOrder | این یک فعل است و مناسب نیست. |
| ManageData | بیشتر به یک عمل اشاره میکند تا یک موجودیت. |
| Utility | بسیار مبهم و کلی است. |
استفاده از اسمها و عبارات اسمی برای کلاس به نام گذاری در برنامه نویسی ساختاری منطقی میبخشد و خواننده میتواند به سرعت نقش کلاس را تشخیص دهد.
نشاندهنده عملکرد کلاس
هر کلاس تنها باید یک مسئولیت مشخص داشته باشد. بنابراین، نام کلاس باید این مسئولیت را به طور خلاصه و دقیق بیان کند. اگر در نام گذاری کلاس مانندUserAndService از حرف «و» (And) استفاده شود، آنگاه اصل تک مسئولیتی رعایت نشده است. در این شرایط بهتر است که این کلاس به ۲ کلاس جداگانهUser وService تقسیم شود.
کوتاه و مختصر
نام کلاس باید تا حد امکان کوتاه و مختصر باشد، اما نباید مفهوم قربانی طول کلاس شود. از تکرار کلمات اضافی مانندInformation ،Data وObject در انتهای نام کلاس خودداری کنید. در جدول زیر چند نمونه خوب و بد در همین خصوص آورده شده است.
| نام خوب | نام بد |
| Customer | CustomrData - CustomerInfo |
| Report | ReportDocument |
| UserAuth | UserAuthentication - UA |
نام خوب باید هم گویا و هم رسا باشد. داشتن طول بین ۲ تا ۳ کلمه برای نام کلاس مناسب است.
قابل تلفظ بودن
بهتر است برای کلاس نامی انتخاب شود که به راحتی توسط تمام اعضای تیم برنامه نویسی قابل تلفظ باشد. به عنوان مثال، نامPaymentProcessor به راحتی تلفظ میشود، ولی نامPymntPrc نمونهای غیرقابل تلفظ و نامناسب است.
تمرین نام گذاری در برنامه نویسی به صورت عملی
بعد از آشنایی با اصول و قواعد نام گذاری در برنامه نویسی برای متغیرها، کلاسها و توابع در این بخش به بررسی این موضوع به صورت عملی خواهیم پرداخت. هدف از نام گذاری در برنامه نویسی تمیز این است که کدی نوشته شود که نه تنها درست کار کند، بلکه خواندن و درک آن نیز آسان باشد.
بازبینی کد و بهبود نام گذاری
یکی از بهترین راهها برای یادگیری نام گذاری در برنامه نویسی تمیز بازبینی کدهای موجود و بهبود نام گذاری است. بازبینی کد به برنامه نویس کمک میکند تا نقاط ضعف نام گذاری را شناسایی و اصلاح کند. برای تمرین این مهارت کد زیر آورده شده است.
این کد کار میکند، ولی نام گذاریها در آن بسیار ضعیف است.
- نامproc تابع را به صورت کلی تعریف میکند.
- data پارامتر نامشخصی است.
- tmp یک نام موقتی و بیمعنی است.
- اعداد1.1 ،100 و10 مقادیر ثابتی هستند که معنی آنها مشخص نیست.
با استفاده از اصول نام گذاری تمیز میتوان خوانایی این کد را میزان زیادی افزایش داد.
در قطعه کد بالا سعی شده است تا از نامهای با معنی استفاده شود. تغییرات نامها در جدول زیر آورده شده است.
| نام اولیه | نام تغییریافته |
| proc | calculateFinalPrice |
| data | product |
| tmp | adjustedPrice |
| مقادیر ثابت | TAX_RATE - DISCOUNT_AMOUNT |
مثال بالا نشان میدهد که چگونه نام گذاری در برنامه نویسی میتواند یک قطعه کد را از حالت گیجکننده به حالتی کاملاً خوانا و قابل فهم تبدیل کند.
چند نکته مهم برای نام گذاری در برنامه نویسی
نام گذاری در برنامه نویسی یک مهارت کلیدی است که با رعایت اصول، تمرین و تکرار میتوان آن را بهبود بخشید. صرف زمان برای انتخاب نامهای خوب در برنامه نوعی سرمایهگذاری است که در بلند مدت با افزایش خوانایی، کاهش باگ و تسهیل نگهداری کد چندین برابر بازده خواهد داشت.
در ادامه چند نکته مهم برای نام گذاری در برنامه نویسی آورده شده است.
- ثبات در نام گذاری
- نام خوب به توضیحات زیاد نیاز ندارد
- استفاده از کلمات کلیدی معنادار
- یک کلمه برای یک مفهوم

ثبات در نام گذاری کلید موفقیت است
هر توسعهدهندهای برای نام گذاری از سبک مشخصی پیروی میکند. ثبات در سبک نام گذاری در سراسر پروژه حیاتی است. از جمله مهمترین سبکهای رایج در نام گذاری میتوان به PascalCase ،snake_case و camelCase اشاره کرد. استفاده از یک سبک نام گذاری مشخص باعث میشود تا خواندن کد برای همه اعضا تیم برنامه نویسی آسانتر شود.
نام خوب به توضیحات نیاز ندارد
اگر بعد از نام گذاری یک متغیر نیاز است تا توضیحات زیادی برای آن نوشته شود، به احتمال زیاد نام انتخاب شده مناسب نیست. مهمترین اصل در نام گذاری این است که نام انتخاب شده خود گویای همه چیز باشد. توضیحات در برنامه باید برای موارد خاص یا منطقهای پیچیده استفاده شوند.
استفاده از کلمات کلیدی معنادار
در هر زبان برنامه نویسی کلمات کلیدی خاصی وجود دارد که نباید از آنها برای نام گذاری استفاده کرد. توصیه میشود از نامهایی استفاده شود که با کلمات کلیدی تداخل نداشته باشند و در عین حال نیز معنیدار باشند.
یک کلمه برای یک مفهوم
یکی دیگر از اصول مهم در نام گذاری اصل یک کلمه برای یک مفهوم است. در هر پروژه برای هر مفهوم انتزاعی خاص باید فقط یک نام انتخاب شود. به عنوان مثال، اگر در بخشی از کدFetch و در بخش دیگرGet استفاده شود، خواننده دچار سردرگمی خواهد شد. پیشتر در مطلب زیر از مجله فرادرس به اصول کلی کد نویسی که همه باید بدانند پرداخته شده است.
چگونه برنامه نویسی یاد بگیریم؟
برنامه نویسی یکی از حوزههای جذاب در دنیای کامپیوتر است که علاقهمندان بسیاری نیز دارد. یادگیری برنامه نویسی همانند هر مهارت دیگری مستلزم تلاش، پشتکار، تمرین و تکرار است. با این حال به دلیل تنوع زبانها، فریمورکها و فناوریهای مختلف در این حوزه ممکن است افراد در ابتدای مسیر دچار سردرگمی شوند. علاوه بر این، با دیدن چند ویدیو آموزشی و نوشتن چند خط کد نمیتوان اصطلاح برنامهنویس را به یک فرد نسبت داد. برنامهنویس واقعی فردی است که توانایی تحلیل مسئله، طراحی راهحل و بهینهسازی کد را داشته باشد. بنابراین، پیش از شروع یادگیری این مهارت باید در نظر داشت که برای موفقیت در برنامه نویسی انتخاب یک مسیر آموزشی صحیح ضروری است.
اگر قصد یادگیری برنامه نویسی به صورت اصولی را دارید، میتوانید فیلمهای آموزشی موجود در مجموعه آموزش برنامه نویسی مقدماتی تا پیشرفته فرادرس را مشاهده کنید که لینک آن در ادامه آورده شده است.
با مشاهده فیلمهای آموزشی این مجموعه مفاهیم پایهای برنامه نویسی از طراحی الگوریتم و فلوچارت گرفته تا اصول شیگرایی و مفاهیم پیشرفته را یاد خواهید گرفت. یکی دیگر از مزایای مجموعه آموزش برنامه نویسی فرادرس این است که میتوانید بر اساس سطح خود از مبتدی گرفته تا پیشرفته آموزشهای مناسب سطح خود را تهیه کنید.در ادامه تعدادی از دورههای پیشنهادی موجود در این مجموعه آورده شده است.
- فیلم آموزش برنامه نویسی پایتون Python در سطح مقدماتی با گواهینامه
- فیلم آموزش برنامه نویسی C++ سی پلاس پلاس با گواهینامه
- فیلم آموزش برنامه نویسی پی اچ پی PHP
- فیلم آموزش برنامه نویسی جاوا Java با گواهینامه
- فیلم آموزش برنامه نویسی اندروید Android در سطح مقدماتی با گواهینامه
- فیلم آموزش برنامه نویسی دارت

جمعبندی
نام گذاری در برنامه نویسی نقشی بسیار فراتر از انتخاب چند حرف برای شناسایی متغیرها یا توابع دارد. این مهارت یک عنصر کلیدی و حیاتی برای دستیابی به برنامه نویسی تمیز است. نامهای گویا، معنیدار و توصیفی به نوعی ستون فقرات خوانایی، درکپذیری و قابلیت نگهداری کد را تشکیل میدهند. در این مطلب از مجله فرادرس یاد گرفتیم که نامها باید قصد و نیت پشت کد را به وضوح نشان دهند، از ارائه اطلاعات غلط اجتناب کنند و تعادلی بین کوتاه و توصیفی بودن برقرار سازند.
علاوه بر این، قواعد خاصی برای نام گذاری متغیرها، توابع و کلاسها بیان شد و مثالهای عملی متعددی نیز برای درک بهتر این قواعد ارائه شد. به این نکته باید توجه داشت که نام گذاری در برنامه نویسی یک مهارت است که با تمرین، توجه و تکرار بهبود پیدا میکند. اگر علاقهمند به یادگیری عمیقتر مفاهیم نام گذاری هستید، پیشنهاد میشود که فصل دوم کتاب «کدنویسی تمیز» (Clean Code) نوشته «رابرت سی. مارتین» (Robert C.Martin) را مطالعه کنید.












