کد خوشگل یا کدی که کار میکند؟
گاهی وقتی کد شخص دیگری را میخوانیم، از نظم و زیبایی آن شگفتزده میشویم.
فاصلهها دقیق، نامگذاریها شاعرانه، و هر تابع مثل یک قطعه هنری نوشته شده است.
اما وقتی میخواهیم آن کد را در یک پروژه واقعی اجرا کنیم، ناگهان همه چیز فرو میپاشد.
کد تمیز الزاماً به معنی کد درست نیست.
زیبایی در مقابل عملکرد
زیبایی در کدنویسی یعنی ساختاری که بهراحتی قابل درک و نگهداری باشد.
اما عملکرد یعنی اینکه آن کد در شرایط واقعی چطور رفتار میکند:
آیا سریع است؟ آیا منابع سیستم را بهینه مصرف میکند؟
آیا در مقیاس بزرگ هنوز هم پایدار و بیخطا باقی میماند؟
در دنیای واقعی، بسیاری از باگها و مشکلات پرفورمنس از دل همان کدهای زیبایی بیرون میآیند
که بیش از حد انتزاعی یا بیش از حد "فلسفی" نوشته شدهاند.
یک مثال ساده
کدی که فقط خوشگله
async function getData() {
const users = await fetch("/api/users").then((r) => r.json());
const posts = await Promise.all(
users.map((u) => fetch(/api/posts/${u.id}).then((r) => r.json()))
);
return { users, posts };
}
کدی که کار میکنه
async function getDataFast() {
const [users, posts] = await Promise.all([
fetch("/api/users").then((r) => r.json()),
fetch("/api/posts").then((r) => r.json()),
]);
return { users, posts };
}
کد اول از نظر ساختار زیباست،
اما برای هر کاربر درخواست جداگانه میفرستد (مشکل کلاسیک N+1) .
کد دوم سادهتر است اما بسیار سریعتر عمل میکند.
چگونه تعادل برقرار کنیم؟
- اول عملکرد رو بسنجید، بعد زیبایی را بسازین.
- هر کدی که نوشتید براش داکیومنت بنویسید چون فردا حتی خودتون هم یادتون نمیاد!!
- لا به لای کد هاتون کامنت بزارید و توضیح های کوتاه بدید, مطمئن باشید پشیمون نمیشید.
- زیبایی کد باید در خدمت کارایی باشد، نه برعکس.
جمعبندی
- هر کدی که نوشتید چه پیچیده چه خوشگل حتما داکیومنت بنویسید براش.
- کسی به این اهمیت نمیده که چه کسی کد خوشگل تری نوشته یا حجم کد کمتری داره, بلکه مهم ترین چیز توی نوشتن کد کار کردن و پرفورمنس اونه .