TDD ve DDD geniş konular fakat kısaca TDD için önce test yazıp sonra fail olan testlerin kodların yazmak bunun için bir yöntem. Tabii bunun için de projenin taslak olarak bitmiş dökümante edilmiş olması işinizi kolaylaştırır.
DDD için de genel yaklaşım her domainin mümkün mertebe izole edilip yazılması. Yalnız flue alanlar çıktığında ne yapılması gerektiği tecrübeyle öğrenilecek şeyler oluyor.
Service tabanlı geliştirme yapmak DDD içinde kullanılabilir fakat tek başına DDD demek değildir.
Teorik olarak konuşması veya yazılması güzel olan şeyler gerçek hayatta maalesef uygulanamayabiliyor. Güzel güzel hangi pattern kullansam veya en performanslı sorguyu nasıl yazarım gibi şeyleri düşünmeye zaman ve heves kalmayabiliyor bazen.
Laravel ile DDD için Martin Joo ve Spatie (Özellikle bunu tavsiye ederim) ücretli ebook ları var. Güzel bilgiler veriyorlar. Martin, spatie den sonra kitabı çıkardı ve Spatie den baya esinlendiği kanaatindeyim fakat yine de spatie nin yaklaşımı daha güzel geldi bana.