Ok. Mari kita diskusikan bagaimana seharusnya kita meletakkan kelas-kelas, perkakas, dan lain sebagainya agar memenuhi standart DDD dengan .Net.

Dalam salah satu sample DDD, orang membuat dalam Java, 1 paket 1 agreegate root yang berisi, entity, value object, domain event, dan interface dari repository, mungkin juga interface dari infrastruktur lainnya.

Lalu bagaimana dengan .net? Setujukah kalau kita buat setiap 1 agreegate root 1 namespace, yang berarti satu project. Isi dari project ini, interface (untuk tujuan mocking–agar mudah ditest?) terdiri dari interface infrastructur dan interface model, class (implementasi dari interface, yang harus didefinisikan sebagai internal), Factory (baik builder, abstrack, maupun method–lihat GOF).

Dengan demikian object-object tidak bisa dicreate dari luar, sehingga bisa diatur hanya lewat builder. Untuk menjaga agar object tidak bocor keluar, maka root tidak boleh mereturn apapun kecuali DTO. ? masih ada yang tertinggal?

Method harus eksplisit tidak boleh satu untuk semua message, consume misalnya. ?

 

Iklan