Dear all,

Saat ini saya sedang mengerjakan sebuah project java. Seperti biasa 
saya membagi applikasi ini jadi bbrp layer(dao, domain logic/service, 
presentation). Setelah bbrp bulan, project ini punya ribuan klas. 

Masalah timbul disini. Saat ini saya sering merasa "tersesat" dalam 
develop apikasi ini (baik untuk design maupun programming). Usut 
punya usut, akhirnya saya sadar bahwa layer domain logic saya 
menggunakan transaction script pattern (Marting Fawler, Pattern for 
Enterprise Application Architecture). Yup, how stupid i am. Setelah 
baca2 n googling baru tau kalo transaction script pattern cuman cocok 
untuk layer domain logic yang gak terlalu komplek. Kalo mau yg 
complek ya pake domain model pattern (kata Martin Fowler). 

Sialnya pola pikir saya sudah "mendarah daging" dgn layering yg pake 
transaction script pattern (pada layer domain logic). Prosesnya spt 
ini : tiap table pada database punya entity pada java (saya pake JPA) 
-> Entity di akses(crud) oleh Dao (spring bean) -> Dao-dao digunakan 
oleh service layer (spring bean). Jadi, secara tidak sengaja, service 
layer saya sangat berbau procedural (meski saya sudah refactor layer 
service saya pake method-object, trus skrng pake Command pattern buat 
transaction script). 

Setelah baca2 lg, ternyata proses saya di atas itu anti-pattern 
Anemic Domain Model (Martin Fowler lg). nah loh... tambah bingung 
kan... padahal kbanyakan buku java (yg sy baca) mengajarkan proses 
spt diatas.

Buat jugger, apa bisa sharing tentang layering kalian? terutama bgmn 
merubah pola pikir transaction script ke pola pikir domain model yg 
rich dan tidak terjebak dalam anemic domain model ?

CMIIW

thx all...

Kirim email ke