ProgrammerZamanNow / qna

Q&A Bareng Programmer Zaman Now, Orang Ganteng dan Intelek
255 stars 7 forks source link

Alur Kerja Sebagai Programmer Microservice #613

Closed ChristYoga123 closed 1 month ago

ChristYoga123 commented 8 months ago

Permisi bang Eko, saya mau tanya

Misal kita ingin mengerjakan sebuah aplikasi secara kolaborative dengan menggunakan microservice. Misal saya mengerjakan Transaction Service dan teman saya mengerjakan Product Service. Ketika kami bekerja secara parallel, transaction service kan perlu misalkan data seperti data produk yang ditransaksikan dari product service untuk testing dan developing. Apakah nanti yang bekerja di transaction service akan idle menunggu product service selesai atau adakah cara lain? Terima kasih

brainplusplus commented 1 month ago

Saya pernah ada pengalaman seperti ini, bisa dilakukan dengan bikin semacam Mock, entah itu MockService atau MockData

semisal pada kasus agan itu nunggu data dari Product Service, agan bisa bikin Mocknya, td ada 2 pendekatan :

  1. MockService semisal kalau MockService dari product, agan bisa buat microservice sederhana dgn data dummy, yang membuat seolah-olah "datanya" dari ProductService, contoh kesepakatan dari consume datanya menggunakan REST API, ya berarti microservice sederhana buatan tersebut berbentuk REST API, untuk keakuratan data (struktur data, dll) tidak harus sesuai banget dengan realnya kalau memang blom ada spec jelas dari tim ProductService, bisa di kira-kira data apa yang tersedia dan bentuknya seperti apa, nanti service kita seolah consume ke MockService tersebut dengan data dummy, nah setelah tim ProductService siap, barulah kita sesuaikan dari sisi struktur request, response, dll, jadi tidak akan bottleneck dengan tim product service

contoh : agan bikin file json yang merepresentasikan data list product, nah, abis itu bikin program PHP sederhana semisal get_list_product.php, dimana isinya cuma ambil dari data list product tersebut, jadi nanti di program agan tinggal curl('http://localhost:9090/productservicedummy/get_list_product.php')

  1. MockData ini lebih sederhana, jadi di aplikasi kita, kita cukup bikin data dummy saja semisal data list product yang di simpan di file json, yang nanti kita ambil seolah2 data tersebut berasal dari product service

contoh : agan bikin file json yang merepresentasikan data list product, nah nanti di program agan di bagian semisal servicenya

function get_list_product($category){ return file_get_contents("get_list_product.json"); }

poinnya biar bisa tersimulasi dulu tanpa bottleneck dengan tim lain, nanti jika sudah siap tinggal penyesuaian

pertanyaannya bagaimana jika sifatnya bukan data, tapi transaction, prinsipnya sama aja sih, konsepnya mock (dummy), tinggal di mocknya kita bikin skenario if else jika ada yg kita mau buat simulasi berhasil maupun gagalnya

contoh mock transaction :

function submit_trx($productId, $total){ if($productId == "2") return throw \Exception("gagal"); return true; }

ChristYoga123 commented 1 month ago

Mantap terima kasih bang