در ادامه بررسی ایدهها، الگوها و راهحلهایی برای بهبود و رفع مشکلات نرمافزارهای مقیاس بزرگ با نگاهی عینی به مدل های موجود در طبیعت، در این پست به بررسی یکی روشهای مدرن برای بازنویسی سیستم های نرم افزاری می پردازم. ایده اصلی این مدل را از طریق آشنایی با زیست یکی از گونه های گیاهی که در آن روند یک تغییر بزرگ می بینیم بررسی میکنیم.
در بخش هایی جنگلهای بارانی و همچنین در برخی از مناطق گرمسیری دنیا ، درختی به نام انجیر معابد رشد میکند. نامگذاری این درخت به عنوان انجیر معابد به زمان بودا بر میگردد و دلیل آن وجود درخت انجیر مقدسی که بنا به اعتقاد بوداییان، بودا در زیر آن به مراقبه پرداخت و به روشنبینی رسید. اغاز رشد این درخت از طریق دانههای کوچکی که در شکاف درختان کهنسال مستقر شده آغاز می شود و به تدریج زیست عجیب خود در روندی برعکس درختان دیگر از بالا به پایین گسترش میدهد و با گذر زمان، ریشههای انجیر معابد به تدریج درخت میزبان را احاطه کرده و جایگزین آن میشوند.
فرض کنید یک پروژه نرمافزاری قدیمی با هزاران خط کد و کلاسهای پیچیده دارید. این پروژه که توسط تیمهای مختلف در طول سالها توسعه یافته است، به جایی رسیده که نگهداری آن دشوار و پرهزینه شده است. در چنین شرایط معمولا چند گزینه اصلی پیش رو دارید:
در این روش، سیستم قدیمی به صورت بخشبخش بازنویسی و بهمرور جایگزین میشود. برای مثال، Netflix در مهاجرت از مدل Monolithic به معماری Microservice از این روش استفاده کرد. این فرآیند چند سال طول کشید، اما بخشهای مختلف سیستم به تدریج به سرویسهای مستقل تبدیل شدند.
در این روش، سیستم به طور کامل از ابتدا طراحی و جایگزین سیستم قدیمی میشود. برای مثال، دیجیکالا کل سیستم خود را با فناوریهای جدید بازنویسی کرد.
سیستم جدید در کنار سیستم قدیمی توسعه یافته و کاربران بهتدریج به آن منتقل میشوند. Facebook هنگام بازنویسی اپلیکیشن خود از HTML5 به Native از این روش استفاده کرد.
با مقدمه ای در خصوص انجیر معابد و رویکردهای بازنویسی یک سیستم نرم افزاری قصد دارم در بخش دوم به بررسی نحوه پیادهسازی دقیق Strangler Pattern یا روش خفه کردن از طریق روش بازنویسی تدریجی و با نگاهی دقیق تر به جزئیات آن خواهم پرداخت...
ادامه دارد ...