2

CQRS'yi Etki Alanı Driven Tasarımı ile uygularken, komut arabirimimizi sorgu arayüzümüzden ayırırız.Domain Driven Design'da CQRS uygulamasında komut/sorgu için ayrı uygulama servisi?

Anlayışlılığım, etki alanı modelinde karmaşıklık düzeyini önemli ölçüde azalttığını (özellikle olay kaynaklarını kullanırken), okuma modelinizin yazma modelinizden farklı olacağıdır. Bu, okuma ve yazma sınırlanmış içeriğiniz için ayrı bir alan hizmetine benziyor.

Uygulama düzeyinde, etki alanımızın okuma ve yazma ayırmaları için ayrı bir uygulama hizmetine mi ihtiyacımız var?

Bu konu hakkında şeytanın avukatı oynuyordum. Düşüncelerim, müşterilerin farkı bilmesini gerektiren aşırı bir şekilde olabilir. Ama sonra tüketici web servisinin bunu nasıl kullanabileceğini düşünüyorum. Genel olarak, okuma ve yazma için istekleri alır, bu da zaten bildiği anlamına gelir.

Temiz uygulama uygulamalarının yararlarını görüyorum.

cevap

4

Gerçek değer, doğru şekilde ayrılmış bir okuma ve etki alanı modeline sahip. Temelde farklı şeyler yaparlar. Ve genellikle çok farklı şekillere sahiptir. Okunan modelin, örneğin farklı alandaki nesnelerden gelen bir veri amalgamı içermesi tamamen mümkündür.

Nasıl kullanıldığını ve bir uygulama içindeki işlevini düşündüğünüzde, ayırma ihtiyacını takdir etmeye başlayabilirsiniz. Buradaki klasik örnek, tipik bir uygulamadaki okumalarla karşılaştırılan yazma sayısını dikkate almaktır. Okurlar yazılanlardan büyük ölçüde fazla. Bir farkı koruyarak, ilgili rol için her tarafı optimize edebilirsiniz. Akılda tutulması gereken bir başka nokta, bir 'post' un, bir okuma modeli içerebilen bir viewmodel olmayan bir komut teşkil etmesidir. Bir CQRS yaklaşımı kullanıyorsanız, sorgulama ve gönderim şeklinizi uyarlamanız gerekir. Aslında, bir görünüm modelini bir sunucuya geri ve ileriye yansıtmaktan çok daha betimleyici bir dil elde edebilirsiniz.

İlgilendiğinizde tipik bir CQRS mimarisinin üst düzey genel görünümünü özetleyen bir blog yayınım var. Burada bulabilirsiniz: A step by step overview of a typical CQRS application. Umarım faydalı bulursun.

Son nokta. Yeni işlevler ekleme aşamasındayız ve ayrılığın çok yararlı olduğunu gördük. Bir taraftaki değişiklikler diğerini olabilecekleri gibi etkilemez.

+0

Bu çok yardımcı oldu, teşekkürler! Blog yayınınız gereken bazı açıklık sağladı! – drizzie

İlgili konular