Kenapa sih gak buat code yg mudah dibaca…
Kok males banget yg buat method yg readable atau nama variable yg intention nya jelas. Bahkan ada juga programmer yg membuat nama nama variable nya l ato i …. Itu kesalahan yg amat fatal. Menyebabkan cost pada pembangunan software tersebut melonjak.
Code tersebut sebenarnya haruslah dibuat semudah mungkin untuk dimengerti. Dan tidak perlu ada banyak comment di body method. Kalau kita masih berpikir bahwa pada line tersebut perlu ada comment. Kenapa tidak di refactor to method aja.
Dan kebanyakan body method dari code tidak memiliki level abstraksi yg sama. Nyampur semua dengan hal hal yg berbau implementation detail.
Ujung2 nya maintanancenya yg repot. Banyak kebingungan dimana2 sehingga orang terpaksa harus membuat code baru lagi dari scratch. Nambahin biaya kan?
Jadi mulai skarang buatlah nama method yg readable dan jelas intention dari pemberian nama tersebut. Supaya programmer lain yg menemukan code tersebut dapat mudah mengubah atau memodifikasinya.
Say suka menggunakan konsep message, walaupun didalam domain.
Sebagai contoh Customer boleh requst License sama ada dengan specifify parent License atau pun sendirian
Dan jika di tulis didalam code
public class Customer
{
public void RequestLicense(IndividualLicense args)
{
//
}
public void RequestLicense(WithRelationToParentLicense args)
{
}
}
IndividualLicense dan WithRelationToParentLicense adalah message yang perlu disampaikan kepada object
nice … konsep itu juga sudah saya tanyakan dengan jonathan oliver.
mengenai hal tersebut ada dibahas pada komentar saya pada postingan http://jonathan-oliver.blogspot.com/2009/03/event-sourcing-in-dddd-world.html
Saya juga sekarang bnyk memperkayakan domain dengan domainservice dan domainevent. Artikel dari Udi
http://www.udidahan.com/2009/06/14/domain-events-salvation/ begitu bnyk mempengaruhi cara saya coding
Hi
Pertanyaan, adakah anda agree Message boleh menjadi sebagai maklumat untuk Command dan Message juga boleh menjadi maklumat untuk Event?
Hi too,
ya.. command dan event tersebut merupakan message. dan merupakan value object.
Event merupakan hasil dari processing terhadap Command.
Jadi tipsnya adalah jika pada hasil pemrosesan tersebut terdapat data2 tambahan yg perlu disimpan maka kita menambahkannya juga di event.
Sehingga kita dapat langsung meng-extends Event dari Command yg bersesuaian dengannya..
Bagaimana ya bisa dibuat software yang mempunyai 2 datasource (write/read). Menggunakan konsep CQS maka apabila insert akan di persist ke pada kedua2 datasource atau datasource read akan di bina menggunakan backend replication etc
hal tersebut dapat dilakukan dengan messaging. data yg terdapat pada database query merupakan denormalizer version dari domain model. hal tersebut dikarenakan kebutuhan untuk reporting berbeda dengan kebutuhan untuk domain model.
ketika terjadi operasi write (command) maka event yg dihasilkan akan di kirim ke query service. dan akan di denormalized di sana. pattern yg diterapkan di sini adalah anti corruption layer dari DDD.
http://www.udidahan.com/2008/08/11/command-query-separation-and-soa/