هر کار و پیشه ای که داری آن را به گونه ای انجام بده که گویی تا ابد زنده هستی و بابت کرده ات پاسخگو
روز چهل و دوم از چالش ۱۰۰ روز کد زدن - Refactoring

درود بر شما خواننده گرامی،
بسیار خوشحالم که پس از گذشت چهل و دو روز از چالش شیرین، جذاب، مهیج و آموزشی صد روز کد زدن، شما خوانندگان عزیز و محترم رو در کنار خودم دارم.
موضوع انتخابی روز چهل و دوم کمی متفاوت است! چرا که بیشتر بر روی کیفیت کد تمرکز دارد تا بر روی تکنولوژی مورد استفاده در کد.
اگر کیفیت کدها رو بررسی کنید به یک نتیجهی کلی خواهید رسید:
عموم برنامه نویسهای ایرانی (حداقل برنامه نویس هایی که چند عدد کار سورس باز به اشتراک گذاشتهاند) با مفهومی به نام Refactoring هیچگونه آشنایی ندارند.
به عنوان مثال یک برنامهی WinForm تهیه کردهاند و کل سورس برنامه همان چند عدد فرم برنامه است و هر فرم بالای 3000 سطر کد دارد. دوستان عزیز! به این میگویند «فاجعهای به نام کدنویسی کثیف!» صاحب اول و آخر این نوع کدها خودتان هستید! شاید به همین جهت باشد که عمدهی پروژههای سورس باز پس از اینکه برنامه نویس اصلی از توسعهی آن دست میکشد، «میمیرند». چون کسی جرات نمیکند به این کدها دست بزند. مشخص نیست الان این قسمت را که تغییر دادم، کجای برنامه به هم ریخت. تستی ندارند. ساختاری را نمیتوان از آنها دریافت. منطق قسمتهای مختلف برنامه از هم جدا نشده است. برنامه یک فرم است با چند هزار سطر کد در یک فایل! کار شما شبیه به کد اسمبلی چند هزار سطری حاصل از Decompile یک برنامه که نباید باشد!
بازسازی کد یا Code Refactoring چیست؟
Refactoring به معنای بهبود پیوسته کیفیت کدهای نوشته شده در طی زمان است؛ بدون ایجاد تغییری در عملکرد اصلی برنامه. به این ترتیب که در پایان هر ریفکتورینگ به کدهایی دست خواهیم یافت که قابلیت آزمون پذیری بهتری داشته، در مقابل تغییرات مقاوم و شکننده نیستند و همچنین امکان به اشتراک گذاری قسمتهایی از آنها در پروژههای دیگر نیز میسر میشود.
بهطور کلی بازسازی کد دارای دو فایده است.
- نگهداشتپذیری. با انجام بازسازی کد، رفع مشکل در کد آسانتر انجام میشود زیرا خوانایی کد بیشتر است و هدف نویسندۀ کد راحتتر فهمیده میشود.
- توسعهپذیری. امکان گسترش دادن تواناییهای برنامه بیشتر میشود درصورتی که کد از الگوهای طراحیِ قابل تشخیص استفاده کند و قابلیت انعطافپذیری داشته باشد.
اگر گشت و گذاری در اینترنت داشته باشید، کتاب ها و مقالات بسیار زیادی در خصوص Refactoring منتشر شده که به عنوان یک برنامه نویس خوب، حتما مطالعه آنها را در اولویت قرار دهید.
حق نگهدارتان.
مطلبی دیگر از این نویسنده
روز بیست و چهارم از چالش ۱۰۰ روز کد زدن - Basic Data Structure
مطلبی دیگر در همین موضوع
عشق و حال با ترموکس - بخش ۱
بر اساس علایق شما
فهرست بدهکاریهای احتمالی یک بشر!