যেহেতু আমি এটি বুঝতে পারি, একটি মূল বিষয়টি অবকাঠামো (ডিবি, ফাইল সিস্টেম ইত্যাদি) থেকে ডোমেন লজিক (বিজনেস লজিক) বিভক্ত করা।
এটি ভুল বোঝাবুঝির ভিত্তি: ডিডিডি এর উদ্দেশ্য হ'ল হার্ড লাইনের সাথে জিনিসগুলি আলাদা করা নয় যেমন "এটি এসকিউএল সার্ভারে রয়েছে, সুতরাং বিএল হওয়া উচিত নয়", ডিডিডিটির উদ্দেশ্য ডোমেনগুলি পৃথক করা এবং এর মধ্যে বাধা তৈরি করা is এগুলি যে কোনও ডোমেনের ইন্টার্নালগুলি অন্য ডোমেনের ইন্টার্নাল থেকে সম্পূর্ণ পৃথক হতে দেয় এবং তাদের মধ্যে ভাগ করা বহিরাগতকে সংজ্ঞায়িত করে।
বিএল / ডিএল বাধা হিসাবে "এসকিউএল থাকা" -র কথা ভাববেন না — এটাই তা নয়। পরিবর্তে, "বাধা হিসাবে" এটি অভ্যন্তরীণ ডোমেনের সমাপ্তি of
প্রতিটি ডোমেনের বহিরাগত-মুখোমুখি এপিআই থাকা উচিত যা এটি অন্য সমস্ত ডোমেনের সাথে কাজ করার অনুমতি দেয় : ডেটা স্টোরেজ স্তরটির ক্ষেত্রে এটি সংরক্ষণ করা ডেটা-অবজেক্টগুলির জন্য পড়া / লেখার (সিআরইউডি) ক্রিয়া থাকা উচিত have এর অর্থ এসকিউএল নিজেই আসলে বাধা নয়, VIEW
এবং PROCEDURE
উপাদানগুলি। : আপনি সরাসরি টেবিল থেকে কখনোই পড়া উচিত যে বাস্তবায়ন বিস্তারিত DDD আমাদের বলে যে, একটি বহিস্থিত ভোক্তা হিসেবে আমরা সম্পর্কে চিন্তা করা উচিত নয়।
আপনার উদাহরণ বিবেচনা করুন:
আমি যেটা ভাবছি তা হ'ল, যখন আমার কাছে একটি মেটেরিয়াল রিসোর্স গণনা কোয়েরির মতো খুব জটিল প্রশ্ন থাকে তখন কী হয়? সেই ধরণের কোয়েরিতে আপনি ভারী সেট অপারেশনগুলির সাথে কাজ করেন, এসকিউএল যে ধরণের জিনিসটির জন্য ডিজাইন করেছিলেন।
এসকিউএল-তে অবশ্যই এটি হওয়া উচিত এবং এটি ডিডিডি লঙ্ঘন নয়। এটা কিসের জন্য DDD প্রণীত । এসকিউএল-তে সেই গণনার সাথে, এটি বিএল / ডিএল এর অংশ হয়ে যায় । আপনি যা করবেন তা হ'ল একটি পৃথক দর্শন / সঞ্চিত পদ্ধতি / আপনার কী আছে তা ব্যবহার করা এবং ব্যবসায়ের যুক্তিটিকে ডেটা-স্তর থেকে আলাদা রাখা, কারণ এটি আপনার বাহ্যিক এপিআই। প্রকৃতপক্ষে, আপনার ডেটা-স্তরটি অন্য একটি ডিডিডি ডোমেন স্তর হওয়া উচিত, যেখানে আপনার ডেটা-স্তরের অন্যান্য ডোমেন স্তরগুলির সাথে কাজ করার নিজস্ব বিমূর্ততা রয়েছে।
অবকাঠামোতে এই গণনাগুলি করা খুব বেশি ঘটতে পারে না, কারণ ডিডিডি প্যাটার্নটি ডোমেন স্তর পরিবর্তন না করে এবং মংগাডিবির যেমন এসকিউএল সার্ভারের একই ক্ষমতা নেই তা জেনেও অবকাঠামোগত পরিবর্তন করার অনুমতি দেয় that এটি ঘটতে পারে না।
এটি অন্য একটি ভুল বোঝাবুঝি: এটি বলে যে অন্যান্য ডোমেন স্তর পরিবর্তন না করে অভ্যন্তরীণভাবে প্রয়োগের বিশদ পরিবর্তন করতে পারে । এটি বলে না যে আপনি কেবল একটি পুরো অবকাঠামো টুকরো প্রতিস্থাপন করতে পারেন ।
আবার, মনে রাখবেন, ডিডিডি হ'ল সুস্পষ্ট সংজ্ঞায়িত বাহ্যিক এপিআই সহ ইন্টার্নালগুলি লুকিয়ে রাখার বিষয়ে। যেখানে এই API এর সিট সম্পূর্ণ ভিন্ন প্রশ্ন এবং ডিডিডি এটি নির্ধারণ করে না। এটি সহজেই সংজ্ঞায়িত করে যে এই এপিআইগুলির বিদ্যমান, এবং কখনও পরিবর্তন করা উচিত নয় ।
মোংগোডিবি-র সাথে এমএসএসকিউএল প্রতিস্থাপনের অনুমতি দেওয়ার জন্য ডিডিডি সেটআপ নেই — এগুলি দুটি সম্পূর্ণ ভিন্ন অবকাঠামোগত উপাদান।
পরিবর্তে, আসুন ডিডিডি যা সংজ্ঞায়িত করে তার জন্য একটি উপমা ব্যবহার করুন: গ্যাস বনাম বৈদ্যুতিক গাড়ি। উভয় যানবাহনের প্রপালশন তৈরির জন্য দুটি সম্পূর্ণ ভিন্ন পদ্ধতি রয়েছে, তবে তাদের একই এপিআই'র রয়েছে: একটি চালানো / চালানো, একটি থ্রোলেট / ব্রেক এবং যানটিকে চালিত করার জন্য চাকা। ডিডিডি বলেছে যে আমাদের উচিত আমাদের গাড়ীর ইঞ্জিন (গ্যাস বা বৈদ্যুতিন) প্রতিস্থাপন করতে সক্ষম। এটি বলে না যে আমরা মোটরসাইকেলের সাথে গাড়িটি প্রতিস্থাপন করতে পারি এবং এটি কার্যকরভাবে এমএসএসকিউএল - মঙ্গোডিবি।