
Kitap tavsiye kategorisinin bu bölümünde Domain Driven Desing Tackling Complexity in the Heart of Software isimli kitaptan bahsedeceğiz.
Kitap Eric Evans tarafından kaleme alınmış olup dili ingilizcedir. Basılı kitabı buradan temin etmek mümkündür.
Kitapta karmaşık yapıdaki yazılımlar geliştirirken nasıl bir yazılım tasarımının uygulanması gerektiği konusu ele alınmıştır. Bu tasarım Domain Driven Design diye adlandırılmıştır.
Domain Driven Design yaklaşımı, problemin çözümünün domain diye adlandırılan bir alanda yapılması esasına dayanmaktadır. Burada problem, bir hava yolları rezervasyon sistemi veya bir e-ticaret sistemi tasarlamak olabilir. Bu noktada müşteri ve programcı karşı karşıya gelmektedir. Müşteri gereksinimleri, Domain Expert denen kişiler tarafından iyi bir şekilde tespit edilerek programcının anlayacağı bir şekle dönüştürülür. Programcı ve Müşteri arasında sağlıklı bir iletişimin kurulabilmesi için Ubiquitous Language diye adlandırılan ortak bir dil oluşturulur. Gerekli iletişim sağlandıktan sonra sistem programcılar tarafından geliştirilmeye başlar.
Domain Driven Design yaklaşımı bize genel olarak dört temel katman üzerine inşaa önerir. Bunlar:
- Presentation layer
- Application layer
- Domain layer
- Infrastructure layer
Problemin çözümü için gerekli model Domain Layer üzerinde kurulur. Diğer katmanlar sunum ve iletişim katmanları olarak kullanılır.
Eric Evans’a göre Domain-Driven Design yaklaşımı, yazılım dünyasının popüler konularından birisi oldu ve kapsamlı yazılım projelerinde kullanılıp faydası görüldükçe yaygınlaşacak. Bunun yanında her projede Domain Driven Design yaklaşımını uygulamak yanlış olur. Sadece gerektiğinde kullanmak uygun olacaktır.