Sana başka bir örnek verebilirim. Bazı e-ticaret sisteminiz olduğunu düşünün. Orada ürünleriniz olur, ancak ürünler en az iki farklı alanın parçası olur:
- Ürün açıklamanızı ve tüm özelliklerinizi sakladığınız ürün kataloğu
- Ürün stok seviyesine sahip olduğunuz envanter
Her iki alan için de sınırlı bir bağlamınız varsa, çözümünüz hızla büyük bir çamur topu haline gelebilir, çünkü çapraz referans vermeye başlayacaksınız. Sonunda artık iki alanınız olmayacak. Ürün envanteriniz ürün kataloğu referansları ile şımartılacak veya tam tersi. Bunun sonucu olarak, bunun gerekli olmadığını tam olarak anlasanız bile, bir alanı başka bir alana dokunmadan değiştiremezsiniz. Modelleriniz birbirine bağımlı, sıkıca bağlı ve kötü bir şekilde bağımlı - uygulamaya bağlı.
Bununla birlikte, iki sınırlı bağlamınız varsa, bir etki alanında yaptığınız tüm değişiklikler, iletişim kanallarınızı temiz tutar tutmaz diğerini etkilemez. Bu, veri çoğaltmanızın olması gerektiği anlamına gelecektir, ancak bu, yakın birleşik bileşen tabanlı uygulama için en düşük maliyettir. Alan adlarınız, alan adı etkinliklerini kullanarak birbirleriyle konuşabilir. Başlangıçta SOA tabanlı bir uygulamaya sahip olmayı planlamasanız bile, nispeten düşük çaba ile ihtiyacınız olduğunda bu seviyeye kadar ölçeklendirebileceksiniz, çünkü sadece alan etkinlikleriniz için aktarımı değiştirdiğiniz ve arkasındaki fikri olduğu gibi bırakacaksınız.
Güncelleme: SkillsMatter'da Eric Evans'dan iyi bir beceri var. Birkaç kör adam bir fili kendi perspektifinden tarif ettiğinde eski hikayenin bir benzetmesini verir. Her insan filin sadece bir kısmına dokunabildiğinden, onu bir "ağaç", "duvar", "yılan", "ip" olarak tanımlarlar. Ve bu insanların her biri kendi bağlamları içinde. Sınırlı bağlam her yerde bulunan dilin yaşadığı yerdir. Bağlamın dışında, bu terimler tamamen farklı bir anlama sahip olabilir, ancak bağlam içinde, dil birden fazla alanda aynıdır. Greg Young bölüm 11'deki mavi kitabı okumaya başlamanızı şiddetle tavsiye ediyor, çünkü burada en önemli, temel kavramlar açıklanıyor. Kitabın başındaki taktik kalıplara odaklanma, bu "DDD-light" yaklaşımını çok yaygın kılıyor,