Ketika membangun aplikasi, kita umumnya menyimpan semua data-data ke dalam database. Termasuk di dalamnya data-data sensitif seperti nomor KTP, foto KTP, nama orang tua, alamat, nomor telepon pribadi, akun bank, dan data sensitif lainnya. Bagaimana jika data tersebut bocor? Atau ada oknum engineer yang menyalahgunakan akses yang dia punya terhadap data tersebut…
Sebelum ada Maven, biasanya ketika ada dependency tambahan, kita akan menambahkan Jar file dari dependency tersebut secara manual ke dalam project kita. Bayangkan, jika dependency tersebut digunakan di banyak module lainnya, berarti kita harus copy manual satu-persatu dong. Belum lagi saat ada perubahan Jar, berarti kita harus manual copy satu-persatu. Maven…
Design pattern ini seringnya digunakan ketika membuat framework. Beberapa framewrok menggunakan Proxy behind the scene untuk memanipulasi behavior objek. Seperti saat melakukan Autowired pada Spring atau Mock pada Mockito. Framework biasanya menggunakan library dari JDK atau library pihak ketiga seperti CGLIB untuk membuat proxy. Tapi dalam tulisan kali ini gw…
Dalam pemrograman seringkali kita temui terminologi "Factory" dalam aktivitas perkodingan. Ga sedikit juga yang merasa ambigu, factory yang dimaksud yang kayak gimana sih? Biar ga bingung, gw mencoba menjelaskan beberapa istilah factory yang sering digunakan di dalam pemrograman. Secara umum "Factory" di sini maksudnya adalah action untuk menciptakan objek…
Sebelumnya kita udah membahas Factory Method Design Pattern. Sekarang kita bahas versi upgrade-nya, yaitu Abstract Factory Design Pattern. Keduanya memang mirip, yaitu memberikan user kebebasan memilih implementasi objek apa yang dipakai secara runtime lewat input. Bedanya Abstract Factory Design Pattern ga hanya memberikan implementasi objeknya saja, tapi juga…
Ini merupakan design pattern yang sangat populer digunakan. Software engineer yang menggunakan OOP harusnya pernah menggunakan atau setidaknya tahu tentang design pattern ini. Factory Method Design Pattern digunakan ketika ingin menggunakan implementasi objek tertentu tanpa harus tahu class-nya apa. Biasanya dengan cara tipe objek ditentukan berdasarkan input…
Yang udah pernah menggunakan Clean Architecture mungkin udah familiar dengan design pattern ini, terutama ketika declare input boundary. Selain itu, ketika kita melakukan pembungkusan logic ke dalam runnable juga termasuk Comman Pattern. Design pattern yang satu ini memang cukup populer di kalangan software engineer. Termasuk salah satu design pattern yang…
Kali ini gw membahas tentang Facade Design Pattern. Sebenarnya penggunaan design ini cukup umum sih. Gw rasa beberapa diantara kita udah familiar dengan Facade ketika membuat sebuah API. Bagi yang menerapkan Clean Architecture gw rasa udah sering menggunakan design pattern ini ketika membuat gateway. Tingkat kompleksitasnya juga cukup rendah, cukup mudah…
Bridge Design Pattern termasuk salah satu design pattern yang agak kompleks dibanding design pattern yang lain. Penggunaan design pattern ini juga tidak terlalu populer. Design pattern ini biasanya digunakan untuk memisahkan hierarki sebuah class menjadi lebih independen sehingga pengimplementasiannya bisa lebih spesifik dan fleksibel. Bridge Design Pattern…
Template Method Design Pattern cukup sering digunakan dalam library Java seperti AbstractList, AbstractSet, dan AbstractMap. Design Pattern ini berbasis inheritance. Walaupun mungkin terdengar kurang familiar, tapi pemanfaatan design pattern ini cukup sering dipraktekkan pada beberapa kasus. Bagi yang pernah menggunakan Spring Framework juga mungkin udah familiar…