Tuesday, August 28, 2007

DDD and TDD document guideline

Semalam ada satu soalan ditanya kepada aku oleh seseorang, aku bercerita pasal agile methodology.. aku bercerita tentang Test Driven Design tapi dia tanya kat aku..ada any documentation guideline yang aku gunakan dalam team aku?.. argh.. sememangnya aku tak de solid documentation bagaimana nak buat nak buat DDD dan TDD, kebanyakkan cara aku..ialah mentor, ertinya aku involve dengan developer, aku terlibat dalam design..aku bercerita,ini dia base code,ini dia layer yang terlibat follow cara mcm ini.

Tapi soalan tu membuat aku berfikir yang aku perlukan juga basic documentation menerangkan methodology yang digunakan. emmmm ya masa untuk buat initial draft :)

Update
Jumpa link menarik semasa browse dlm group DomainDrivenDesign
Improving Applications Design with a Rich Domain Model

Friday, August 24, 2007

technical cms meeting

2 hari penuh kena masuk technical meeting dengan group PP/NCR/AP , discussion kali ini ialah untuk integrate CMS dengan project PP, kenkadang kita pandang tinggi pada consultant-consultant yang datang, ialah yang join tu rambut dan kulit putih , speaking pun memang ambil masa agak le nak faham hehehehe tapi ialah bila dah 2 hari discuss so kita tahu le tahap technical knowledge dia orang hahaha.. simple UML sequence diagram pun salah macam maner nak nie.. arghh bila dah join meeting banyak le kerja lain tertangguh, aku rindu dengan code , aku rindu dengan unit test... dan aku rindu dengan wife dan anak-anak aku..

Group kami masih macam biasa happy dengan enviroment kerja sekarang, aku rasa team yang ada sekarang nie team yang paling seronok aku bekerja, mereka -mereka ini semua mempunyai kepakaran masing-masing, ada seorang tu memang expert dalam java, bagus dalam algorithm senior daripada aku dan seorang lagi dari group java juga very active mencuba perkara baru dalam java dan kini mengikut jejak langkah ex bos aku menulis code generator dan seorang lagi sabar dalam meniti langkah yang mecabar dalam dunia soft dev.. aku doakan dia menjadi seperti senior beliau manakala group .net dibawah team aku nie pun bagus juga, cepat tangkap apa yang diajar dan kalau tak faham rajin bertanya. Team SA rajin dan cekap mengesan bugs :)

Aku masih belum buat keputusan untuk join company yang lagi satu walaupun offer letter dan dibagi..ada kat rumah simpan..ada masa lagi 10 hari untuk aku fikirkan, aku dah melalui 2 kali disscussion.. last discussion dengan panel advisor unutk company tersebut, nice person dan pertanyaan straight to the point dan jawapan yang dia hendak dari aku pun jawapan yang padat..tak nak pusing-pusing hehehe ..

ada beberapa orang rakan yang aku tahu kemampuan dia orang untuk buat kerja, aku rekomenkan, nak cakap aku bagi syarat kat company tu untuk aku join..tak juga tapi aku just kata kalau dapat this team join sekali sekali di bawah group aku..lagi ok.. i know they can perform, company nie ada kena mengena dengan kuwait & arab saudi.

knowledge aku dalam beberapa technology masih kurang , masa nak mendalami pun dah semakin tidak mencukupi, aku plan nak beli buku hujung minggu nie..buku tentang unit test pattern dan linq.

Monday, August 20, 2007

Start project Baru - Customer Management System CMS

Sudah lebih kurang seminggu saya mula dengan project baru, so setiap ptg selama 3 jam unutk jangkamasa 2 bulan saya akan duduk dengan domain expert dan bersoal jawab tentang CMS Domain. Saya akan lukis domain diagram, buat sequence diagram dan ajukan soalan macam-macam sperti process flow, business logic, interface dan real operation implemantation yang dia orang harapkan nanti.

Project ini agak mencabar kerana domain yang dihasilkan setakat seminggu lebih saya join session tersebut sudah agak complex kerana terlibat dengan pelbagai calculation berkaitan mail process dan logistic. Dan saya berharap saya dapat hasilkan domain ynag flexible dan skrg ini saya dah start buat test pada beberpaa use case awal untuk prototype.

Hari nie tak sihat rase macam nak demam.

Saya dapat offer kerja di sebuah international company dan package yang diberi sgt menarik.. tapi disini saya tgh handle project yang juga menarik.. experiance yang sara rasa jarang saya akan dpt dlm domain mail & logistic ini.. masih lagi berfikir..

Tuesday, August 14, 2007

IIS compression untuk ASP.Net

Untuk project Pickup Scheduling System , saya banyak menggunakan ASP.Net ATLAS Ajax, masalah utama dengan Ajax ialah untuk first loading java script file yang dihasilkan agak besar, selalunya lebih dari 100KB dan dari segi performance ianya agak slow. Masalah ini saya hadapi apabila saya mula redesign semula PSS dari asp.net biasa kepada Ajax dan tujuan utama redesign semua ini ialah kerana ASP.net biasa juga jika tidak handle viewstate dengan betul boleh mengakibatkan page file yang dihasilkan juga besar. So selepas mencuba beberapa alternatif saya buat keputusan untuk menggunakan ATLAS Ajax. Dan apabile telah mengguakan beberapa Ajax Extender seperti Modal Extender dan Dynamic Populate saya persaan script size increase sehingga 200K per page, walaupun script ini hanya diload sekali dan booeh dicache tetapi say masih tidak berpuas hati kerana first load adalah amat penting untuk mendapat first impression yang baik dari pengguna.

Saya google dan mendapat beberapa cara hendak selesaikan masalah ini, iaitu dengan menggunakan IIS compression, selain dari itu anda juga boleh menggunakan HTTP Module compression. Saya nmeilih menggunakan IIS Compression kerana pada pendapat saya ianya lebih mudah untuk di configure.

Saya terjumpa satu artikel berkaitan IIS Compression di IIS Compression in IIS6.0 , tapi setelah mencuba masih lagi tidak berhasil untuk compress page asp.net.

Setelah menggunkan cara edit script tidak berhasil saya terjumpa satu tool untuk edit metabase.xml dlm ISS. Tool tersebut boleh didownload di
Internet Information Services (IIS) 6.0 Resource Kit Tools



Step seperti berikut
- Enable Compression in IIS - Click Properti pada WebSite Node dalam IIS dan pilih tab Service, Check dalam checkbox Compress application files dan Compress static files.

- Seperti gambar yang diberi edit HcScriptFileExtensions pada gzip dan deflate dan letakkan aspx,axd,asmx,cc,js , dan edit juga HcDynamicCompressionLevel kepada 9.

Anda boleh lihat hasil menggunakan FireBug dalam browser FireFox.

Monday, August 13, 2007

Pickup Scheduling System Live today!!!

2 minggu sebelum ini saya agak busy dengan bug patch dan dateline untuk live Pickup Scheduling System, agak banyak pengalaman semasa dalam prosess untuk pindah ke production server.Tidak semua process jika berjalan di testing server akan berjalan lancar di production server. Checklist semasa hendak deploy ke production server adalah penting, sebarang langkah yang dibuat seperti server configuration , connection string dalam web config hendaklah dicatitkan dan semak semula list tersebut semasa hendak di deploy.

Saya fikir release awal small module selepas melalaui test di testing server bagus unutk mendapat signal awal problem yang berlaku di production server, jika anda mempunyai acces ke production server. Pengalaman apabila semua module complete di test di test server dan apabila hendak deploy di production tidak menjadi seprti yang diharapkan mengajar saya untuk cepat release application dan test juga di production server.

Wednesday, August 01, 2007

Abstract Domain Part 001

Kemahiran dalam merekabentuk domain yang mantap memerlukan usaha melakukan sendiri latihan dengan memodelkan problem tersebut. Cara sama seperti mana belajar matematik, iaitu kita kena rajin buat latihan dan mempunyai daya analisa yang tinggi, daya analisa yang tinggi datang InsyAllah jika anda sudah biasa dengan latihan-latihan memodelkan domain. InsyAllah semasa memodelkan domain anda akan nampak pattern-pattern analisa yang sama dengan masalah sebelumnya.

Dalam siri ini, insyAllah saya akan hasilkan beberapa abstract domain model . Abstract ertinya domain yang masih lagi bersifat "high level".

Domain Module Access Management:
Minggu lepas terdapat perbincangan antara saya dan rakan-rakan dan mereka minta analisa saya berkaitan bagaimana nak control user yang mempunyai roles supaya ada pelbagai access right terhadap module page yang dibina.

Sebagai contoh User A mempunyai 2 roles iaitu CustomerServices dan juga sebagai SeniorCourier. Untuk roles CustomerServices terdapat pelbagai access right boleh diberi kepada roles tersebut seperti FullAccess untuk Module A dan ReadOnly untuk Module B.

Contoh abstract domain seperti dibawah