برنامه نویس کامپیوتر ، مدیر پروژه و سرمایه گذار بازارهای مالی (فارکس ، بورس و ...)
آموزش اصولی کد نویسی تمیز - بخش دوم

در ادامه مقاله کد نویسی تمیز برگرفته از کتاب Clean Code به نکات دیگری در خصوص نام گذاری صحیح اشاره میکنم :
1- از اسامی با معنی و مرتبط استفاده کنید
این تکه کد را
123456 class DtaRcrd102 { private Date genymdhms; private Date modymdhms; private final String pszqint = “102”; /\* _... \*_/ }
مقایسه کنید با کد زیر
123456class Customer { private Date generationTimestamp; private Date modificationTimestamp; private final String recordId = "102" /\* _... \*_/ }
در نام گذاری کلاس و اتربیوتها از نامهای کد شده و رمزی و مخفف سازی و اسامی بی معنی استفاده نشده. در نام گذاری های چند کلمه ای CamelCase رعایت شده . اسامی اتریبیوتها و متدها با حرف کوچک شروع شده و کلاسها با حرف بزرگ (البته مایکروسافت در زبانهایش بعضی موارد را نقض کرده مثل نام گذاری متدها با حرف اول بزرگ ، مثال ما از زبان جاواست که این سبک نام گذاری توسط برنامه نویسان آن رعایت میشود)
2- اسامی قابل جستجو انتخاب نمایید
به کد زیر توجه کنید :
123for (int j=0; j<34; j++) { S+= (t[j]*4)/5; }
و حالا پس از تغییر
123456789 int realDaysPerIdealDay = 3; int WORK_DAYS_PER_WEEK = 5; int sum = 0; for (int j=0; j<NUMBER_OF_TASKS; j++) { int realTaskDays = taskEstimate[j] * realDaysPerIdealDay; int realTaskWeeks = (realdays / WORK_DAYS_PER_WEEK); sum += realTaskWeeks; }
کد دوم طولانی تر است اما به جای استفاده از مقادیر ثابت عددی آنها در ثابتهایی با نام مشخص قراردادیم. با این کار جستجو در سطح برنامه بویژه زمانی که قرار است محل استفاده آنها را در یک کلاس بزرگ پیدا کنیم کار را به شدت راحت میکنند . ضمن اینکه با این کار خوانایی برنامه را بیشتر کردیم و برای برنامه نویسان دیگر قابل درک است
3- از پیشوندهای خاص برای دسته بندی متغیرها و متدها استفاده نکنید
شاید جالب باشد که مثلا نام همه متغیرهای محلی را با حرف m شروع کنید و یا متدهایی با چند کاراکتر پیشوند دسته بندی کنید. این کار به ظاهر ممکن است جالب باشد اما خوانایی برنامه را کم میکند
همینطور درصورتیکه مثلا همه اتریبیوتهای یک کلاس را با پیشوند atr شروع کنید دیگر نمیتوانید به راحتی از کمک IDE برای پیشنهاد نزدیکترین نام استفاده کنید چرا که همه نامهای شما در یک محدوده هستند.
123456public class Part { private String m_dsc; // The textual description void setName(String name) { m_dsc = name; } }
را به این صورت بنویسیم :
123456public class Part { String description; void setDescription(String description) { this.description = description; } }
در این مثال نام گذاری مرتبط با موضوع و بدون پیشوند رعایت شده.
4- نام گذاری واسطها (interface) و پیادهسازیها
برای نام گذاری واسطها بعضی برنامه نویسیان واسط را با پیشوند و یا پسوند تعریف میکنند و پیاده سازی را با نام اصلی . از آنجایی که چند پیاده سازی از واسط میتواند وجود داشته باشد بهتر است واسط با نام اصلی و پیاده سازی های آن با نامهای مشابه موضوع و بعضا با پیشوند نام واسط نام گذاری شوند. البته میتوان به نام واسط اصلی اشاره ای نکرد :
نمونه نادرست
1interface IShape , class Circle
نمونه های درست
1interface Shape , class Cricle یا CircleImpl
1interface DatabaseFactory , class DatabaseFactorySQL , DatabaseFactoryOracle
توجه کنید در نام گذاری کلاسها و واسطها هرگز از کاراکتر '_' برای جداکردن کلمات استفاده نکنید
مطلبی دیگر از این انتشارات
Java Performance Tools - هشت نوع ابزار که باید بشناسید
مطلبی دیگر از این انتشارات
سه سوال رایج همه مصاحبههای کاری
مطلبی دیگر از این انتشارات
الگوهای طراحی یا Design Patterns