توسعه نرمافزار
نوشتن کد قابل نگهداری: چه چیزی واقعاً اهمیت دارد
کد قابل نگهداری کدی است که کسی دیگر — از جمله خودِ آینده شما — بتواند بدون ترس تغییرش دهد. درباره کمال یا دنبال کردن هر الگوی طراحی نیست. درباره ارزان کردن تغییر بعدی است. بعد از پانزده سال نوشتن نرمافزار، اینها عادتهایی هستند که بیشترین وقت را نجاتم دادهاند و بیشترین پیجرهای نیمهشب را جلوگیری کردهاند.
چیزها را صادقانه نامگذاری کنید
بهترین کامنت یک نام روشن است. $d هیچ نمیگوید؛ $daysSinceLastLogin همه چیز را میگوید. اگر برای نامگذاری چیزی تقلا میکنید، احتمالاً هنوز نمیفهمید چه میکند — و این نشانهای است که قبل از نوشتن بیشتر سادهسازی کنید.
کد خیلی بیشتر از آنکه نوشته شود، خوانده میشود. برای خواننده بهینه کنید.
توابع کوچک، یک کار
یک تابع باید یک کار انجام دهد. اگر برای توصیفش به «و» نیاز دارید، تقسیمش کنید. توابع کوچک تست، نامگذاری و بازاستفادهشان آسانتر است. هزینهاش ناچیز است؛ سودش در طول سالها انباشته میشود.
کد را با شدت حذف کنید
کد مرده، بلوکهای کامنتشده و انتزاعهای «محض احتیاط» بدهیاند. خوانندهها را گیج میکنند و بیسروصدا میگندند. اگر استفاده نمیشود، حذفش کنید — گیت به یاد دارد.
تست جایی که مهم است
دنبال پوشش ۱۰۰٪ نروید. قواعد کسبوکار، حالتهای مرزی و مسیرهایی که اگر بشکنند بیشترین آسیب را میزنند تست کنید. چند تست خوبانتخابشده از مجموعهای از اسنپشاتهایی که با هر تغییر CSS میشکنند بهتر است.
یکنواخت بهتر از زیرکانه است
تیم شما به زیرکانهترین راهحل نیاز ندارد؛ به قابلپیشبینیترین نیاز دارد. حتی وقتی در یک پروژه نوپا کار دیگری میکردید، از قراردادهای موجود کدبیس پیروی کنید. یکنواختی بار شناختی همه را کم میکند.
اشتباهات رایج
- بهینهسازی برای خواننده اشتباه. نگهدارندگان آینده را با روشنی تحت تأثیر بگذارید، نه با تعداد الگوهایی که بلدید.
- بازآراییهای انفجار بزرگ. کد را تدریجی، هرجا دست میزنید بهبود دهید. قاعده پیشاهنگ: بهتر از آنچه یافتید رهایش کنید.
- پریدن از «چرا» در کامنتها. تصمیمها را توضیح دهید، نه مکانیک را. کد «چه» را نشان میدهد؛ کامنت باید «چرا» را ثبت کند.
بهترین شیوهها
- قبل از درخواست از دیگران، PR خودتان را بازبینی کنید — نیمی از مشکلات را خودتان میگیرید.
- توابع را زیر حدود ۴۰ خط بهعنوان یک رهنمود نرم نگه دارید، نه یک مذهب.
- وقتی شک دارید، راهحل کسلکننده را انتخاب کنید. کد کسلکننده کد قابل نگهداری است.
جمعبندی
کد قابل نگهداری از نامگذاری صادقانه، توابع کوچک و متمرکز، حذف باشدت، تست هدفمند و قراردادهای یکنواخت میآید. هیچکدام پرزرقوبرق نیست و همهشان سالها اجاره میپردازند. بهترین زمان بهکاربستن این عادتها، روی کدی است که همین حالا مینویسید — نه روی بازنویسیای که هرگز شروعش نمیکنید.