Bir Mikro Hizmetteki İş Karmaşıklığını DDD ve CQRS Desenleriyle Giderme

İpucu

Bu içerik, .NET Docs'ta veya çevrimdışı olarak okunabilen ücretsiz indirilebilir bir PDF olarak sağlanan Kapsayıcılı .NET Uygulamaları için .NET Mikro Hizmetler Mimarisi e-Kitabı'ndan bir alıntıdır.

.NET Microservices Architecture for Containerized .NET Applications eBook cover thumbnail.

Her mikro hizmet veya Sınırlanmış Bağlam için iş etki alanının anlaşılmasını yansıtan bir etki alanı modeli tasarlar.

Bu bölümde, karmaşık alt sistemleri veya sürekli değişen iş kurallarıyla etki alanı uzmanlarının bilgisinden türetilen mikro hizmetleri ele almanız gerektiğinde uygulayabileceğiniz daha gelişmiş mikro hizmetlere odaklanılır. Bu bölümde kullanılan mimari desenleri, Şekil 7-1'de gösterildiği gibi etki alanı temelli tasarım (DDD) ve Komut ve Sorgu Sorumluluğu Ayrım (CQRS) yaklaşımlarını temel alır.

Diagram comparing external and internal architecture patterns.

Dış mimari arasındaki fark: mikro hizmet desenleri, API ağ geçitleri, dayanıklı iletişimler, pub/sub vb. ve iç mimari: veri temelli/CRUD, DDD desenleri, bağımlılık ekleme, birden çok kitaplık vb.

Şekil 7-1. Her mikro hizmet için dış mikro hizmet mimarisi ile iç mimari desenleri karşılaştırması

Bununla birlikte, ASP.NET Core Web API hizmeti uygulama veya Swashbuckle veya NSwag ile Swagger meta verilerini kullanıma sunma gibi veri temelli mikro hizmetlere yönelik tekniklerin çoğu, DDD desenleriyle dahili olarak uygulanan daha gelişmiş mikro hizmetler için de geçerlidir. Daha önce açıklanan uygulamaların çoğu burada veya herhangi bir mikro hizmet türü için de geçerli olduğundan, bu bölüm önceki bölümlerin bir uzantısıdır.

Bu bölümde öncelikle eShopOnContainers başvuru uygulamasında kullanılan basitleştirilmiş CQRS desenleriyle ilgili ayrıntılar sağlanır. Daha sonra, uygulamalarınızda yeniden kullanabileceğiniz yaygın desenleri bulmanıza olanak tanıyan DDD tekniklerine genel bir bakış elde edersiniz.

DDD, öğrenme için zengin kaynaklara sahip büyük bir konudur. Eric Evans'ın Domain-Driven Design ve Vaughn Vernon, Jimmy Nilsson, Greg Young, Udi Dahan, Jimmy Bogard ve diğer birçok DDD/CQRS uzmanının ek malzemeleri gibi kitaplarla başlayabilirsiniz. Ancak en önemlisi, somut iş alanınızdaki uzmanlarla konuşmalar, beyaz tahta oluşturma ve etki alanı modelleme oturumlarından DDD tekniklerinin nasıl uygulanacağını öğrenmek için denemeniz gerekir.

Ek kaynaklar

DDD (Etki Alanı Odaklı Tasarım)
DDD kitapları
DDD eğitimi