2010-10-01 14 views
5

में प्रमाणीकरण और बगफिक्सिंग मुझे सीक्यूआरएस की सामान्य अवधारणा मिलती है, लेकिन मुझे कुछ प्रश्न मिलते हैं जब वास्तविक कोड समस्याओं से निपटने के लिए वहां मौजूद उदाहरण कोड और स्लाइड डेक से आगे बढ़ने की बात आती है।सीक्यूआरएस

  1. मान्यता

    जब आप एक आदेश है कि डेटाबेस से जाँच मूल्यों शामिल है का सत्यापन करने की जरूरत है, आप क्या करते हैं? एक सेवा के लिए पंजीकरण ले लो, मुझे एक अद्वितीय ईमेल पता दर्ज करना होगा। एक तर्क मैंने सुना है कि यह बहुत ही असंभव है कि उपयोगकर्ता एक डुप्लिकेट ईमेल पता दर्ज करेगा, इसलिए आदेश को संसाधित करते समय इसे संभाल लें और उन्हें "क्षमा करें" कहकर एक ईमेल भेजें, या शायद वे अपना पासवर्ड रीसेट करने का सुझाव देते हैं। इसलिए इस प्रक्रिया को सत्यापन के लिए रीडमोडेल रखने से बचा जाता है। लेकिन आप आदेश हैंडलर में डुप्लिकेट केस से कैसे निपटते हैं? आप कैसे जानते हैं कि यह एक डुप्लिकेट है? एक readmodel की जांच करें? बेहतर उपयोगिता के लिए आप पहले स्थान पर भी इस्तेमाल कर सकते हैं।

  2. कार्यक्षमता/फिक्सिंग कीड़े

    जब आप जिस तरह से एक कमांड काम करता है बदलने के लिए, या एक बग को ठीक करने की जरूरत है तो क्या होता है करने के लिए परिवर्तन? केवल एकमात्र दर्शन में, मैं सभी पुराने आदेशों और कमांड हैंडलरों के साथ क्या करूँ? मैं उन्हें बदनाम करने और उन्हें छिपाने के लिए नाम नहीं बदल सकता अन्यथा मेरी घटना deserialization काम नहीं करेगा। इससे निपटने के लिए क्या सुरुचिपूर्ण समाधान हैं?

धन्यवाद

उत्तर

4
  1. http://codebetter.com/blogs/gregyoung/archive/2010/08/12/eventual-consistency-and-set-validation.aspx और cqrs यह बहुत ही विषय पर विभिन्न विचार विमर्श के लिए मेलिंग सूची देखें।
  2. इवेंट वर्जनिंग (घटना संस्करण के समान अर्थ में कमांड वर्जनिंग की कोई आवश्यकता नहीं है) पर cqrs मेलिंग सूची पर भी चर्चा की जाती है। घटनाओं को एक समग्र, वर्तमान आदेशों की वर्तमान स्थिति तक पहुंचने के लिए दोहराया जाता है। इस तरह आपकी कार्यक्षमता विकसित हो सकती है। अतीत को बदलने का कोई तरीका नहीं है, लेकिन वर्तमान/भविष्य को बदलने के तरीके हैं। अजीब मामले में आपको अलग-अलग तरीके से राज्य को ट्रैक करना शुरू करना होगा, एक स्पष्ट आदेश प्रदान करें। घटनाओं पर नई संपत्तियों के लिए, केवल एक नया डेटाबेस कॉलम के रूप में डिफ़ॉल्ट प्रदान करें। यदि वे नए मान पहले से मौजूद राज्य पर आधारित हैं, तो उन्हें सटीक करने के लिए एक स्पष्ट आदेश मॉडल करें। लाभ यह है कि आप इसे असंकालिक रूप से कर सकते हैं, जबकि डेटाबेस अपग्रेड आपको कोड को बदलने के लिए भी मजबूर करता है। यह काम करेगा कैसे cqrs मेलिंग सूची पर बेहतर पूछा जाता है। एक चेतावनी! घटना को बहुत हल्के ढंग से सोर्स न करें। आप केवल सीक्यूआरएस के साथ प्राप्त कर सकते हैं। मैं लोगों को सीक्यूआरएस + ईएस पर स्विच करते हुए देखता हूं जब अधिकांश समय सीक्यूआरएस करेगा।

तो groups.google.com/group/dddcqrs पर आएं और सहायता प्राप्त करें। एक अन्य उपयोगी संसाधन cqrsinfo.com

है
संबंधित मुद्दे