در حال حاضر در حال refactoring یکی از سیستمهای خودمون هستم و گفتم بد نیست توضیحی درباره اهمیت refactoring بدم.
یکی از مهم ترین پادالگوها (anti-patterns) در ایجاد نرمافزار Lava Flow (جریان مواد مذاب) هست که به حالتی گفته میشه که Dead Code داریم. در واقع وقتی برنامهنویسهای تیم شما یک کد رو مینویسن و میبینن کار هم میکنه (functional هست) احتمالا کار رو تموم شده بدونن و این جریان مذاب کد رو بیخیال بشن که باعث میشه فریز بشه و کلی اذیت کنه بعدا. خصوصا وقتی مدتی از نوشتن کد بگذره نه تنها افراد جدید نمیتونن کد رو بفهمن بلکه خود کسی هم که کد رو نوشته دیگه نمیفهمه و کد قابل نگهداری نخواهد بود.
برای همین تعریف Dead Code کدی هست که اتفاقا میتونه functional هم باشه اما maintainable نیست.
علت چیه:
در تیم شما Refactoring به شکل سختگیرانه انجام نمیشه. دقت کنید که در تمامی متولوژیهای چابک Refactoring اجباری هست.
راه حل:
سادهسازی و refactoring باید در پروژههای شما اجبار باشن. دقیقا مثل اون اصل Invent and Simplify در شرکت آمازون. هرچقدر کار بزرگتر بشه اهمیت سادهسازی بالاتر خواهد بود. ساده سازی باید به شکل مداوم انجام بشه.
باید دقت کنیم که تعریف Done یا تمام شده یک تعریف بسیار مهم در توسعه چابک و روشهای agile هست و باید حتما یکسری المان در نظر گرفته بشه. اینکه ددلاین یک تسک نزدیک باشه و کدی که کار میکنه رو تمام شده فرض کنیم و بگیم بعدا برمیگردیم اصلاح میکنیم بزرگترین اشتباه هست.
منبع کانال تلگرامی @deeptimeai