আমি এই শব্দটি সফ্টওয়্যার আর্কিটেকচারের প্রসঙ্গে ("ডোমেন-মডেল", "ডোমেন-চালিত-ডিজাইন" ইত্যাদি) অনেক কিছুই দেখতে পাই। আমি এটি গুগল করেছি, তবে আমি বিভিন্ন সংজ্ঞা পেয়েছি। তাহলে এটা আসলে কী?
আমি এই শব্দটি সফ্টওয়্যার আর্কিটেকচারের প্রসঙ্গে ("ডোমেন-মডেল", "ডোমেন-চালিত-ডিজাইন" ইত্যাদি) অনেক কিছুই দেখতে পাই। আমি এটি গুগল করেছি, তবে আমি বিভিন্ন সংজ্ঞা পেয়েছি। তাহলে এটা আসলে কী?
উত্তর:
এরিক ইভান্সের ডোমেন চালিত ডিজাইন বইয়ের "ডোমেন" শব্দটির নির্দিষ্ট অর্থ রয়েছে। এটি সফ্টওয়্যার সম্পর্কে জিনিস।
ইভান্স যদিও আরও যায়। তার দৃষ্টিতে একই সফ্টওয়্যার সহ সাব ডোমেন রয়েছে। এবং এটি বইটির অংশ যা "কৌশলগত ডিজাইন" নিয়ে কাজ করে।
তিনটি "ডোমেন" রয়েছে: মূল ডোমেন, সহায়ক ডোমেন এবং জেনেরিক ডোমেন। কখনও কখনও সে এগুলিকে সাব-ডোমেন হিসাবে উল্লেখ করবে।
ইভান্সও সফ্টওয়্যারটির পিছনে আসল ব্যবসায় সম্পর্কে গভীরভাবে চিন্তা করে এবং বইটি কেবল বিকাশকারীদের নয়, আর্কিটেক্ট এবং পরিচালকদেরও লক্ষ্য করা যায় যারা সফ্টওয়্যার এবং ব্যবসা কীভাবে একসাথে কাজ করতে পারে তা দেখতে হবে এবং কৌশলগত নকশা নিয়ে আলোচনার সময় তিনি এ বিষয়টি নিয়েই উদ্বিগ্ন ছিলেন এবং এই সাব ডোমেনগুলি।
সুতরাং, মূল ডোমেনটি সফ্টওয়্যারটির সেই অংশ যা প্রতিযোগিতামূলক সুবিধা এবং সফ্টওয়্যারটির "রেসন ডি'ট্রে" উভয়ই উপস্থাপন করে। এটি সফ্টওয়্যারটির একটি অংশ যার কারণে কোনও গ্রাহক সফ্টওয়্যার বনাম কিছু অন্যান্য সফ্টওয়্যার কিনেছিলেন। সাধারণত, ইভান্স এটিকে কোডের ক্ষুদ্রতম শতাংশযুক্ত ডোমেন হিসাবে দেখায়। আপনি এটিকে সবচেয়ে গুরুত্বপূর্ণ 20% হিসাবে ভাবতে পারেন। এটি এমন এক অংশ যা আপনি সত্যিই শেল্ফটি কিনতে পারবেন না এবং এটি সামগ্রিক সফ্টওয়্যারটির কেবল একটি একক মডিউল বা উপাদান হতে পারে।
সমর্থনকারী ডোমেনটি এখনও গুরুত্বপূর্ণ এবং এটি প্রতিষ্ঠানের পক্ষে অনন্য হতে পারে তবে মূল ডোমেনের মতো গুরুত্বপূর্ণ নয়। এটি ছাড়া, সফ্টওয়্যারটি তেমন মূল্যবান হবে না এবং মূলটি এটির উপর নির্ভর করে। এটি আপনি নিজেরাই লিখেছেন এমন সফ্টওয়্যারটির একাধিক মডিউল হতে পারে এবং এটি গুরুত্বপূর্ণতে সহায়ক তবে সহায়ক কার্য সম্পাদন করে।
জেনেরিক ডোমেনটি ন্যূনতম কাস্টম এবং কোনও অর্থে সফ্টওয়্যারটির সর্বনিম্ন গুরুত্বপূর্ণ অংশ। আপনি এটি ঘরে লিখে থাকতে পারেন তবে এটি কেবল তাক থেকে কিনতে বা সুপরিচিত ওপেন সোর্স সফ্টওয়্যার ব্যবহার করা আরও দক্ষ। সিস্টেমের এই অংশটি সম্ভবত আপনার সামগ্রিক ডোমেনের জন্য সুনির্দিষ্ট নয়, সুতরাং উদাহরণস্বরূপ, আপনার কাছে কোনও শিপিং সিস্টেম রয়েছে যা পার্সেলগুলি চালাচ্ছে বা রোগীদের পরিচালনা করে এমন কোনও স্বাস্থ্য রেকর্ড সিস্টেম রয়েছে, জেনেরিক ডোমেন এই সিস্টেমগুলির অংশ যা সাধারণ এবং ন্যায়সঙ্গত একেবারে কাজ করার জন্য সেখানে উপস্থিত হওয়া দরকার। এটি সম্ভবত সামগ্রিকভাবে সিস্টেমের বেশিরভাগ অংশ তৈরি করে, তবে তা অগত্যা নয়।
ব্যবসায়ের দৃষ্টিকোণ থেকে আপনার মূল ডোমেনটি কী তা সিদ্ধান্ত নেওয়া এবং সেখানে আপনার বিকাশের সংস্থানগুলিকে ফোকাস করা গুরুত্বপূর্ণ important ইভান্সের অনেকগুলি ভিডিও রয়েছে, বিশেষত ইনফোকিউ সাইটে, যেখানে তিনি এই ধারণাগুলি আরও বিশদভাবে ব্যাখ্যা করেন।
সুতরাং আমরা যখন সফ্টওয়্যারটিতে প্রায়শই "ডোমেন" সম্পর্কে কথা বলি তখন ডিডিডি-র ক্ষেত্রে এটি যতটা সহজ মনে হয় তত সহজ নয়।
আমার লক্ষ করা উচিত যে ডিডিডি ধারণাগুলি বৃহত্তর সফ্টওয়্যার সম্প্রদায়ে অগত্যা বিদ্যমান নেই। অন্যান্য বিকাশকারী, লেখক এবং পণ্য ব্যক্তিদের বিভিন্ন ধারণা এবং সংজ্ঞা থাকতে পারে, কিছু আরও সূক্ষ্ম এবং কিছু কম। এমনকি অন্যান্য লেখক যারা ডিডিডি সম্পর্কে লিখেছেন তারা এভান্সের বইতে এই ধারণাগুলি সম্পর্কে চকচকে করতে পারেন তবে আমি মনে করি যে কোনও সফ্টওয়্যার প্রকল্প লেখার সময় এবং পরিকল্পনা করার সময় ধারণাগুলি এখনও কার্যকর are
ডোমেইন বাস্তব-বিশ্বের প্রেক্ষাপটে যা আপনি সফ্টওয়্যার ব্যবহার করে একটি সমস্যা সমাধানের জন্য চেষ্টা করছেন হয়। প্রতিটি ডোমেন দক্ষতা, শব্দভাণ্ডার এবং সরঞ্জামগুলি নিয়ে আসে যা সেই ডোমেনের অংশ।
ডোমেনের একটি নির্দিষ্ট উদাহরণ হতে পারে "একটি উচ্চ গতির ঘোরানো কাটার ব্যবহার করে জটিল যন্ত্রাংশের স্বয়ংক্রিয় যন্ত্র"। এটি পরিপূর্ণ সফ্টওয়্যার এবং হার্ডওয়্যার সিস্টেমকে সিএনসি মিল বলা হয় ।
ডোমেনের আরও একটি উদাহরণ হ'ল কর্পোরেশনের অ্যাকাউন্টিং বিভাগ।
মার্টিন ফাউলারের আরও পঠন
সীমিত প্রবন্ধ
এর অর্থ হ'ল আপনি যে সমস্যার জায়গায় কাজ করছেন তা উদাহরণস্বরূপ, আপনি যদি একটি ই-বাণিজ্য ওয়েবসাইট তৈরি করে থাকেন তবে আপনার ডোমেনটি "ই-কমার্স" হবে এবং এটি আপনার ক্লায়েন্ট / সংস্থার বিক্রয় অনুশীলনের সাথে সম্পর্কিত প্রক্রিয়াগুলিকে জড়িত করবে। সুতরাং একটি ডোমেন মডেল হ'ল পণ্য বা চালান বা একটি শিপিং রেকর্ড উপস্থাপন করার জন্য এমন কিছু।
domain names
ডোমেন হিসাবেও পরিচিত, আমি মনে করি আপনি এখানে ডোমেন শব্দটি কীভাবে ব্যবহার করছেন তা পরিষ্কার করা উচিত।
একটি ডোমেন জ্ঞানের একটি ক্ষেত্র। এটি এমন কোনও কার্যকলাপ হিসাবে হতে পারে যেখানে আপনার সফ্টওয়্যার দ্বারা সমাধান হওয়া সমস্যাগুলি বিদ্যমান problems ( উইকি , ডিডিডি সম্প্রদায় )
এরিক ইভান্স তার বইয়ের ডিডিডি কী তা বোঝাতে কার্গো শিপিং ব্যবহার করে। তার উদাহরণে, ডোমেন শিপিং সম্পর্কে সবকিছু । কার্গো কীভাবে সরানো, পরিচালনা করা, শিপ করা এবং ট্র্যাক করা হয় ইত্যাদি এটি নিজস্ব, নির্দিষ্ট নিয়ম, ভাষা এবং প্রক্রিয়া সহ আসে with এগুলি ডোমেন মডেল, অবজেক্টস, পরিষেবা এবং আরও অনেক কিছু তৈরি করবে।
আপনি যখন কোনও অ্যাপ্লিকেশন তৈরি করবেন, আপনার কাছে শিপিংয়ের আসল বিশ্বের মতোই কিছু প্রকারের অনুমোদন থাকবে, সবাই গুদামগুলিতে অ্যাক্সেস করতে পারে না। ব্যবহারকারীরা কীভাবে অনুমোদিত এবং কীভাবে অনুমতি দেওয়া হয় তা ডোমেনের বাইরে হতে পারে , কারণ তথ্য কার্গো শিপিংয়ের ক্ষেত্রে প্রাসঙ্গিক নাও হতে পারে।
সহজ কথায় বলতে গেলে: একটি ডোমেন হল যেখানে আপনি ব্যবসা করেন । যদি আপনার ব্যবসাটি পণ্যসম্ভার শিপিং হয় - শিপিং কার্গো আপনার ডোমেন হবে। যদি আপনার ব্যবসা কর্মীদের অনুমোদন ও অনুমোদনে রাখে তবে এটি আপনার ডোমেন হবে।
থেকে ডোমেন চালিত নকশা: সফটওয়্যার হৃদয়ে জটিলতা মোকাবেলা , এরিক ইভান্স:
প্রতিটি সফ্টওয়্যার প্রোগ্রাম তার ব্যবহারকারীর কিছু ক্রিয়াকলাপ বা আগ্রহের সাথে সম্পর্কিত। ব্যবহারকারী যে বিষয় ক্ষেত্রটিতে প্রোগ্রাম প্রয়োগ করে তা হ'ল সফটওয়্যারটির ডোমেন ।
একটি এয়ারলাইন-বুকিং প্রোগ্রামের ডোমেনটিতে আসল লোকেরা আসল বিমানের সাথে জড়িত।
অ্যাকাউন্টিং প্রোগ্রামের ডোমেন অর্থ এবং অর্থ।
উত্স-কোড নিয়ন্ত্রণ সিস্টেমের ডোমেনটি নিজেই সফ্টওয়্যার বিকাশ।
ডোমেন মডেল, তারপরে একটি ডোমেন বিশেষজ্ঞের মাথার জ্ঞানটি "কঠোরভাবে সংগঠিত এবং নির্বাচনী বিমূর্ততা"।
পেলেমো, পেঁয়াজ আর্কিটেকচারের বর্ণনা দেওয়ার জন্য, এই সংক্ষিপ্তসারটি পেশ করেছিল
খুব কেন্দ্রে আমরা ডোমেন মডেল দেখি, যা সেই রাষ্ট্র এবং আচরণের সংমিশ্রণের প্রতিনিধিত্ব করে যা প্রতিষ্ঠানের পক্ষে সত্যকে মডেল করে।
ফোলার, ঘুরে, অফার
ডোমেনের একটি অবজেক্ট মডেল যা আচরণ এবং ডেটা উভয়কেই অন্তর্ভুক্ত করে।
আপনি যদি আরও সাম্প্রতিক সংজ্ঞাগুলি সন্ধান করছেন, আপনি ডোমেন মডেল এবং ডেটা মডেল পৃথক যে রেফারেন্সে চলে যেতে পারেন । আমি বিবেচনা করি না যে গুরুত্বের পরিবর্তনের মতো অর্থের পরিবর্তনটি - আচরণের মডেলিং করা (মডেলের বাইরে থেকে তথ্যের প্রতিক্রিয়াতে যে উপায়ে ডেটা পরিবর্তিত হয়) জিনিসগুলি লেখার বিভিন্ন পদ্ধতির চেয়ে আরও জটিলতা এবং তারতম্য রয়েছে ।
যেহেতু আপনার সম্ভবত ডোমেন কী তা সম্পর্কে ইতিমধ্যে ধারণা রয়েছে তাই আমি অনুমান করি যে আপনি পরবর্তী পদক্ষেপটি সাব-ডোমেন, ডোমেন মডেল এবং আরও গুরুত্বপূর্ণভাবে সীমাবদ্ধ প্রসঙ্গটি সংজ্ঞায়িত করার চেষ্টা করছেন।
যদিও আমি আমার ডোমেনের দৃষ্টিকোণটি দিয়ে শুরু করি।
ডোমেন হ'ল বাস্তবে আমরা বাস করি: এর সত্তা, তাদের আচরণ, আইন তারা মান্য করে। এটি আমাদের আগে বিদ্যমান ছিল এবং একের পর এক রূপে আমাদের পরে থাকবে। এর অস্তিত্ব আমাদের সচেতনতার উপর নির্ভর করে না। বিপণনকারীরা নতুন বৈশিষ্ট্য নিয়ে আসে এবং বাজার বিশ্লেষণ সম্পাদন করে, কী অ্যাকাউন্ট ম্যানেজাররা ক্লায়েন্টদের সাথে যোগাযোগ করে, সফ্টওয়্যার বিকাশকারীরা ব্যবসা-প্রক্রিয়াগুলিকে স্বয়ংক্রিয় করে তোলে। এজন্য ডোমেনকে একটি সমস্যা স্পেস বলা হয়।
তাদের মডেলিং এবং বোধগম্যতা সহজ করার জন্য ডিডিডি সাব-ডোমেনগুলিতে ডোমেন পচিয়ে যাওয়া বোঝায়। আপনি যে কোনও ব্যবসায় পরিচালনা করছেন তা হ'ল সত্য যে কার্যত কমপক্ষে একটি প্রধান ব্যবসায়িক মূল্য রয়েছে। আপনি যার সাথে অর্থ উপার্জন করেন। যার জন্য আমরা আমাদের ব্যবসা শুরু করেছিলাম। সুতরাং এমনকি যদি আপনি "কোর ডোমেন" এর মতো শব্দটি না জানেন তবে এটি এখনও উপস্থিত রয়েছে। একইটি সাব-ডোমেনগুলিতে প্রযোজ্য: সম্ভবত আপনার কোনও বুককিপিং, মানবসম্পদ, প্রযুক্তিগত সহায়তা প্রয়োজন - তবে এটি গৌণ।
তাদের সম্পূর্ণরূপে উত্তোলিত সাব-ডোমেনগুলি মডেলিংয়ের কোনও প্রয়োজন নেই। আমরা আগ্রহী প্রতিটি উপ-ডোমেনের একটি নির্দিষ্ট সেট রয়েছে।
সর্বাধিক গুরুত্বপূর্ণ বিষয়টি সীমিত প্রসঙ্গটি একটি লজিকাল সীমানা।
সাব-ডোমেন এবং কোর ডোমেন উভয়ই সংজ্ঞায়িত হয়ে গেলে কোডটি বাস্তবায়নের সময় এসেছে। সীমানা প্রসঙ্গে কিছু উপ-ডোমেনের প্রয়োগযোগ্যতার স্থির সীমানা সংজ্ঞায়িত করা হয়। এটি এমন একটি অঞ্চল যেখানে নির্দিষ্ট উপ-ডোমেনটি বোঝায়, অন্যরা তা বোঝায় না। এটি আলাপ, উপস্থাপনা, শৈল্পিক দ্বারা নির্ধারিত শারীরিক সীমানা সহ একটি কোড প্রকল্প হতে পারে।
আপনি যদি সীমিত প্রসঙ্গ ধারণাটি সাবডোমেন ধারণার সাথে কীভাবে সংযুক্ত হন, সাবডোমেনগুলি এবং সীমান্ত প্রসঙ্গগুলি কীভাবে সংজ্ঞায়িত করবেন, কীভাবে একে অপরের সাথে তাদের যোগাযোগ উপস্থাপন করবেন এবং কীভাবে এই ধারণাগুলি মাথায় রেখে দলগুলি সংগঠিত করবেন সম্ভবত আপনি এই বিষয়ে আগ্রহী হবেন আরও পড়া ।