<$BlogRSDUrl$>

Sunday, June 12, 2005

Tambahan lagi

GeoIP Free Country. IP to country locator. Menarik gak.

Hibernate / Spring / Middlegen / XDoclet Tutorial v1.5.

Introduction to Hibernate.

A Hitchhiker's Guide to Hibernate.


Tambahan

ASM classworking.

Annotations with ASM.

Putting aspects to werk.

Replacing reflection with code generation.

Introducing reflection.

Java bytecode.

Inside the Java Virtual Machine

Eclipse: Save Time With 'Extract Interface' Refactoring


x2

Design pertama x2 telah pun siap. Hasilnya memuaskan hati. "Boleh tahan aaa...". Utk lebih memuaskan hati, x2 telah diuji designnya dgn ujian menjanakan code utk hasilkan data class biasa, setanding dgn cg. Bahkan, lebih intelligent dpd cg.

Package dijana spt biasa. Straight forward.

Import tricky sikit. Saya jadikan import ni intelligent sikit di mana, tiada duplicate import walaupun source file mengandungi duplicate import. Bahkan, kalau ada yg pilih import spt import java.util.Map dan kemudian ada import java.util.*, import yg dijana akan pilih '*'.

Member variables sama spt cg. Methods2 yg dijana spt set, get, add juga spt cg hasilnya. toString, hashCode dan equals pun sama.

Semua ini mengambil masa 1 hari utk buat. Dan yg paling best, design tersebut membolehkan code2 dimasukkan dgn kemas dan logical, serta flexible. Class2 yg implement design x2 ini kelihatan kemas. Dan, script velocity pun amat kemas krn saya guna function utk setiap satu, instead of jumble up dlm 1 script file.

2 tip yg nak saya kongsi:
1. Utk hasilkan object model dan design yg baik, sebaik2nya terdpt pengetahuan mendalam tentang domain tersebut. Usaha saya menghasilkan dan terus enhance cg selama lebih 3 tahun banyak menerangkan kpd saya domain code generator utk source code Java dan banyak memberi idea2 utk improvekannya.

Jadi, katakan kita nak hasilkan sistem Accounting, maka pengetahuan mendalam diperlukan utk hasilkan object model yg sebaik2nya, that fits the accouting domain like a glove. Utk ini berlaku, hendaklah team yg buat user req dan object model ini, dijelaskan sejelas2nya dlm domain tersebut.

2. Object model dan design yg berjaya dihasilkan dgn bagusnya, mampu memberikan kepuasan coding kpd developer. Saya dah begitu lama tak merasainya. Masa memasukkan keupayaan menjanakan class ke dlm x2 tersebut, terasa amat seronok krn everything falls into place. Lancar betul.

Bukan shj coding, bila hadapi masalah yg tak difikirkan, terasa semacam jalan penyelesaiannya terpapar didepan mata. Seolah2 design tersebut melambai2 "maju, maju, ini tak de apa2. terus maju...". Spt saya pernah beritahu beberapa orang dulu, object model dan design yg baik, mampu menjaga dirinya sendiri sampai takat tertentu. Kita tak perlu risau sangat tentangnya.

Tapi, bukan mudah utk hasilkannya, bukan utk saya. Saya hanya merasainya tak sampai 4 kali rasa2nya. Antara yg saya ingat ialah design building automation system ver 2 dan sekarang design x2.

Inilah antara sebab saya tak mengaku saya ni guru ooad. Masih terlalu jarang saya dpt hasilkan sampai tahap ini. Tahap "a pleasure to code". Paling tinggi pun, saya ni guru pelatih aje la.


Serialized LOB

Yahoo! Hooray! ryzam bagi pinjam buku "Patterns of Enterprise Application Architecture" pada hari jumaat yg lepas. Saya bagi dia pinjam buku Java modeling in color oleh peter coad. Berminat betul ryzam ni dlm sw dev ini. Bagus la. Semoga berjaya jadi seorang sw architect di satu masa kelak. Memang kepakaran ini diperlukan.

Saya kena jaga buku ryzam ini extra carefull nampaknya. Masa membelek buku tu, kat ms 2, baru saya sedar bhw buku dia ni buku pemberian teristimewa. :) Saya berusaha utk menjaganya dgn sebaik2nya.

Balik kat rumah malam tu, saya baca senarai patterns yg ada dan pattern Serialized LOB seolah2 memanggil2 kat saya. Saya pun baca. Lantas... "macam pernah ku fikir yg serupa sepertinya, tapi di mana ya...".

Serialized LOB ini adalah satu teknik utk memasukkan satu graph object ke dlm satu field dlm satu object. Cthnya ada object Orang yg ada 1..* object Alamat. Kebiasaannya, kita simpan setiap satu object Alamat ini ke dlm 1 row kat dlm table. Cara Serialized LOB ini, kita serializekan semua object2 Alamat ini menjadi sama ada byte[] atau String Xml dan menyimpannya sama ada sebagai salah satu field dlm table Orang atau dlm satu table khusus utk simpan LOB ini.

Saya belajar 2 benda baru dpd pattern ni:
1. Teknik ini sesuai penggunaannya utk jenis2 menyimpan snapshot 1..* object. Sebelum ini, saya menggunakan teknik ini kebanyakannya utk hubungan object jenis composition yg tak perlu diquery.

2. Saya hasilkan teknik yg sama ini (lebih tertumpu kpd string xml, bukan binari) semasa kat syarikat M, sekitar tahun 2001 dulu. Masa tu, saya tak pasti, boleh pakai ke teknik ini? Rupa2nya....

Agaknya, kawan2 saya dari company M tu, ingat la tak, nama yg saya berikan utk teknik ini?

Akan ku masukkan keupayaan ini ke dlm x2, sebagaimana aku memasukkannya ke dlm bapadanya, cg...


Macam2

Playing Movies in a Java 3D World, Part 1.

Domain Searching Using Visitors.

Tuning Your Stress Test Harness.

Catch Jackrabbit and the Java Content Repository API.

Byte-code Generation: What's the Best Tool Out There?. Best gak. Ada banyak link ke tools jenis byte code generator ni, serta penerangan tentang beberapa dpdnya.

Threads: Name them to see who's doing what?.

Swing: JOptionPane Can Hold More Than Text.

Comments: Post a Comment

This page is powered by Blogger. Isn't yours?