Neredeyse iki yıldır Domain Driven Design'ı okuyorum ve günlük işlerime bazı kavramları dikkatle ekliyorum ya da en azından Domain Driven Design içinde düzenli olarak yaptığım şeylerin nasıl yapılabileceğine dair planlar yapıyorum.
Özellikle de etki alanı nesnelerinin yalnızca yazma amacıyla kullanılması amaçlanan Olay Kaynaklandırma ve Komut Sorgusu Sorumluluk Ayrımı (CQRS) hakkında daha fazla okumaya yanıt olarak gelmeye başladığım bir sonuç. Daha açık olmak gerekirse, insanların incelikli bir şekilde okuduğum belgelerin çoğunda ne düşündüğünü, etki alanı nesnelerinin etki alanı merkezli işlemler / hesaplamalar yapmaktan, doğrulamadan sorumlu olduğunu ve daha sonra esas olarak kalıcılığa giden bir yol sağlamak için var olduğunu Havuz uygulaması içinde sağlanan altyapı. Her ne kadar bunun, devleti açığa vurma sorumluluğunu kestiğinden etki alanı modelini büyük ölçüde basitleştirebileceğini sevmeme rağmen.
Etki alanı nesnelerinin esas olarak salt yazılır nesneler olarak kullanılması gerçekten doğruysa, o zaman benim için birinin cevaplayabileceğini umduğum bazı sorular ortaya çıkar.
- Nasıl ayarlayıcıları veya bir nesnenin durumunu değiştirir ancak C # 'daki özellik alıcıları gibi durumu okumak için dışarıdan genel arabirim sağlamaz yöntemleri olan bir nesne üzerinde birim sınamaları nasıl yapar? Durumu yalnızca bu nesneyi test edilebilir kılmak amacıyla ifşa etmek uygun mudur?
- Bir kullanıcı, etki alanında devam etmek zorunda kalmadan hesaplamaların veya işlemlerin sonuçlarını kullanıcıya göstermeye ve ardından da etki alanı bağlamının dışında kalıcı bir depodan sonuçları almaya nasıl gösterir? Durumu yalnızca sonuç göstermek amacıyla göstermek doğru olur mu?
Tek kural alıcıların (erişim yapanları) alan adında da yazılabilecek kurallar olması gereken kural mıdır? Ya da farklı bir şekilde salt okunur özellikler kaçınılması gereken tek şey olmalı, çünkü bunlar sadece okuma amacıyla varlar ve bu nedenle gerçek etki alanı modelinde gerekli bir rol oynamıyorlar mı?
İlgili malzeme: