بهترین روش های نوشتن کد تمیز
کد معمولا همیشه یه راهی برای زندگی طولانی تر از چیزی که باید باشه پیدا میکنه. یه نگاهی به سیستم های mainframe که امروزه هنوز مورد استفاده قرار گرفتن بندازید. یه زمانی حتی توسعه دهنده های باتجربه هم با دیدن کد هاشون متعجب شدن و خودشون به درستی نمیتونن کد هایی که خودشون چندین هفته یا ماه قبل نوشتن رو درک کنن. بنابراین این مورد باعث میشه که استفاده از روش ها و عادت های درست توسط توسعه دهنده های نرم افزار واجب بشه.
یه کد نوشته نمیشه تا بعد از یه بار استفاده ازش متوقف بشه. بیشتر وقتا شما یا یه نفر دیگه باید یه روزی دوباره روی اون کد کار کنید. اگه کد تمیز بنویسید، به خودتون و همکار هاتون توی آینده کمک میکنید تا زمانش که برسه بهینه تر روی پروژتون کار کنن.
بیشتر ایده ها و روش های معرفی شده توی این قسمت بر اساس کتاب ها و بلاگ های Robert C. Martin (که بهش Uncle Bob هم میگن) هستن، که یک متخصص توی حوزه نوشتن کد تمیز هست کتاب ها، مقاله ها و ویدیو های آموزشی مختلفی منتشر کرده. ما فقط مروری کلی و مختصر روی قسمت های مختلف خواهیم داشت، اما برای این موضوع کتاب های کامل و جدا نوشته شده که میتونید سرچ کنید و ببینید.
به کد زیر نگاه کنید:
function circ(r) {
return r * 2 * Math.PI;
}
هذف این کد اینه که محیط یک دایره رو حساب کنه، اما شرط میبندم در نگاه اول بسته به نوع نوشتن این کد اصلا برای شما مشخص نبود که این کار رو میکنه. احتمالا اضافه کردن یه سری کامنت توضیح دهنده به فهم این کد کمک میکنن، اما حالا کد بالا رو با این کد مقایسه کنید:
function circumference(radius) {
return radius * 2 * Math.PI;
}
همونطور که میبینید این کد قابل فهم تر بود و قبلا مشخص نبود این فانکشن چه کاری انجام میده، چه پارامتر هایی میگیره و خروجی هاش چین. صرفا با تغییر اسم فانکشن و پارامتر ورودیش این کد رو واضح تر کردیم.
تا الان کدمون رو با انتخاب بهتر اسم ها بهتر کردیم، اما یه بهبود دیگه هم میشه انجام داد که ارزشش رو داره. فرمول معمولی محاسبه محیط دایره C = πd هست که توی این فرمول d همون قطر (diameter) میشه. اگه عملیات محاسبه رو به دو قسمت تقسیم کنیم، کد واضح تر میشه. حالا کد زیر رو با کد بالا مقایسه کنید:
function circumference(radius) {
let diameter = radius * 2;
return diameter * Math.PI;
}
این تغییر ساده باعث میشه که دلیل ضرب کردن شعاع (radius) بر ۲ واضح تر بشه، که برای به دست آوردن مقدار قطر بوده.
این ممکنه تغییر خیلی بزرگی نباشه و شاید چند خط کد اضافه در اون حد هم واضح بودن به کد اضافه نکنه. این مورد ممکنه برای این نمونه کد صدق کنه، اما تصور کنید کد زدن به این روش چقدر میتونه توی واضح تر پیاده سازی کردن راه حل های پیچیده تر کمک کنه.