Pendahuluan Bayangin lagi ngerjain fitur sederhana, tapi pas mau nambah service baru, malah bingung naruh file-nya di mana sampai akhirnya folder app kamu jadi berantakan kayak kamar kosan yang jarang diberesin. Seringkali kita terjebak ngikutin struktur default Laravel mentah-mentah padahal kompleksitas bisnis logic di project skala menengah udah jauh lebih dalam. Ujung-ujungnya, nyari satu class saja bisa bikin frustrasi. Tips & Best Practices Di banyak project, biasanya saya mulai dari memisahkan logic bisnis dengan controller. Jangan biarin controller gendut; saya lebih suka mindahin logic ke folder app/Services biar lebih gampang ngetesnya. Kedua, manfaatin app/Repositories buat kamu yang ngerasa query Eloquent udah mulai bikin controller kotor, ini ngebantu banget pas nanti harus ganti database atau caching logic. Ketiga, jangan ragu buat bikin folder app/DTO atau app/ValueObjects kalau data yang dilempar antar class udah terlalu kompleks, biar struktur data kita lebih ...
Pendahuluan Bayangin lagi ngerjain fitur sederhana, tapi client minta pencarian data yang bisa nyari di banyak kolom sekaligus tanpa bikin aplikasi lemot. Sering banget kita terjebak nulis query panjang lebar di Controller yang akhirnya bikin code jadi berantakan alias spaghetti code. Padahal, pakai Query Builder bawaan Laravel, kita bisa bikin fitur search yang clean dan tetep performant tanpa harus install package pencarian yang berat. Tips & Best Practices Di banyak project, biasanya saya mulai dari menaruh logika pencarian di dalam Scope Model supaya controller tetap bersih dan fokus ke request-response aja. Pernah kejadian user minta pencarian yang bisa nembus ke relasi, jadi saya selalu membiasakan pakai whereHas daripada join manual yang kadang bikin query jadi ambigu. Pas lagi handling database besar, saya pasti selalu nambahin when() agar query cuma ditambahin ke builder kalau input request-nya beneran ada isinya, ini ngebantu banget biar query nggak kepanjangan tanpa al...