𝗪𝗵𝘆 𝗗𝗼𝗺𝗮𝗶𝗻 𝗠𝗼𝗱𝗲𝗹𝘀 𝗠𝗮𝘁𝘁𝗲𝗿 𝗠𝗼𝗿𝗲 𝗶𝗻 𝘁𝗵𝗲 𝗔𝗜 𝗘𝗿𝗮

معماری نرم‌افزار اغلب بحثی است که برنده ندارد. شما یک سیستم می‌سازید، اما هرگز جایگزین آن را تحت همان شرایط نمی‌سازید. این موضوع باعث می‌شود هر تصمیمی غیرقابل ابطال باشد. وقتی سیستمی شکست می‌خورد، مردم دامنه یا تیم را مقصر می‌دانند. آن‌ها به‌ندرت معماری را مقصر می‌دانند، زیرا هیچ گروه کنترل‌شده‌ای برای مقایسه وجود ندارد.

ما به راهی برای آزمایش طراحی‌هایمان نیاز داریم. ما باید پیچیدگی ذاتی (essential complexity) را از پیچیدگی تصادفی (accidental complexity) جدا کنیم. پیچیدگی ذاتی، همان مسئله اصلی است. پیچیدگی تصادفی، آشفتگی‌ای است که ما با ابزارها و فرآیندهای خود ایجاد می‌کنیم.

هوش مصنوعی پیاده‌سازی را تقریباً رایگان می‌کند. این یک تغییر عظیم است. در گذشته، اصطکاکِ نوشتن کد، توسعه‌دهندگان را مجبور می‌کرد تا ساختارهای بهتری ایجاد کنند. اگر کد شما آشفته بود، مدیریت آن دشوار می‌شد. آن درد، یک حلقه بازخورد بود.

هوش مصنوعی آن اصطکاک را از بین می‌برد. هوش مصنوعی می‌تواند کد آشفته و با ساختار ضعیف را به همان سرعتی بنویسد که کد تمیز را می‌نویسد. دردِ ناشی از یک مدل بد دیگر در مرحله ساخت (build) به توسعه‌دهنده ضربه نمی‌زند؛ در عوض، این درد به مرحله تولید (production) منتقل می‌شود. شما با داده‌های فاسد و وظایف ادغام غیرممکن مواجه می‌شوید.

یک مدل دامنه غنی (rich domain model) ابزاری برای جلوگیری از این اتفاق است. این مدل سه وظیفه مشخص را انجام می‌دهد:

  • با وادار کردن شما به شکل دادن به مفاهیم، به یادگیری دامنه کمک می‌کند.
  • دامنه را تعریف می‌کند تا «چه چیزی ساخته شود» دیگر یک حدس و گمان نباشد.
  • دامنه را در قالب کدی مستند می‌کند که از طریق کامپایلر به‌روز می‌ماند.

برای اینکه یک مدل دامنه کارآمد باشد، باید سه قانون را رعایت کند:

  • پیچیدگی ذاتی را یکپارچه نگه دارید. یک مفهوم واحد را در صدها میکروسرویس پراکنده نکنید.
  • بازخورد ارائه دهید. یک فرض اشتباه باید باعث خطای کامپایل شود، نه یک باگ بی‌صدا.
  • تغییرات را کم‌هزینه نگه دارید. شما باید یک مفهوم را در یک جا اصلاح کنید، نه اینکه در ده سرویس به دنبال آن بگردید.

اگر دامنه خود را خیلی زود برای حل مشکل «تورم» (bloat) به میکروسرویس‌ها تقسیم کنید، اغلب فقط آشفتگی را جابه‌جا می‌کنید. شما یک «شیء خداگونه» (god object) واحد را با یک آشفتگی توزیع‌شده عوض می‌کنید که ردیابی آن دشوارتر است. وابستگی‌ای که نمی‌توانید ببینید، وابستگی‌ای است که در مرحله تولید باعث شکست سیستم خواهد شد.

هدف از یک مدل دامنه غنی، درست بودن نیست؛ بلکه هدف این است که اشتباه بودن را زمانی که هزینه اصلاح هنوز کم است، آشکار کنید.

Source: https://dev.to/leonpennings/what-is-the-reason-for-using-a-rich-domain-model-in-the-age-of-ai-3gg

Optional learning community: https://t.me/GyaanSetuAi