کیوان دمیرچی - Keivan Damirchi
کیوان دمیرچی - Keivan Damirchi
خواندن ۲ دقیقه·۷ سال پیش

ریفکتورینگ - چه زمانی ریفکتور کنیم؟ (Refactoring – When to Refactor)

در قسمت قبل درباره بدهی فنی (Technical debt) صحبت کردیم، اینکه بدهی فنی چه زمانی بوجود می آید و دلایل بوجود آمدنش چیست. حال میخواهیم بدانیم چه زمانی کدهای نوشته شده را ریفکتور (Refactor) کنیم، فرض کنید که متوجه شده ایم که بعضی از قطعات کد را بد نوشته ایم، اما چه زمانی باید کدهای بد را ریفکتور کنیم؟

وقتی یک ویژگی (Feature) جدید به نرم افزار اضافه می کنیم

ممکن است بخشی از یک کدی که قبلا نوشته شده به شما داده شود، اگر کدی که مشغول به توسعه (Develop) آن هستید خیلی درهم و کثیف باشد، اولین کاری که باید انجام دهید ریفکتور کردن کدهای نوشته شده است، بعد از تمیز کردن کدهای نوشته شده میتوانید مشغول به توسعه آن شوید. کد تمیز آسانتر درک می شود، بعد از ریفکتور کردن کد نوشته شده، بخاطر داشته باشید که علاوه بر راحتی که خود شما درهنگام توسعه کد دارید، نفر بعدی که وظیفه توسعه این کد را دارد احساس بهتری خواهد داشت.

وقتی باگی (Bug) را در سیستم برطرف کنیم

رفتار یک باگ مانند یک میکروب است، در کثیف ترین و تاریکترین قسمت کدهای ما زندگی می کنند، احتمال اینکه در هنگام ریفکتور با آنها مواجهه شوید خیلی زیاد است، ریفکتور درهنگام رفع باگ یک حرکت با دو امتیاز است؛ علاوه بر اینکه باگی در سیستم بر طرف می شود، کدهای بررسی شده، ریفکتور می شوند و دیگر نیازی به اختصاص زمان جداگانه برای ریفکتور بخش مربوطه در نظر گرفته نمی شود.

وقتی Code Review می کنیم

زمان بازنگری کد، آخرین شانس شما برای ریفکتور کردن کد می باشد، ممکن است بعد از اتمام یک قسمت از کدتان، زمانی برای بازنگری کدهای نوشته شده در نظر بگیرید، این زمان هم میتواند وقت خوبی برای ریفکتور کردن بخشی که مورد بازنگری قرار گرفته باشد.

نکته : اگر از سیستم های Source Control استفاده میکنید، قبل از Mergeکردن Branch زمان مناسبی برای ریفکتور کردن می باشد.

اصل کلی در ریفکتورینگ

ریفکتورینگ باید در یک سری از تغییرات کوچک و متوالی اتفاق بیفتد، توجه کنید که این تغییرات کوچک نباید در روند اجرایی نرم افزار تاثیر بگذارند، ممکن است ریفکتورینگ Performanceبعضی از بخش ها را دستکاری کند، اما نباید موجب بوجود آمدن Functionalityجدید در سیستم شود، هدف اصلی ریفکتورینگ تمیز کردن و خواناتر کردن کد می باشد.

نکته : اگر درهنگام ریفکتورینگ، متوجه شدید که با تغییر یک قسمت از کد میتوانید ویژگی جدید به نرم افزار اضافه کنید، این مورد را در جایی ثبت کنید و در زمان دیگر و در یک Branchجداگانه تغییرات مربوطه را اعمال کنید.

refactoringprogrammingclean codeبرنامه نویسیریفکتورینگ
توسعه دهنده نرم افزار
شاید از این پست‌ها خوشتان بیاید