কীভাবে যুক্ত / তৈরি * কমান্ডগুলি সিকিউআরএস + ইভেন্ট সোর্সিং আর্কিটেকচারে পরিচালনা করা উচিত


11

আমি ইভেন্ট সোর্সিংয়ের পাশাপাশি সিকিউআরএস প্যাটার্ন ব্যবহার করে আমার প্রথম প্রয়োগটি প্রয়োগ করতে চাই। আমি ভাবছি কীভাবে সামগ্রিক শিকড়গুলির সৃষ্টি সঠিকভাবে পরিচালনা করা উচিত। ধরা যাক কেউ ক্রিয়েটিআইটাম কমান্ড প্রেরণ করে। কীভাবে এটি পরিচালনা করা উচিত? ইভেন্ট আইটেমক্রিটেডটি কোথায় সংরক্ষণ করা উচিত? নতুন আইটেমের প্রথম ইভেন্ট হিসাবে? বা আমার কাছে এমন কিছু আইটেমলিস্ট সত্তা থাকা উচিত যা সমস্ত আইটেমকে একত্রিত করে এবং এর ইভেন্টের তালিকায় কেবল আইটেমক্রিটেড ইভেন্টগুলি থাকে?

উদীয় দহন পরামর্শ দেয় যে সমষ্টিগত শিকড় তৈরি না করা এবং সর্বদা পরিবর্তে কিছু প্রকার আনার পদ্ধতি ব্যবহার করুন। তবে আমি কীভাবে নতুন কিছু আনতে পারি এবং অবশ্যই কোনও আইডি নির্ধারিত হয় না। আমি পেছনের ধারণাটি বুঝতে পেরেছি এবং এটি মনে করা বেশ যুক্তিসঙ্গত যে একটি নতুন অবজেক্ট এমন একটি বস্তু যা এর রাজ্যটিতে শূন্য ইভেন্টগুলির সমন্বয়ে তৈরি হয়েছে। তবে আমি কীভাবে এটি ব্যবহার করব? আমার ভাণ্ডারগুলিতে আমার আলাদা পদ্ধতি থাকতে getNewItem()হবে বা তার পরিবর্তে আমার get(id)পদ্ধতিটি গ্রহণযোগ্য Optional<ItemId>করে তোলা উচিত?

সম্পাদনা: খননের কিছু সময় পরে আমি অভিনেতা ব্যবহার করে উল্লিখিত নিদর্শনগুলির সত্যই আকর্ষণীয় বাস্তবায়ন দেখতে পেয়েছি । লেখক সমষ্টি তৈরির পরিবর্তে এটি নতুনভাবে তৈরি ইউআইডি দিয়ে কোনও ধরণের সংগ্রহশালা থেকে পুনরুদ্ধার করে। এই পদ্ধতির অপূর্ণতা হ'ল তিনি একটি অস্থায়ী অসঙ্গতি রাষ্ট্রের জন্য অনুমতি দেয়। আমি ভাবছি যে কীভাবে আমি এই deleteজাতীয় পদ্ধতির সাথে পদ্ধতিটি বাস্তবায়ন করতে পারি । মুছে ফেলা ইভেন্টটিকে কেবল সামগ্রিক ইভেন্টের তালিকায় যুক্ত করবেন?


1
আমি সন্দেহ করি উদির পোস্টের শিরোনাম বিভ্রান্তিকর। আইএমএইচএও তার আসল উদ্দেশ্য বলে মনে হচ্ছে যে নতুনভাবে তৈরি করা এআরগুলি অন্য কোনও জায়গা থেকে সর্বদা পৌঁছানো উচিত, কেন / কীভাবে / কে সিদ্ধান্ত নিয়েছিল যে নতুন এআর তৈরি করা দরকার about অন্য সমস্ত কিছু কীভাবে কোনও নির্দিষ্ট প্রয়োগ (NHibernate?) পরিচালনা করা সহজ করে তুলতে পারে সে সম্পর্কে।
মধ্যে Darien

2
নোট করুন যে আপনি উদি
EZ হার্ট

উত্তর:


13

উদির পোস্টে ধারণাটি যেমন আমি জড়ো করি তা হ'ল কোনও ধরণের জিনিস পাতলা বাতাসের বাইরে উপস্থিত হয় না। এখানে সর্বদা (প্রায়) কিছু না কিছু বা আরও নির্দিষ্টভাবে কিছু ডোমেন অপারেশন থাকে যার ফলে আইটেমটি তৈরি হয়। ঠিক যেমন কোনও ইউডির উদাহরণটি বাস্তবে নিবন্ধিত কোনও দর্শনার্থীর দ্বারা জন্মগ্রহণ করা। এই মুহুর্তে এবং সেই সীমান্ত প্রসঙ্গে দর্শকের সমষ্টিগত মূল, যা তার আইপি ঠিকানা দ্বারা পুনরুদ্ধার করা হয়। এই ভিজিটর তখন নতুন "আইটেম" তৈরি করে, এই পয়েন্টে একজন ব্যবহারকারী, রেজিস্টার নামে একটি ডোমেন অপারেশনের মাধ্যমে । একই পদক্ষেপের আগে একই পদক্ষেপ নিয়ে যায়, যা অন্য সীমানা প্রসঙ্গে: রেফারার হ'ল এআর, যা ইউআরএল দ্বারা পুনরুদ্ধার করা হয় এবং এর একটি নাম ডোমেন অপারেশন রয়েছে যার নাম বিল্ডভিসিটরভিথআইপি , যেখানে দর্শকের জন্ম হয়।

উদি মুছে ফেলার বিষয়ে খুব সুন্দরভাবে লিখেছেন: http://www.udidahan.com/2009/09/01/dont-delete-just-dont/ । মূল ধারণাটি হ'ল, আপনি কখনও কোনও কিছু মুছবেন না। পিছনে সর্বদা একটি ডোমেন অপারেশন থাকে, যা আমরা ক্যাপচার করতে চাই। মুছে ফেলার চেয়ে কোনও অর্ডার বাতিল হওয়ার মতো। এটি পড়ুন, এটি একটি খুব ভাল পোস্ট।

উভয় অ্যাকাউন্টের মূল বক্তব্য, ডিডিডি করা এবং বিশেষত ইভেন্ট সোর্সিং, এটি হ'ল আপনার সরাসরি সিআরইউডি-অপারেশন করা উচিত নয়। আপনি যদি একটি অবস্থায় নিজেকে খুঁজে পান, তাহলে যেখানে আপনি কি সত্যিই শুধু সন্নিবেশ, আপডেট করতে হবে অথবা কিছু ডেটা মুছুন এবং সত্যিই এটি পিছনে কোন ডোমেইন অপারেশন হয়, তাহলে হয়তো DDD এবং ইভেন্ট উৎস না সুযোগ্য হয় যে বেষ্টিত প্রসঙ্গ জন্য । আপনি যতক্ষণ ইচ্ছা একা সীমাবদ্ধ প্রসঙ্গটি একটি নীতি মেনে চলেন ততক্ষণ আপনি এই দুটি সংযুক্ত করতে মুক্ত। এইভাবে সিআরইউডি-স্টাইলের সীমানা প্রসঙ্গে ডেটাবেসটিতে কিছু সারি তৈরি হতে পারে, এটি অন্য সীমাবদ্ধ প্রসঙ্গে একটি সত্তা এবং সমষ্টিগত রুটে পরিণত হয়, যেখানে আপনি এখন আরআরটি পুনরুদ্ধার করতে পারেন এবং এটি তৈরি করতে হবে না।


2
"সম্ভবত ডিডিডি এবং ইভেন্ট সোর্সিং সেই সীমান্ত প্রসঙ্গে উপযুক্ত নয়" " আপনি ডিডিডি পয়েন্টটি সঠিকভাবে পান। এটি কেবলমাত্র শয়তানের গৌরব জন্য প্রতিটি ক্ষেত্রে প্রয়োগ করা উচিত নয় তবে কেবল যখন অনিশ্চিত বিধি দ্বারা পূর্ণ একটি জটিল ডোমেন মোকাবেলা করা প্রয়োজন। ব্যক্তিগতভাবে আমি আইনী সফটওয়্যারটির জন্য এটি করেছি যেখানে প্রয়োজনীয়তা যুক্তি দ্বারা চালিত হয় না।
ইয়েগর চুমাভক

2
এই বাক্যটির জন্যই +1 "সীমিত প্রসঙ্গে।" :)
সানগো

2
'যোগ' এবং 'তৈরি করুন' ক্রিয়াপদের ব্যবহার +1 এর দৃ strongly় পরামর্শ দেয় যে আপনি এখনও একটি ভাল পুরানো টেবুলার ডাটাবেসের সাথে মিথস্ক্রিয়তার ক্ষেত্রে আপনার ডোমেন সম্পর্কে চিন্তাভাবনা করছেন। আপনার ডোমেন / সীমাবদ্ধ প্রসঙ্গটি না জেনে আমি এটি যথাযথ কিনা তা বলতে পারি না। দৃ pers়তা উপেক্ষা করুন, আপনার ডোমেনের জন্য অনন্য, প্রথমে কম্যান্ডস এবং ইভেন্টগুলিতে মনোনিবেশ করুন (উদ্দীপনা এবং আউটকোমস), তবে কীভাবে রাষ্ট্রকে টিকিয়ে রাখা যায় তা নিয়ে চিন্তা করুন, যা কয়েক হাজার আগেও সমস্যার সমাধান হয়েছে।
ম্যাট

"ক্রম 'যুক্ত' এবং ক্রিয়া 'ক্রিয়াগুলির ব্যবহার দৃ strongly়ভাবে পরামর্শ দেয় যে আপনি এখনও আপনার ডোমেন সম্পর্কে একটি ভাল পুরাতন টেবুলার ডাটাবেসের সাথে মিথস্ক্রিয়া হিসাবে বিবেচনা করছেন" আপনার যদি কোনও ইউআই ডিজাইন থাকে যাতে এতে একটি বড় 'কিছু যুক্ত করুন' বোতাম থাকে, তবে দুঃখের বিষয়, সেটাই উদ্দেশ্য; আক্ষরিক নতুন কিছু যুক্ত করতে। আমি সাধারণত আপনার সাথে একমত হই, তবে আমরা এখানে ডাটাবেস স্তরের কথা বলছি না, কখনও কখনও যুক্ত বা তৈরি করাই আসলে সঠিক শব্দ।
ডিজাইনারমনকি

1
@ ডিজাইনারমনকি যখন আপনার কাছে ইউআইতে এই বোতামগুলি থাকে, তখন কি সত্যিই তাদের পিছনে কোনও ডোমেন অপারেশন থাকে? সম্ভবত, তবে 10 বারের মধ্যে 9 এর মধ্যে সীমিত প্রসঙ্গে একটি জটিল ডোমেন অপারেশন করার দরকার নেই। এবং খাঁটি সিআরইউডি অপারেশন কেবল এটিই, খাঁটি সিআরইউডি অপারেশন এবং এটি যেমন পরিচালনা করা উচিত। কেবলমাত্র যখন ডোমেন মডেলটির জটিলতার প্রয়োজন হয়, এটি ব্যবহার করা উচিত। এইভাবে বিভিন্ন নকশার নীতিগুলি সহ বিভিন্ন সীমিত প্রসঙ্গ।
টুউকা হাপানিয়েমি
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.