Şu anda CQRS çalışıyorum ve bazı kaynak kodları görüyorum (Greg Young's SimpleCQRS ve Mark Nihjof's). Hala komut ve etki alanı olayı ile karıştırıyorum. Etki alanı olay işleyicisinde "veritabanını yazmak" için her zaman etki alanına geçmemiz gerekiyor mu? Komut işleyicisinde (genellikle etki alanı deposu aracılığıyla) etki alanı veritabanını kaydetmek için kodu çağıracağım ve daha sonra etki alanı olay işleyicisinin diğer şeyleri işlemesine izin vermem (yaygın: okuma modelini güncelleme ve e-posta bildirimi gibi diğer hizmetleri yapma gibi) yaygın mıdır? . Teşekkürler.CQRS'de Veritabanını Kaydetmek İçin En İyi Yer (Komut İşleyicisi veya Etki Alanı Olay İşleyicisi)
cevap
Olayları kaydetme: Bir olay işleyici kullanarak olayları devam ettirmem. Bir komut işleyicisinden bir depoya veya iş birimine yetki vermek, muhtemelen kaynak kullanımı kullanırken en yaygın yaklaşımdır. Yani, evet komutun genelindeki devamlılık (iyi, delege et) ve olay işleyicisinin başka şeyler yapması yaygın.
Depolama durumu: Olay kaynakları kullanılmadığı zaman, insanların olayları durumun yanında veya daha kötüsünde depoladıklarını varsayalım (sürekli olarak bir kalıcılık mekanizması olarak). Yine de, kalıcılık mantığı, komut dosyasının bulunduğu alanda bulunur.
Komutlar amacı yakalar ve sisteme ne yapmaları gerektiğini söyler. Her zaman emri kullanın. Olaylar, sistemde neyin yaşandığını anlatır ve niyeti yakalar. Her zaman geçmiş zaman içinde.
Bu konuyla ilgili yeni biri olarak beni vurursun. CQRS kavramlarını kavramak için yapabileceğiniz en iyi şey, http://cqrsinfo.com ve http://skillsmatter.com (mimari/ddd) malzemelerini izlemektir. Bu konuda blog yazan diğer insanlar (kafamın üstünden): Udi Dahan, Gregory Young, Jonathan Oliver, Rinat Abdullin, Jérémie Chassaing, ...
Açıklamalarınız için teşekkürler, CQRS için gerçekten yeniyim. – user522037
- 1. Olay işleyicisi var
- 2. UserControl olay işleyicisi
- 3. GWT olay işleyicisi tetiklemiyor
- 4. Google Maps Polyline'ı düzenlemek için olay işleyicisi?
- 5. TTimer.OnTimer olay işleyicisi yeniden mı?
- 6. nasıl bir lambda olay işleyicisi
- 7. HTML5/JS depolama olay işleyicisi
- 8. jQuery datatables olay işleyicisi çağrı
- 9. Zamanlanmış Olayı Etkinleştiren Olay İşleyicisi
- 10. Uzun Basma Düğmesi Olay İşleyicisi
- 11. html satır içi olay işleyicisi ile dikkat çekmeyen olay işleyicisi arasındaki parantezin farklı kullanımı
- 12. Bekleyen komut için varsayılan zaman aşımı işleyicisi
- 13. VB.NET'te yerel değişkene olay işleyicisi nasıl eklenir
- 14. jQuery düğmesi olay işleyicisi içeriği değiştirmiyor
- 15. Örneklemeden sonra jqGrid'e bir olay işleyicisi ekleyin
- 16. Olay İşleyicisi Bağlam Menü Öğesine eklenemiyor
- 17. Değişim zaten ekli olay işleyicisi çalışma zamanı
- 18. QML aracılığıyla QWidget sınıfındaki olay işleyicisi
- 19. JWPlayer örneğinden bir olay işleyicisi nasıl kaldırılır?
- 20. Java'da Form yükleme olay işleyicisi nedir?
- 21. VB.NET'te bir olay işleyicisi ekleme sözdizimi
- 22. Adsız Olay İşleyicisi Ekleme ve Kaldırma
- 23. Safari window.matchMedia işleyicisi
- 24. ana sayfa hata işleyicisi
- 25. Tamamlama işleyicisi
- 26. Omurga olay işleyicisi aracılığıyla olay tetikleyen öğeyi alma
- 27. CodeIgniter için iyi bir hata 404 işleyicisi nasıl oluştururum?
- 28. Zamanlayıcı onay işleyicisi çalışmıyor
- 29. Evrensel istisna işleyicisi
- 30. iframe'e click olayı işleyicisi ekleme
belki de bu yardımcı olacaktır http://www.udidahan.com/2009/12/09/clarified-cqrs/Bu konuda Udi Dahan'dan gerçekten güzel bir yazı. – roundcrisis