در این مقاله میخواهیم تا به بررسی مجدد کد یا Refactoringدر برنامه نویسی به عنوان راهی برای کاهش مشکلات فنی بپردازیم. اگر به طور جدی به عنوان یک برنامه نویس در فرآیند توسعه برنامه مشارکت داشته باشید، احتمالا میدانید که سازماندهی کد و ایجاد ساختار خوب و همسو با بقیه موارد چقدر مهم است. اما متاسفانه در اغلب مواقع این که برنامه به خوبی عمل کند برایتان در اولویت است و زمان کافی برای درست فکرکردن یا کدنویسی اصولی را ندارید: چرا که باید مشغول کار بعدی شوید.
چنین راه حلی در کوتاه مدت جواب میدهد، اما در دراز مدت و برای آینده نرم افزار بهترین نیست. چه اتفاقی برای کدهایی میافتد که پاکترین، واضحترین یا بهترین کد ممکن نیستند؟ رفته رفته حجم این دسته از کدها زیاد شده، به یک معضل منجر میشود و در نهایت باید به آن رسیدگی شود.
Refactoring در برنامه نویسی چیست؟
ریفکتورینگ یا Refactoring در برنامه نویسی به فرآیند بازسازی یا بازساخت کد گفته میشود به طوری که عملکرد اصلی آن تغییر نکند. هدف از Refactoring بهبود ساختار داخلی کد با ایجاد تغییرات کوچک بسیار (بدون تغییر رفتار خارجی کد) است.
برنامه نویسان کامپیوتر کد را برای بهبود طراحی، ساختار و پیاده سازی نرم افزار بازسازی میکنند. بازسازی کد خوانایی کد را بهبود میبخشد و پیچیدگیها را کاهش میدهد و همچنین میتواند به توسعه دهندگان نرم افزار کمک کند تا خطاها یا آسیب پذیریهای پنهان در نرم افزار خود را پیدا کنند. بسیاری از محیطهای ویرایش اولیه از بازسازیهای ساده مانند تغییر نام یک تابع یا متغیر در کل سورس کد پشتیبانی میکنند.
مارتین فاولر، که پدر Refactoring به حساب میآید، بسیاری از بهترین شیوهها را از سراسر صنعت توسعه نرمافزار در فهرست خاصی از بازسازیها ادغام کرد و روشهایی را برای پیادهسازی آنها در کتاب خود Refactoring: Improving the Design of Existing شرح داده است.
کد کثیف و Refactoring
کارشناسان میگویند که هدف بازسازی کد ؛ تبدیل کد کثیف به کد تمیز است تا هزینههای کلی پروژه را کاهش دهد. خواندن، درک و نگهداری یک کد تمیز بسیار آسانتر است، در نتیجه توسعه نرم افزار را تسهیل میکند و احتمال انتشار یک محصول با کیفیت در زمان کوتاهتر را افزایش میدهد. اما به راستی کد کثیف چیست؟
کد کثیف یک اصطلاح غیررسمی است و به کدی گفته میشود که نگهداری و به روز رسانی آن سخت است و حتی درک و ترجمه آن دشوارتر است. کد کثیف معمولا نتیجه ضربالاجلهایی است که در طول فرآیند توسعه رخ میدهد: نیاز به افزودن یا بهروزرسانی امکانات در صورت لزوم. اغلب میتوانید کدهای کثیف را با کمی بررسی در منطق کلی کد پیدا کنید.