Tuesday, March 30, 2010
Pilihan untuk kemahiran
Posted by ryzam at 9:07 AM 2 comments
Thursday, March 25, 2010
Domain challange
Pagi nie aku dapat artikel update dari Jimmy Bogard tentang
Strengthening your domain: Encapsulating operations
Aku dah baca dan beri comment, guna nick amir (hentam ajelah). Memang menarik cara dia describe problem and cara dia solve dengan cara DDD. Aku cuma tak berapa setuju beberapa domain behavior yang dia design..so aku bagi suggestion aku.. Solution yang dia I bagseperti di bawah.
Customer = new Customer
var fee = customer.ChargeFee(100m);
fee.Amount.ShouldEqual(100m);
customer.Fees.ShouldContain(fee);
Solution aku lak dengan ialah method ChargeFee tu naming dia macam tak kena.
Aku suggest buat macam nie:
Customer customer = new Customer();
ShopOwner s = new ShopOwner();
s.ChargeFeeTo(customer).Amount(100m);
So bila customer tu nak buat bayar
customer.MadePayment(50m);
Dia ada komen balik kata ChargeFeeTo(customer) tidak berapa kena sebab tanpa panggil method Amount(), code boleh compile dan tiada error. Aku setuju konsep explicit design, insyAllah aku akan ulas explicit design (keberkesanan).
Aku suggest supaya amount tu diletakkan sebagai paramater seperti
s.ChargeFeeTo(customer,100m);
Selain dari itu untuk domain yang lebih flexible kita boleh bina domain CustomerFeeCharges (moment interval) so code boleh dibina macam ini
s.ChargeForTo(new CustomerFeeCharges(customer,amount));
Posted by ryzam at 11:58 AM 0 comments
Wednesday, March 24, 2010
First screencast bisu
Aku baru je habis buat simple screencast bisu.. hehe..tak de suara tentang basic setup NHibernate & FluentNHibernate. Ini experiment aku , insyAllah kalau ok ada sambungan. Length dia pendek sahaja.. aku cuba buat sesimple, padat dan sendat...
Posted by ryzam at 5:02 PM 1 comments
Thursday, March 18, 2010
Fluent Ubiquitous Domain
Aku tak de apa nak cerita banyak cuma nak bagi satu image untuk difikirkan dan dibincangkan , kalau ada yang nak berbincang silakan, kalau tak de anggap lah image itu contribution untuk 1Malaysia hehehe. Untuk design domain model selain dari skill analytics dan experiance, supporting cara untuk menjadikan domain itu lebih valueable ialah apabila anda boleh buat ayat dari domain model tersebut. Normal buka domain model asas nya ialah identify noun sebagai class, verb sebagai operation dan adjective sebagai attribute/property.
Posted by ryzam at 4:02 PM 0 comments
Wednesday, March 17, 2010
Adakah perlu Query dikongsi??
Ni adalah persoalan yang timbul bila aku buat coding (soft dev). Aku tak jawapan yang concrete tapi buat masa nie aku memilih query tidak perlu di kongsi, setiap client yang ingin data mempunyai query set yang masing-masing. Jika terdapat perubahan pada domain tidaklah terlalu sakit untuk ubah dari kongsi query tetapi bila requirement query untuk process A lari sikit dari requirement untuk process B, aku dapat rasakan lagi susah nak handle. Mungkin sebab aku ambil pendekatan query sepatutnya very lightweight process yang tanpa melibatkan terlalu banyak validation etc.
Posted by ryzam at 1:58 PM 0 comments
Tuesday, March 16, 2010
Google public profile
Ini ialah akunyer link ke public google profile - http://www.google.com/profiles/irwanazam , artikel dalam I Look, I See , juga akan dishare dalam Buzz . So ada n3 yang discussion dibuat disitu.
Posted by ryzam at 11:28 AM 0 comments
Wednesday, March 10, 2010
Macam mana
Aku tak ade idea nak tulis apa, ada masa sikit sebelum nak sambung buat kerja, aku cuba bawa satu normal scenario dalam software development design. Contoh aku diminta develop online POS (Point Of Sale) untuk pasaraya besar , jadi boleh bayangkan per day transaction memang dijangkakan banyak. Dan normal domain model design ialah seperti ini.
Ok untuk create new order tiada masalah, kita hanya point order as agreegateroot dan yang lain semua dihandle ORM untuk persistence. So apabila sudah selesai, requirement lain ialah hendak list order record per day or per hour etc, seperti tertera dibwah nie. Ambil contoh customer nie berdaftar menjadi member (macam Jusco members card,Giant members card)
So macam mana?, Aku perlu query ke table order join ke customer join dengan orderitem join dengan product dan join dengan price dan result aku akan dapat list macam kat atas tu.
Posted by ryzam at 2:13 PM 0 comments
Technical Screencast
Salam,
Posted by ryzam at 12:25 AM 0 comments