نامگذاری کردن متغیرها یکی از مهمترین و پیچیدهترین مهارتها در برنامه نویسی است. انسانها و ماشینها جزو مخاطبان کدهای توسعه دهندگان محسوب میشوند. شما با یک نگاه مختصر به کدها میتوانید نوع این مخاطب را مشخص کنید. توسعه دهندگان باید به جای ماشینها، روی انسانها تمرکز کنند. وقتی از خوانا بودن کدها صحبت میکنیم، یعنی باید به جنبهی انسانی توجه داشته باشیم.
کدهای موجود در پروژهها با گذشت زمان رشد کرده یا تغییر میکنند. به همین خاطر باید از خوانا بودن آن کدها برای سایر توسعه دهندگان مطمئن شویم. مطمئناً در یک پروژه توسعه دهندگان متعددی بر روی کدها مشغول به کار هستند و از این رو باید تا حد امکان آنها را ساده نگه داریم. این مسئله به درک سریعتر و دقیقتر کدها کمک خواهد کرد.
تا زمانی که کارکرد کدها مطلوب باشد، ماشینها به خوانا بودن یا نبودن آن اهمیت نمیدهند.
1. از نامهای توصیفی و قابل تلفظ استفاده کنید
شما باید نام متغیر، تابع و کلاس را معنادار انتخاب کنید. اسامی باید به خوبی نحوهی کارکرد را به مخاطب مورد نظر بفهمانند. به عنوان مثال:
// BAD
const str = "Eren Yeager";
const int = 19;
const ddmmyyyy = new Date().toLocaleDateString();// GOOD
const name = "Eren Yeager";
const age = 19;
const currentDate = new Date().toLocaleDateString();
تا حد امکان از نام های عمومی مثل data یا value استفاده نکنید، مگر اینکه واضح باشند.
const usernames = ["Attack Titan", "Colossus Titan", "Mikasa"];
// BAD
usernames.forEach(value => {
alert(`Welcome, ${value}`);
});
// GOOD
usernames.forEach(username => {
alert(`Welcome, ${username}`);
});
همچنین از اضافه کردن یک عدد برای بیان کردن نامی دیگر خودداری کنید. به عنوان مثال:
const user2 = ...;
const user3 = ...;
...
2. از افعال کمکی برای تعریف دادههای تایپ بولی استفاده کنید
هنگام ذخیره کردن مقادیر بولی (Boolean) در یک متغیر از be یا have استفاده کنید تا معنای بهتری را به آنها ببخشید. با این کار میتوان نوع متغیر را تنها با یک نگاه تشخیص داد. به عنوان مثال:
// BAD
let selected = true;
let authed = true;
let adminRights = false;
// GOOD
let isSelected = true;
let isAuthed = true;
let hasAdminRights = false;
با این کار بلافاصله میتوان معنای متغیر را درک کرد.
3. برای توابع از افعال مناسب استفاده کنید
توصیه میکنم از افعال یا عبارتهای فعلی در نام توابع خود استفاده کنید. توابع موظف به انجام تنها یک کار هستند، بنابراین استفاده کردن از فعل به تعیین دامنهی یک تابع کمک میکند. مثلاً با این کار میفهمیم که فلان تابع چه عملکردی دارد، چه چیزهایی را اضافه و یا چه چیزهایی را حذف میکند. در اینجا Getterها و Setterها را میتوان به عنوان یک نمونهی خوب مثال زد.
// BAD
function userList() {
// ...
}
// GOOD
function getUserList() {
// ...
}
اگرچه نام تابع باید به اندازهی کافی توصیفی باشد تا بتواند هدف تابع را به مخاطب بفهماند.
// BAD
function calculation(...args) {
return args.reduce((a, b) => a + b, 0);
}
// GOOD
function getSum(...args) {
return args.reduce((a, b) => a + b, 0);
}
4. از کلمات مشابه استفاده کنید
در نامگذاری متغیرها، توابع و کلاسهای خود ثابت قدم باشید. از کنوانسیون تعیین شده توسط شما یا تیمتان استفاده کنید.
// BAD
fetchClientInfo();
fetchCustomerDetails();
fetchUserData();
// GOOD
fetchUser();
5. از اسامی مختصر خودداری کنید
تا حد امکان از مختصر کردن یا نامهای کوتاهی مثل a، b، c و d خودداری کنید.
// BAD
const men = users.filter(u => u.age > 18 && u.gender === "male");
// GOOD
const women = users.filter(user => user.age > 18 && user.gender === "female");
اگرچه در این موضوع استثنا نیز وجود دارد. مثال پایین برای یک عملیات ریاضی یا مقایسه کردن بکار برده شده است.
function compareNumbers(a, b) {
return a - b;
}
6. از ثابتها (Constants) استفاده کنید
توصیهی من به شما، استفاده کردن از ثابتهاست. وقتی میخواهید یک مقدار را در مکانهای مختلف مقایسه کنید، به شما این امکان را میدهد تا از منابع ارور دوری کنید. به عنوان مثال:
const ADMIN_ACCOUNT_TYPE = "admin";
const SIMPLE_USER_ACCOUNT_TYPE = "simple-user";
/**
* You can also group constant values in an object if they match:
*
* const ACCOUNT_TYPES = {
* ADMIN: "admin",
* SIMPLE_USER: "simple-user",
* };
*/
switch(user.accountType) {
case ADMIN_ACCOUNT_TYPE:
// does something
break;
case SIMPLE_USER_ACCOUNT_TYPE:
// does something else
break;
default:
// guest user
}
استفاده کردن از ثابتها به شما کمک میکند تا به مقادیر خود معنا بخشیده و از به وجود آمدن مقادیر مبهم دوری کنید. به عنوان مثال:
// BAD
setHeaderColor("#ff0000");
// GOOD
const RED = "#ff0000";
setHeaderColor(RED);
به وسیلهی تخریب، از تخصیص متغیر استفاده کنید
تخریب ساختار به شما کمک میکند تا بتوانید بخشهایی از یک جدول یا آبجکت را باز کنید.
const [firstName, lastName, age] = ["Kyojuro", "Rengoku", 20];
همچنین میتوانید مقایر خاص موجود در یک آرایه را به صورت زیر نادیده بگیرید:
const [,,age] = ["Kyojuro", "Rengoku", 20];
دیدگاه و پرسش
در حال دریافت نظرات از سرور، لطفا منتظر بمانید
در حال دریافت نظرات از سرور، لطفا منتظر بمانید