Domain Driven Design (1)

— 2 minute read

Dalam ke­hidu­pan, manu­sia tidak lepas dari peker­jaan. Pekerjaan yang di­lakukan pun terkadang beru­lang dan memi­liki pola tersendiri. Ada kalanya bertemu masalah ke­cepatan dan ka­p­a­sitas dalam bek­erja. Pekerjaan atau proses yang beru­lang da­pat di­lakukan otomasi meng­gu­nakan soft­ware. Selain itu, soft­ware da­pat di­gu­nakan dalam pe­mec­a­han masalah.

Dalam mem­buat soft­ware, harus mengerti dulu apa yang dibu­tuhkan oleh su­atu bis­nis atau peker­jaan. Untuk da­pat mem­buat soft­ware yang tepat guna, diper­lukan ko­lab­o­rasi an­tara en­gi­neer dan stake holder. Kunci dari ko­lab­o­rasi yang apik adalah ko­mu­nikasi yang da­pat sal­ing di­pa­hami. DDD atau Domain Driven Design, se­buah prin­sip pem­bu­atan soft­ware dari tahap de­sain sam­pai de­vel­op­ment yang berko­lab­o­rasi den­gan do­main ex­pert (ahli). Tanpa pen­guasaan yang men­dalam ten­tang su­atu per­masala­han, maka sulit un­tuk men­gatakan so­lusi yang dibuat da­pat tepat guna. Di sini lah peran se­o­rang do­main ex­pert men­jadi pent­ing.

Prinsip DDD

Ubiquitous Language perma­link

Ubiquitous Language, ba­hasa yang da­pat di­mengerti oleh se­mua orang. Memadukan an­tara ba­hasa tek­nis den­gan jar­gon-jar­gon di dunia bis­nis. Dapat dikatakan juga, mem­buat de­sain soft­ware yang di­mengerti oleh do­main ex­pert, jika perlu sam­pai ke level ab­straksi kod­ingnya.

Model Driven Design perma­link

Dari per­masala­han yang su­dah di­pa­hami, perlu dibuat per­mod­e­lan yang da­pat di­im­ple­men­tasikan oleh de­vel­oper. Beberapa pon­dasi dari pem­bu­atan model ini adalah:

Layered Architecture perma­link

Memisahkan bagian-bagian dalam soft­ware sesuai den­gan pe­run­tukan­nya. Jika per­nah mem­buat se­buah ap­likasi web­site di­namis, tak jarang berjumpa den­gan kon­sep MVC atau Model View Controller yang meru­pakan se­buah ar­sitek­tur soft­ware. Berbeda den­gan MVC, Layered Architecture ini lebih kepada mengiso­lasi kode logik bis­nis yang inti dari de­pen­densi luar. Dependensi ini da­pat berupa ak­ses ke data­base, user in­ter­face (API), pus­taka pi­hak ketiga, dsb. Bagian yang di­iso­lasi ini dise­but se­ba­gai layer ap­likasi.

Refactoring berke­lan­ju­tan perma­link

Dalam mem­buat kodin­gan, ser­ing kali so­lusi per­tama yang dibuat ku­rang bagus. Baik dari segi efek­tif nya atau ke­je­lasan mak­sud kodin­gan. Untuk itu, refac­tor­ing berke­lan­ju­tan men­jadi hal yang ser­ing dan perlu di­lakukan.

Bounded Context perma­link

Bagian ini belum penulis baca dan pa­hami dan akan di­up­date di ke­sem­patan berikut­nya

Kesimpulan

Dari tulisan pen­dek ini, se­moga da­pat memicu sedikit rasa pe­nasaran pem­baca ten­tang mem­buat Software yang an­dal melalui DDD ini. Ini meru­pakan bagian satu, se­lan­jut­nya penulis akan coba prak­tik lang­sung pada proses pem­bu­atan se­buah ap­likasi.

Thanks for read­ing