من توی این مدت عمر کاری ای که از خدا گرفتم یه چیزی در برخورد با کدهای قدیمی زیاد اذیتم کرده اینه که تو پروژهها کلی کد تکرار دیدم و الان به نظرم خوبه که اینجا هم بگمش یه مفهومی داریم به نام DRY = Don't Repeat Yourself که میگه تلاش کنیم که یک کد رو دوبار تکرار نکنیم. برای اینکه بیشتر در این باره بدونید بهتره برید توی اینترنت و مقالاتی مثل این رو بخونید https://en.wikipedia.org/wiki/Don%27t_repeat_yourself https://deviq.com/don-t-repeat-yourself/ راه حلهایی که به ذهن من میرسه برای اینکه جلوی اینکار رو بگیرید ایناست ۱. تبدیل این بخش از کد به یک کتابخانه یا کامپوننت در صورت امکان. البته در خیلی از موارد این کار اصلا آسون نیست و خیلی سخته. چون تعریف یک کتابخانه یا کامپوننت خوش تعریف سخته اگه نتونستیم به روش بالا کد رو جدا کنیم حالتهای زیادی داریم ۲. حالتی که بیشتر بخشهای نرمافزار مثل هم هست و بخشی از روندهای کسب و کاری عوض شده. بهتره با استفاده از build tools بتونیم دوتا variation نرمافزار رو از روی یک کد مشترک کامپایل کنیم. این مفهوم از قدیم وجود داشته اما جایی که من مستقیم دیدم به رسمیت شناخته شده توی اندروید بوده ۳. میتونیم از مدلهای انتزاعی مناسب تری یا از پترنهای شی گرایی استفاده کنیم و از تکرار جلوگیری کنیم ۴. سعی کنیم با شکستن بخشهای بزرگ کد به بخشهای کوچکتر تلاش کنیم که بخشهای کوچک رو قابل استفاده مجدد یا حتی یک کتابخانه شدن کنیم.
اینها راههایی بود که به ذهن من میرسید و من از روش ۲ بیشتر استفاده میکنم. اما راهحلهای دیگه رو هم دیدم و میشه انجامش بدم