Etki Alanına Dayalı Tasarım, odağı bir sorun etki alanındaki faaliyetleri, görevleri, olayları ve verileri bir çözüm etki alanının teknoloji eserleriyle eşleyen karmaşık sistemlerin geliştirilmesi için bir yöntem ve süreç reçetesidir.
Etki Alanına Dayalı Tasarım'ın vurgusu, daha sonra belirli bir teknoloji kümesinde uygulanabilecek sorun etki alanının soyut bir modelini oluşturmak için sorun etki alanını anlamaktır. Bir metodoloji olarak Etki Alanına Dayalı Tasarım, bu model geliştirme ve teknoloji geliştirmenin, onu kullanan kişilerin ihtiyaçlarını karşılayan ve aynı zamanda problem alanındaki değişim karşısında sağlam olan bir sistemle nasıl sonuçlanabileceğine dair yönergeler sağlar.
Etki Alanına Dayalı Tasarım'ın süreç tarafı, etki alanı uzmanları, sorunlu etki alanını bilen insanlar ve tasarım / mimari uzmanları, çözüm etki alanını bilen insanlar arasındaki işbirliğini içerir. Buradaki fikir, bu iki farklı alandan insanlar iki farklı bakış açısıyla çözümü tartıştıkça paylaşılan bir bilgi tabanını paylaşılan kavramlarla tartışıyorlar.
Belirli bir sisteme ihtiyaç duyan kişiler ile sistemi tasarlayan ve uygulayan kişiler arasında paylaşılan bir sorun alanı anlayışının bulunmaması, başarılı projeler için temel bir engel gibi görünmektedir. Etki Alanına Dayalı Tasarım bu engeli aşmak için bir metodolojidir.
Bir nesne modeline sahip olmaktan daha fazlasıdır. Odak noktası, paylaşılan alandaki gerçek ihtiyaçların keşfedilebilmesi ve bu ihtiyaçları karşılamak için uygun bir çözümün oluşturulması için ortak iletişim ve işbirliğinin geliştirilmesi ile ilgilidir.
Etki Alanında Tasarım: İyi ve Zorlu , bu yorumla kısa bir genel bakış sunar:
DDD, üst düzey mimariyi keşfetmeye ve yazılımın çoğaltması gereken alanın mekaniği ve dinamikleri hakkında bilgi edinmeye yardımcı olur. Somut olarak, iyi yapılmış bir DDD analizinin alan uzmanları ve yazılım mimarları arasındaki yanlış anlaşılmaları en aza indirdiği ve müteakip pahalı değişim taleplerinin sayısını azalttığı anlamına gelir. DDD, etki alanı karmaşıklığını daha küçük bağlamlara bölerek, proje mimarlarını şişirilmiş bir nesne modeli tasarlamaya zorlamaktan kaçınır; konferans salonu beyaz tahta boyutu.
Ayrıca , kısa bir örnek sağlayan Hizmetler Mimarisi için Etki Alanına Dayalı Tasarım'a da bakın . Makale, Etki Alanına Dayalı Tasarım'ın aşağıdaki küçük resim açıklamasını sağlar.
Etki Alanına Dayalı Tasarım, kullanım durumlarımızla ilgili olarak işin gerçekliğine dayanan modellemeyi savunur. Artık yaşlandıkça ve yutturmaca seviyesi düştükçe, birçoğumuz DDD yaklaşımının eldeki problemi anlamada ve çözümün ortak anlayışına yönelik yazılım tasarlamada gerçekten yardımcı olduğunu unutuyoruz. Uygulamalar oluştururken DDD, etki alanları ve alt etki alanları gibi sorunlardan bahseder. Sınırlı bağlamlar olarak bağımsız adımları / sorun alanlarını tanımlar, bu sorunlar hakkında konuşmak için ortak bir dili vurgular ve uygulamayı desteklemek için varlıklar, değer nesneleri ve toplu kök kurallar gibi birçok teknik kavram ekler.
Martin Fowler, bir alan adı güdümlü tasarımın bir metodoloji olarak bahsedildiği bir dizi makale yazmıştır. Örneğin, bu makalede, BoundedContext , Etki Alanına Dayalı Geliştirme'nin sınırlı bağlam kavramına genel bir bakış sağlar.
Bu genç günlerde, tüm işin birleşik bir modelini oluşturmamız önerildi, ancak DDD, "büyük bir sistem için etki alanı modelinin toplam birleştirilmesinin uygun veya uygun maliyetli olmayacağını" öğrendiğimizi fark etti 1 . Bunun yerine DDD, büyük bir sistemi, her biri birleşik bir modele sahip olabilen Sınırlı Bağlamlara böler - esasen ÇokluKanonik Modelleri yapılandırmanın bir yolu.