ضد الگو جریان گدازه ها (Lava Flow Anti Pattern) در برنامه نویسی

مدرس: مسعود کاویانی

شاید شما هم در پروژه های تحقیقاتی کار کرده باشید. ویژگی اصلی این پروژه ها این است که نیاز به تحقیق و توسعه (R&D) بیشتری، نسبت به سایر پروژه های برنامه نویسی دارد. در این پروژه ها معمولا کدهایی نوشته می شود که پیچیدگی فراوان، و به همان نسبت مستندسازی بسیار کمی دارند. در این گونه پروژه ها، معمولا تمرکز اصلی برنامه نویسی به گرفتن خروجی مطلوب، معطوف می شود و همین موضوع باعث می شود که برنامه نویس کمتر به ساختار کلی کد و معماری آن توجه داشته باشد.

در بسیاری از پروژه هایی که نیاز به تحقیق و توسعه زیادی دارند، کد ها، کلاس ها و متدهای پیچیده ای نوشته می شود، که معمولا برنامه نویسان بعدی (یعنی کسانی که بعدا به پروژه اضافه می شوند) از آن سر در نمیاورند. این کد ها معمولا دست کاری هم نمی شوند، زیرا ترس آن می رود که مبادا با دست کاری این کدها، قسمتی از برنامه از کار بیوفتد.

با بزرگ تر شدن این دست از پروژه ها، کدهای تحقیقاتی مانند یک سری گدازه، که به مرور زمان سفت و محکم شده اند، بر سر پروژه ریخته می شود و ضد الگو جریان گدازه ها رخ می دهد. این گدازه ها که سفت و محکم شده اند، قابل تغییر نیستند و کسی هم از آن ها سر در نمیاورد. مخصوصا اگر برنامه نویسی اصلی این گدازه ها از پروژه جدا شده باشد!

پس به طور کلی، ضد الگو جریا گدازه ها (Lava Flow Anti Pattern) معمولا زمانی رخ خواهد داد که پروژه (یا قسمتی از آن) بر پایه تحقیقات شروع شده ولی نتیجه کار به صورت یک محصول واقعی تمام شود. در واقع قسمتی از پروژه که هنوز در حال تکامل است، به نسخه اصلی برنامه اضافه می شود تا محصول کامل و کامل تر شود. در این پروژه ها معمولا قسمت های زیادی از کدها یا کلاس ها وجود دارند پیچیده هستند و تقریبا هیچکس از آن ها سر در نمیاورد یا کلا بلااستفاده هستند. در بسیاری از پروژه ها که تک برنامه نویسه هستند نیز، این ضد الگو به وجود می آید. مخصوصا هنگامی که برنامه نویس و یا برخی از اعضا تیم برنامه نویسی تغییر می کنند، این ضد الگو تشدید می شود. زیرا برنامه نویسان جدید، ممکن است از کدهای قبلی سر در نیاورده و با اضافه کردن تکه کدهای خودشان، برنامه را پیچیده تر کنند.

راه حل اصلی غلبه بر این ضد الگو این است که در هنگام تبدیل کدهای تحقیقات و توسعه، به کد اصلی قابل اجرا در برنامه اصلی، یک سری معماری ها و استانداردهای پروژه لحاظ شود. یعنی کد ها، کلاس ها و متدهایی که در هنگام تحقیق و توسعه نوشته شده اند، پاک سازی شده و کدهای استاندارد با معماری پروژه، در محصول نهایی قرار بگیرند.

منابع این بحث و اطلاعات بیشتر

» وب سایت Source Making

» ویکیپدیا

» وب سایت anti patterns

» وب سایت InfoQ

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

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *