Interface Segregation adalah memecah sebuah abstrak yang terlalu besar menjadi beberapa abstrak yang lebih spesifik. Terkadang pada sebuah code yang dibutuhkan hanya beberapa method saja dari interface tersebut, sisanya tidak dibutuhkan dan beberapa diantaranya memiliki kohesi yang rendah, tidak saling terkait. Selain itu, sebuah abstraksi terlalu abstrak jika…
Prinsip ini berbicara tentang subclass yang kuat. Prinsip ini pertama kali dikemukakan oleh Barbara Liskov. Jika sebuah class memiliki behavior, maka seluruh turunannya wajib memiliki behavior tersebut secara natural. Melakukan sebuah throwable secara default pada sebuah method milik turunan yang ternyata tidak memiliki behavior seperti abstrak melanggar Liskov…
Secara definisi: Software entities should be open for extension, but closed for modification. Robert C. Martin Disini bisnis logic dibungkus menjadi entitas yang bisa di-extend sebanyak apapun tanpa banyak perubahan di entity utama. Disini benefit dari abstraksi sangat terasa. Open-Close Principle ini bisa diterapkan menggunakan Strategy Pattern dan Factory…
Secara definisi: Single-responsibility principle (SRP) is a computer-programming principle that states that every module, class or function in a computer program should have responsibility over a single part of that program's functionality, which it should encapsulate. Robert C. Martin Kalau di-bahasa-indonesia-kan kurang lebih seperti ini: Single Responsibility…
Gw orangnya introvert banget. Seperti yang pernah gw bahas di postingan lalu, hasil Big Five Test gw aja Extroversion-nya 3% doang. Gw emang ga suka tempat keramaian kalau emang ga penting-penting banget, seperti pasar, bioskop, stadion, tempat konser, dan tempat sejenis lainnya. Waktu kecil aja gw hanya mau ikut diajak ke pasar karena buat beli baju lebaran aja…
Setiap orang berhak punya mimpi. Ga ada salahnya punya mimpi tinggi. Yang penting mimpi bukan sekedar mimpi. Ada visi dibaliknya yang harus dijaga. Ada planning yang jelas untuk menggapainya. Ada usaha yang harus dikerahkan. Ada doa yang dipanjatkan. Tak terkecuali gw, gw juga berhak punya impian setinggi langit. Gw bukan tipe orang yang kalo udah dapat sesuatu…
Mutable Objects ini sebenarnya masih turunan masalah dari Global Variable. Mutable Object adalah objek yang state-nya bisa berubah setelah objeknya dibuat. Sama seperti Global Variables, Mutable Objects memberikan keleluasaan untuk mengganti nilai state-nya kapan saja dan dimana saja yang bisa disalahgunakan. Penyalahgunaan tersebut secara teknis ga bisa dicegah…
Kita sering mendengar bahwa code yang baik adalah yang gampang dibaca, gampang dimengerti, dan gampang dijaga. Object Oriented Programming (OOP) adalah salah satu orientasi pemrograman populer yang dapat memenuhi kriteria tersebut, IMHO. Namun, sebelum OOP booming, orang-orang terlebih dulu menggunakan pendekatan prosedural seperti pada bahasa C. Kebiasaan saat…
Boolean adalah tipe data yang hanya punya dua nilai. True dan False, hanya itu. Pada beberapa bahasa pemrograman atau database nilai True dan False bisa diganti dengan bilangan 1 dan 0. Boolean ini sangat sederhana karena hanya ada 2 kemungkinan tersebut. Saking simple-nya, pemakaian Boolean ini seringkali menjebak hingga sulit dibaca dan di-maintain. Berikut…
DISC adalah tes kepribadian yang paling sering gw temui saat interview kerja. DISC ini parameternya berdasarkan nilai-nilai, keyakinan dan perspektif yang dikembangkan William Moulton Marston. Hasil DISC test gw adalah C (Conscientiousness). Type C sering disebut sebagai analyst. Biasanya Type C bekerja sebagai bagian keuangan, software engineer, analis investasi…