جستجوی عبارت «طراحی دامنه محور» در گوگل، بیش از ۲۰۰۰ نتیجه در بر دارد که میتواند نشانهای از این باشد که عبارت «طراحی دامنه محور» به ترجمهای متداول برای عبارت Domain-Driven Design تبدیل شده است. اما آیا چنین ترجمهای، میتواند ایده اصلیِ رویکرد Domain-Driven Design را به مخاطب فارسی زبان بفهماند؟
هدف از این نوشته پیشنهاد یک ترجمه بهتر نیست (هر چند که از تلاش برای ارایه یک ترجمه بهتر استقبال میکنم) و صرفا به بررسی مناسب بودن عبارت «طراحی دامنه محور» برای ترجمه Domain-Driven Design بسنده میکنم.
از جمله موضوعاتی که در رویکرد DDD مورد تاکید فراوان قرار گرفته موضوع زبان فراگیر (Ubiquitous Language) است. منظور از زبان فراگیر، زبانی است که در هر نوع فعالیت مرتبط با توسعه محصول اعم از تحلیل، طراحی، پیادهسازی، تست و حتی مکاتبات رسمی و غیر رسمی مورد استفاده قرار میگیرد.
طبیعی است که این زبان برخاسته از فضای مساله باشد. فضایی پیچیده و ناشناخته که با همکاری مشترک متخصصان دامین در صدد هستیم تا آن را بشناسیم و مدل کنیم و راهحلی برای مسایل گوناگون آن ارایه دهیم.
همانطور که در مسیر کشف و شناخت این پیچیدگیها پیش میرویم و زبان مشترکی خلق میکنیم، از مقدار نادانستههای ما کم و به دانستههای ما اضافه میشود. هر قدر که از فضای مساله، دانش بیشتر و عمیقتری کسب میکنیم، مدلی که برای حل مساله ساختهایم، بیشتر دستخوش تغییر میشود.
یافتههای جدید ما از فضای مساله، مانند نیروی پنهانی هستند که به مدل وارد میشوند و مدل را بالغتر میکنند و آن را به مدل مناسبتری برای حل مساله بدل میکنند.
اما منشا نیرویی که به کاملتر شدن مدل ما میانجامد چیست؟ منشاء این نیرو، حوزه مسایل کسب و کار یا به عبارت دیگر، همان Domain است. میتوان گفت آنچه که طراحی ما را حالت میدهد (مانند خمیر بازی) و خوش فرمتر میکند، یافتههای جدید و درک جدید ما از Domain است.
عبارت Domain-Driven Design هم بر همین موضوع دلالت دارد. سبکی از طراحی که کاملا تحت اثر نیرویی است که از Domain به آن وارد میشود و آن را وَرز میدهد. اگر در دامین مفهومی نو پدیدار شود یا مفهومی بسط پیدا کند و شفاف شود، لاجرم باید آن تغییرات را در مدل منعکس کنیم.
بیربط نیست اگر بگوییم که تغییر در فهم ما از فضای Domain مانند نیرویی که توسط موج آب بر یک قطعه چوب شناور وارد میشود، طراحی ما را تغییر خواهد داد.
اگر با این تعبیر از رویکرد #DDD موافق باشید، به نظر میرسد که عبارت «طراحی دامنه محور» ترجمه وفاداری به رویکرد DDD نیست. به این دلیل که اشاره واضحی به این نکتهی مهم ندارد که طراحی «تحت تاثیر» نیرویی است که به دلیل تغییر و تحولات دامین به آن وارد میشود و آن را سر و شکل میدهد.
شاید مهمترین ضعف این ترجمه، انتخاب واژه «محور» به جای Driven- باشد که خب انتخاب دقیقی نیست. با رجوع به واژهنامه کمبریج میبینیم که در توضیح معنای -Driven (در شکل پسوندی) گفته شده:
• Caused or influenced by something or someone.
- آنچه که تحت تاثیر چیزی یا کسی بوجود میآید و یا اتفاق میافتد.
لذا پسوند Driven- معنای «محور» یا «مرکز» ندارد و عبارت «طراحی دامنه محور» در ترجمه تحت الفظی نیز با اشکال همراه است.
جمعبندی:
عبارت «طراحی دامنه محور» به دو دلیل ترجمه مناسبی برای Domain-Driven Design نیست:
۱- ایده اصلی این رویکرد را به مخاطب منتقل نمیکند.
۲- در ترجمه تحت الفظی، «محور» ترجمه صحیحی از «-Driven» نیست.