بررسی Domain Driven Design و رسالت آن در توسعه نرم افزار #1 را در این قسمت از وبسایت آموزش برنامه نویسی پرووید دانلود کنید.

بررسی Domain Driven Design و رسالت آن در توسعه نرم افزار

در این پست از وبسایت پرووید می‌خواهیم در رابطه با Domain Driven Design و ادعایی که در رابطه با ساختن نرم افزار ها دارد صحبت کنیم. Domain Driven Design یک استراتژی را برای ساختن نرم افزارهایی که شدیداً رشد خواهند کرد و در طی زمان تکامل پیدا خواهند کرد را فراهم می کند. ادعای دیگر Domain Driven Design این است که نرم افزار شما زیر بار فشار پیچیدگی یا Complexity کمر خم نخواهد کرد. شاید جالب باشد بدانید که بسیاری از اصول Domain Driven Design با باورهای سنتی برنامه‌نویسی در تضاد است.

موضوع نگهداری نرم افزار و یا همان Maintenance از توسعه نرم افزار و یا همان Development بسیار با اهمیت تر است. اگر نگهداری نرم افزار به درستی انجام نشود نتیجه کار نرم افزاری است که همه از آن می‌ترسند. نرم افزاری که وقتی تغییر کوچکی در آن ایجاد می‌شود خروجی ش بسیار متفاوت و حتی شوکه کننده است. در چنین شرایطی عملاً Maintenance نرم افزار متوقف می شود و برنامه نویس به سمت برنامه نویسی تدافعی یا همان Defensive Programming سوق پیدا می‌کند. به عبارت دیگر به جای نگهداری نرم افزار کدهایی را در آن قرار می دهیم که از لحاظ ساختاری یا همان Structural کاملا اشتباه هستند اما تضمین می‌کنند که کار نرم افزار به درستی انجام شود. ما اینگونه تغییرات بر روی کدی که از قبل موجود است را وصله یا Patch نامگذاری میکنیم. نکته بسیار مهم در رابطه با این Patch ها که غیرساختاری یا Non-Structural هستند این است که با وارد شدن آنها در نرم افزار به پیچیدگی نرم افزار افزوده می شود. نهایتاً نرم افزار به حدی پیچیده می‌شود که عملا نگهداری آن غیر ممکن است و تصمیم گرفته می‌شود که نرم افزار به طور کامل کنار گذاشته شود و یا از اول دوباره کد نویسی شود. بگذارید این چرخه یا Cycle را Create-Repair-Abandon-Replace یا همان CRAP بنامیم. طبیعتاً معنی کلمات این سیکل خلق کردن-تعمیر کردن-کنار گذاشتن-جایگزین کردن است.

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

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