Wednesday, February 21, 2007

chating tentang spring framework

pakar java cuma nama samaran
orang benerannya silahkan ditebak
dari cara ngomongnya, dan juga
kenarsisannya

berikut adalah petikan chet gw dengan beliau
yang membicarakan tentang spring framework

kevalidan isi bukan tanggung jawab gw
dan bukan pula tanggung jawab si pakar java ini

---start---

[04:28] pakar java: iya iya, jadi begini
[04:28] pakar java: konsepnya dulu
[04:29] pakar java: spring itu framework
[04:29] pakar java: apakah framework itu?
[04:29] pakar java: menurut Muharandy(2007) dalam bukunya yg berjudul balblalba.. *halah*
[04:29] pakar java: jadi framework itu adalah sekumpulan standar
[04:30] pakar java: aturan
[04:30] pakar java: dan library
[04:30] pakar java: yg bisa digunakan untuk mempercepat proses pengembangan atau menjadikan pengembangan yg rapi terstruktur dan dapat dikembangkan dikemudian hari dengan mudah
[04:31] pakar java: nah spring itu adalah salah satunya
[04:31] arfangade: spring itu menganut konsep mvc kan?
[04:32] pakar java: yoih
[04:32] pakar java: tapi "bebas"
[04:32] pakar java: gak se-strick rails
[04:32] pakar java: karena inti dari spring bukan itu
[04:32] pakar java: inti dari spring adalah konsep yg dikenal dengan nama Dependency Injection
[04:33] pakar java: pernah denger istilah highly cohesive, loosely coupled kan?
[04:33] pakar java: nahhh spring itu sangat menjunjung tinggi nilai nilai itu
[04:33] pakar java: jadi umpamanya bikin kelas di java, kelas tangan
[04:33] pakar java: ada juga kelas jari
[04:33] arfangade: terangin lagi ttg highly cohesive, loosely coupled
[04:33] pakar java: halah
[04:33] pakar java: okeh okeh
[04:34] pakar java: highly cohesive itu
[04:34] pakar java: klo sebuah objek namanya mahasiswa
[04:34] pakar java: ya dia cmn melakukan fungsi yg berkaitan dengan mahasiswa aja
[04:34] pakar java: gak dikotori sama kode2 tentang fungsi laen
[04:34] pakar java: misalnya klo di php
[04:34] pakar java: bikin kelas mahasiswa
[04:35] pakar java: eh pas mau masukin nilai mahasiswa
[04:35] pakar java: ada fungsi loggin dsb, cek password, otentikasi
[04:35] pakar java: itu namanya gak high cohesive
[04:36] pakar java: karena gak menjalankan fungsi yang "ditakdirkan" untuk dia
[04:36] pakar java: nahh klo loosely coupled
[04:36] pakar java: gimana klo kelas kita itu gak terlalu bergantung sama yg laennya
[04:36] pakar java: dalam artian dia bisa berdiri sendiri
[04:36] pakar java: contohnya tadi itu
[04:36] pakar java: kelas tangan ama jari
[04:36] pakar java: eh susah jg sih nyari contohnya hehehe
[04:37] pakar java: tp intinya klo kayak kelas tangan ama jari.. biasanya kan pas ngoding lo hardcode tuh, di constructor si tangan, klo dia punya instance array of jari yg sizenya 5
[04:37] pakar java: nahh
[04:37] pakar java: klo dispring, gak ada tuh yg gituan
[04:38] pakar java: adanya namanya "wiring" jadi dependency itu di-"wire" ketika aplikasi jalan, lewat konfigurasi XML
[04:38] pakar java: makanya disebutnya "Dependency Injection"
[04:39] pakar java: ketergantungan dengan kelas laen yg "disuntik" saat runtime
[04:39] pakar java: yak begitu lah
[04:39] pakar java: :D
[04:40] arfangade: lha bukannya malah jadi ngebingungin?
[04:40] pakar java: oh jangan salah
[04:40] pakar java: pertama lo bisa melakukan testing dalam level objek
[04:40] pakar java: lo bisa nganggep itu objek sebagai satu komponen utuh
[04:40] pakar java: yg high cohesive
[04:41] pakar java: susah sih klo gak nyoba langsung hehehe
[04:42] pakar java: klo lo pake wiring
[04:42] pakar java: misalnya
[04:42] pakar java: lo bikin kelas namanya DatabaseInterface
[04:43] pakar java: trus lo bikin misalnya, PostgresqlDatabaseInterface implements DatabaseInterface
[04:43] pakar java: ups tadi DatabaseInterface interface ceritanya bukan kelas
[04:44] pakar java: nah trus trus ada kelas Mahasiswa "butuh" kelas bertipe DatabaseInterface
[04:44] pakar java: nah apa yg akan lo lakukan?
[04:44] arfangade: di wire gituh?
[04:44] arfangade: trus method2 nya gimana?
[04:45] arfangade: bukannya ada method yang perlu kelas ini kelas itu
[04:45] pakar java: klo biasanya mungkin di constructor si Mahasiswa lo bakal punya deklarasi kayak this.databaseInterface = new PostgresqlDatabaseInterface
[04:45] arfangade: iya2
[04:45] arfangade: bukannya emang kayak gitu?
[04:45] pakar java: eits jangan salah
[04:45] pakar java: ntar tiba2 lo mau ganti jadi pake OracleDatabaseInterface
[04:45] pakar java: :D
[04:46] pakar java: lo musti buka kodingan, edit, trus kompile trus restart
[04:46] pakar java: klo pake xml tinggal deploy aja trus restart
[04:46] arfangade: hmm
[04:46] pakar java: ya gak semuanya di-wire lah
[04:46] arfangade: iya2 mulai menarik nih
[04:46] pakar java: cmn objek2 yg lo bikin aja dan dirasa perlu
[04:46] pakar java: klo udah maen persistence berguna bgt Fan
[04:47] pakar java: tau hibernate? JDBC?
[04:47] arfangade: hibernate itu membungkus database ya?
[04:47] arfangade: jadi object
[04:47] pakar java: yup, ya bisa dibilang gitu lah
[04:47] pakar java: gini gini
[04:47] pakar java: misalnya perusahaan A pertama bikin aplikasi untuk akses database pake Hibernate *biar pengembangan cepat katanya*
[04:48] pakar java: eh tapi tapi ternyata pelanggannya bertambah banyak dan high traffic
[04:48] pakar java: query intensive
[04:48] pakar java: sehingga butuh tipe akses yg lebih low level bin jorok kayak JDBC
[04:48] pakar java: nahhh
[04:49] pakar java: coba lo bikin pake wiring
[04:49] pakar java: misalnya kelas Barang
[04:49] pakar java: punya akses ke kelas DataAccessObject
[04:49] pakar java: singkat aja jadi Dao
[04:49] pakar java: nah pertama gw bikin HibernateDao
[04:50] pakar java: trus gw wire di XML ke kelas Barang
[04:50] pakar java: tapi gw udah jaga2 gw deploy juga tuh kelas JDBCDao
[04:50] pakar java: ntar pas mau ganti tinggal ubah di xml doang
[04:50] pakar java: ituuu "salah satu" keunggulannya
[04:50] pakar java: klo dalam proses pengembangan kerasa bgt fan
[04:51] pakar java: lo bikin objek yg bener2 utuh, sendiri, gak nyampur2, ntar pas dideploy tinggal wiring sini wiring situ
[04:51] arfangade: masalah wiring gw blom ngerti nih
[04:51] pakar java: asik dah
[04:51] pakar java: pake XML bos
[04:51] arfangade: jadi di kelas tangan gak ada sama sekali keterangan ttg jari?
[04:51] pakar java: ada deklarasinya
[04:51] pakar java: ada
[04:51] pakar java: pernah belajar bean kan?
[04:51] arfangade: iya2
[04:51] pakar java: jadi ada setternya
[04:52] pakar java: cmn inisialisasinya gak di dalem
[04:52] pakar java: nanti kayak gini <bean name="tangan" class=" org.asik.apalah.Tangan"/>
[04:53] pakar java: trus <bean name="jari" class"org.asik.apalah.Jari/>
[04:53] pakar java: ntar di tangan sbenernya ada kayak gini
[04:54] pakar java: <property name="jari"><value><ref bean="jari"></value></property>
[04:54] pakar java: yah gitu lah gw juga lupa2 inget hehehe
[04:54] pakar java: *males buka kodingan lagi*
[04:54] pakar java: pokoknya urusan dependency diatur di xml
[04:54] pakar java: klo gw sukanya itu justru di "rapi"-nya
[04:55] pakar java: serius rapi bgt Fan
[04:55] pakar java: bener2 anggep kelas lo itu "bersih" satu "komponen utuh"
[04:55] arfangade: hmm
[04:55] arfangade: tangan ya tangan
[04:55] pakar java: trus lo wiring sama yg laen
[04:55] arfangade: jari ya jari
[04:55] arfangade: hmm
[04:55] pakar java: yoih
[04:55] pakar java: itu dia
[04:55] arfangade: urusan gabung2an diluar
[04:55] arfangade: hehehe
[04:55] arfangade: keren juga
[04:55] pakar java: btuls sekali
[04:56] arfangade: nanti kalau ada manusia berjari 6 nambahinnnya gampang
[04:56] arfangade: hmm
[04:56] pakar java: wakakak
[04:56] pakar java: klo ada waktu baca ini fan
[04:56] pakar java: konsepnya doang
[04:56] pakar java: http://www.theserverside.com/tt/articles/article.tss?l=IOCBeginners
[04:57] pakar java: sebenernya itu istilahnya IoC
[04:57] pakar java: Inversion of Control
[04:57] pakar java: cmn agak2 gak nyambung namanya klo nerangin ke orang indonesia yg baru belajar spring
[04:57] arfangade: halah
[04:58] pakar java: tapi dua istilah itu udah jadi salah kaprah gitu kok penggunaannya
[04:58] pakar java: gw juga kadang2 bingung
[04:58] pakar java: gw pernah baca buku bilang klo sbenernya itu sama aja, tapi ada yg bilang beda hehehe
[04:59] pakar java: ah ada yg ngasih contoh XMLnya nih
[04:59] pakar java: http://www.onjava.com/pub/a/onjava/2005/05/11/spring.html
[05:00] pakar java: tapi klo lo mau lebih "disadarkan" tentang pentingnya Dependency Injection mendingan baca ini nih http://www.devx.com/Java/Article/21665
[05:00] pakar java: soalnya dia nerangin dari kodingan "berantakan"
[05:00] pakar java: trus dirapihin (refactor)
[05:01] pakar java: trus dibikin supaya dependencynya diinject (tapi blum pake spring)
[05:01] pakar java: terakhir baru dia nyontohin pake spring
[05:01] pakar java: kayaknya sih gitu hehehe *gw jg blm baca smuanya*
[05:03] pakar java: sudah mulai paham blum Fan?
[05:04] pakar java: mendingan baca2 yg kayak gitu dulu
[05:04] pakar java: baru ntar coba koding hehehe
[05:04] pakar java: ingat ingat ngoding pake spring sangat melelahkan klo gak pake IDE *sebenernya bukan spring doang,, tp semua java enterprise*
[05:05] pakar java: makanya lo harus menguasai Eclipse dulu
[05:05] arfangade: hmm
[05:05] pakar java: itu baru gila abis
[05:05] pakar java: gila abis abisan
[05:05] arfangade: eclipse yang polos aja ya?
[05:05] pakar java: yoih, untuk belajar mah itu aja
[05:05] arfangade: perlu yang distro2 gitu gak?
[05:05] arfangade: ooo
[05:06] pakar java: yg penting lo tau cara bikin project, trus masukin library, sama shortcut-shortcut "asik" di eclipse yg gw juga gak apal semua
[05:06] arfangade: hmm
[05:06] pakar java: misalnya bikin bean mahasiswa, kan punya method setNama, getNama, setNPM, getNPM, balblalba
[05:07] pakar java: klo eclipse tinggal ceklakceklik jebret
[05:07] pakar java: langsung jadi dah
[05:07] arfangade: iya2
[05:07] pakar java: hehehe

---end---

7 comments:

  1. mentang2 ada kata pakar
    langsung deh roy suryo

    emangnya dia sebenernya pakar
    apa sih?

    ReplyDelete
  2. ahahaha....pakar yang satu ini sangat introvert ya ... sampe-sampe namanya di samarkan ???

    ~kaboorr

    ReplyDelete
  3. Hahaha, gw tau nih. Yang mukanya kayak si randy kan ? Hehehe.

    ReplyDelete
  4. halo lam kenal
    fan, aku juga lagi belajar management spring, kemaren dikasih buku sama bos masih sulit mudengnya, kemaren search di google muncul blog kamu, belajar bareng yuk.. ,kalo mau aku ada nih bukunya.

    iqbal tobrani
    tobbrani@gmail.com

    ReplyDelete
  5. salam kenal gw AryaJimbaran
    wah Fan... sama gw juga lg belajar Spring... gmn kl kita belajar bareng seperti kata iqbal :D

    ReplyDelete
  6. wah, uni banget nyampain infonya :D hehehe

    ReplyDelete