Service layer, Interface, perlu atau tidak?

Spring | Home
Sumber : https://spring.io/

Latar Belakang

(Contoh dalam kasus ini memakai Java framework spring). Namun bisa juga diteramkan di framework/bahasa lain. Umumnya pada spring terdapat beberapa layer berikut.

  1. controller/
  2. service/
  3. repository/

Namun pada beberapa kasus, terlihat overkill. Contohnya untuk fungsi CRUD data master. controller isinya satu baris saja mangil service, pas dicari declaration nya, eh ketemu interface service. Kita coba cari implementasi service nya, isinya satu baris saja manggil dao. Dan kemungkinan besar implementasi dari service dan dao nya akan hanya ada satu seumur hidup, gak akan bertambah.

Continue reading “Service layer, Interface, perlu atau tidak?”

Postman Otomatis Kirim Header Autentikasi dengan Hanya Sekali Login

Sumber twitter pos indonesia https://twitter.com/posindonesia/status/963282532966989825?lang=da

Semua yang bisa di otomasi, akan di otomasi. Hampir semua tools/program saat ini menyediakan fitur otomasi ataupun custom script. Dan fitur ini menjadi daya tarik sendiri. Bahkan gitlab CI yang tidak menyediakan GUI, lebih disukai karena mudah di otomasi dan di program.

Begitu juga postman, sangat cape jika setiap mencoba endpoint lain, harus mencopy manual token authorization. Apalagi kalau sering ganti user login di endpoint nya. Postman menyediakan beberapa fitur yang dapet membantu seperti:

Continue reading “Postman Otomatis Kirim Header Autentikasi dengan Hanya Sekali Login”

Session Locking? Slow Query Log Isinya Query Session?

Masalah

Mekasnisme session default di php adalah locking/blocking. Misal ada 5 request dari orang yang sama (id session yang sama) bersaman yang menggunakan session, kelima request tersebut tidak bisa berjalan bersamaan, melainkan hanya satu request yang dapat berjalan, yang lainnya menunggu sampai request yang berjalan tersebut selesai (ngantri).

Hal ini tujuannya untuk mencegah race condition. Misalkan ada session variable bernama jk (jumlah keranjang) yang menghitung jumlah barang di keranajng. User menambah barang a dan b, awalnya jumlah keranjang ada 10, setelah ditambah 2 barang tersebut menajdi 12.




session
jk = 10



















locking






concurrent / no locking
















request 1
jk =jk + 1
jk = 10 + 1 = 11


request 1
jk =jk + 1
jk = 10 + 1 = 11

request 2
jk = jk + 1
jk = 10 + 1 = 12
request 2
jk = jk + 1
jk = 11 + 1 = 12













































Final result

jk = 12





jk = 11



Ink Drawings
Ink Drawings
Ink Drawings
Ink Drawings
Ink Drawings
Ink Drawings
Ink Drawings
Ink Drawings
Ink Drawings
Ink Drawings
Ink Drawings
Ink Drawings
Continue reading “Session Locking? Slow Query Log Isinya Query Session?”

Menggunakan Jasper Report dalam PHP

Mengeksport data menjadikan xls, pdf, csv biasa disebut reporting merupakan task yang umum. Banyak developer menciptakan tools untuk memudahkannya. Yang biasa dipakai di php adalah php office, laravel excel, crystal report, dan kool report. Yang pernah saya coba adalah php office dan jasper report.

Untuk yang biasa menggunakan java, tools yang biasa digunakan adalah jasper report / i report. Banyak kelebihan jasper report dibanding reporting php pada umum nya (php office) :

Continue reading “Menggunakan Jasper Report dalam PHP”