Coding Best Practice : Berbagi Masalah dan Solusi buat Coder [7] – Dependency Management


Dependency Management

Dependency Management

pernah mau ngirim project ke temen, tapi terkendala dengan GEDE nya ukuran projectnya? padahal mungkin projectnya cuma 5MB, tapi library yang dibutuhinnya ratusan MB

kalo pernah dapet masalah kayak gini, berarti saatnya jangan download manual dependency-nya, serahin sama build sistem, dengan begitu ukuran projectnya jadi kecil, karena dependencynya gak diinclude di project. Baca lebih lanjut

Coding Best Practice : Berbagi Masalah dan Solusi buat Coder [6] – Integrated Development Environtment


Integrated Development Environtment

Integrated Development Environtment

pernah kejadian kayak gini, coding pake eclipse, trus temen ternyata pake netbeans, jadi aja projectnya bingung dibuka nya gimana, paling diliat satu2 pake nodepad filenya #eaaaaaa

salah satu yang harus dihindari adalah, ketergantungan dengan IDE (integrated development environtment), walaupun IDE emang tugasnya untuk mempermudah bikin app, tapi jangan dipikir semua orang bakal pake IDE yang sama  Baca lebih lanjut

Coding Best Practice : Berbagi Masalah dan Solusi buat Coder [5] – Revision Control


Revision Control

Revision Control

temen udah nyelesain feature A, pas mau di copy file nya, eh ternyata temen ngerjain file yang sama, beuh, kacau, mana filenya lebih dari 1000 baris, mana aja ya yang berubah?

*garuk-garuk-kepala*

hari gini masih coding bareng pake flashdisk? hmm yang masih kayak gitu bener2 kuno deh *geleng2kepala* Baca lebih lanjut

Coding Best Practice : Berbagi Masalah dan Solusi buat Coder [4] – Development Server


Staging / Development Server

Staging / Development Server

aplikasi udah siap nih, oke, create WAR atau JAR nya, trus deploy di production.

eng ing eng!!!! DUAR!!!

error bro *ketekkringetan*
Baca lebih lanjut

Coding Best Practice : Berbagi Masalah dan Solusi buat Coder [3] – Database Migration


Database Migration

Database Migration

kerja bareng temen, trus dapat update code baru dari temen, pas di-running, eh error TABLE NOT FOUND, *tonjoktemennya* gara2 gak bilang2 bikin table baru

ini biasa terjadi kalo bikin project bareng2 lebih dari satu orang, kalo komunikasinya gak bagus, bisa miss informasi, dan developer lain bisa kena masalah kayak ini

solusinya gimana?  Baca lebih lanjut

Coding Best Practice : Berbagi Masalah dan Solusi buat Coder [2] – Unit Test


Null Pointer Exception

Null Pointer Exception

diwaktu2 yang penting, kayak demo ke client, sidang skripsi, dan lain-lain, pas masukkin data yang salah eh aplikasinya malah ERROR, lupa nambahin validasinya *galiLubang*

biasanya ini terjadi kalo kita dikejar2 deadline, sangking pengen cepet2 nyelesaiin aplikasi, sampai lupa bikin unit testnya. Baca lebih lanjut

Coding Best Practice : Berbagi Masalah dan Solusi buat Coder [1] – Project Management


Dependencies Missing

Dependencies Missing

pernah bikin project di komputer sendiri, trus pas dibuka di laptop temen eh ternyata banyak tanda merah. errornya dependency not found, class not found, dll

kenapa bisa gitu ya? yuk kita bahas. Baca lebih lanjut

Pessimistic VS Optimistic Locking


guys, malam ini saya mau bagi2 daging (baca: ilmu) nih, seputar database, pessimistic dan optimistic locking.

#PessimisticLocking

langsung aja ke contoh kasus:
– ada sebuah aplikasi inventory, dimana bisa diakses oleh beberapa user secara bersamaan
– misal saat ini sedang diakses oleh 2 user, user A dan user B

mereka berdua melakukan hal ini secara bersamaan :

A meload data barang dengan id 001 (nama: Dodol)
B meload data barang dengan id 001 (nama: Dodol)

A mengubah nama barang (id 001) menjadi Dodol Garut
B mengubah nama barang (id 001) menjadi Dodol Subang

A refresh data barang, yang didapat Dodol Subang 😦
B refresh data barang, yang didapat Dodol Subang 😀

kasus diatas dinamakan pessimistic locking, yang artinya siapa yang terakhir mengubah data barang, maka dia yang menang! #yeah!!!

apakah ada yang salah? sebenarnya gak ada yang salah, cuma secara kode etik (alah ngomong apa sih) sebenarnya bermasalah, ketika sebelum si B mengubah nama barang menjadi Dodol Subang, dia seharusnya tahu kalo nama barang telah berubah ke Dodol Garut, dengan begitu ada kemungkinan dia tidak akan jadi mengubah data nama barang tersebut.

#OptimisticLocking

berbeda dengan pessimistic locking, di Optimistic Locking, siapa yang mengubah pertama kali, maka dialah yang menang, yang terakhir mengubah, dia harus tahu dulu kalo sudah terjadi perubahan.

Jadi jika menggunakan Optimistic Locking kejadiannya akan seperti ini :

A meload data barang dengan id 001 (nama: Dodol)
B meload data barang dengan id 001 (nama: Dodol)

A mengubah nama barang (id 001) menjadi Dodol Garut
B mengubah nama barang (id 001) menjadi Dodol Subang

B mendapatkan error, dan diberitahu kalo data sudah berubah
A senang 😀

#Contoh
berikut adalah contoh framework yang support optimistic locking :
– Hibernate Framework
– Java Persistence API
– …. silahkan sebutkan di komentar 😀