Buat sedherek, sedulur dan sodara sekalian yang sehari-harinya mencari seupil berlian dengan menulis kode (code for food), ada berapa kode program yang Anda buat tapi nggak bisa dipakai lagi? Apakah semua program Anda dibuat dari nol? Apakah program-program lama Anda ndak bisa dipake lagi (reused)? (non programmer bacanya sambil merem aja..- red)
Mungkin catatan kecil ini bisa membantu. Bahasa jowonya, The Dependency Inversion Principle (DIP). Mungkin sebelum ke DIP, perlu dipahami dulu, bagaimana program itu jelek secara desain (bad design). Ada 3 komponen:
- Rigidity, susah untuk diganti, sebab memiliki ketergantungan dengan yang lainnya. Artinya harus mengecek banyak hal sebelum mengganti perilaku suatu komponen atau fungsi.
- Fragility, artinya rentan.Ini berarti bila satu komponen diganti, maka
nakan merusak komponen lainnya. - Immobility (duh ini yang paling jamak), tidak bisa digunakan kembali karena terikat erat dengan sistem dimana program itu dijalankan.
Memang konsep di atas terutama ditujukan dalam pemrograman berbasis obyek (OOP). Tapi bahasa prosedural mungkin bisa mengadopsi konsepnya (kumpulan fungsi yang menjadi library). Lalu bagaimana menghindari 3 komponen bad design di atas. Ada banyak cara dan prinsip, terutama jika kita sering melakukan refactoring (bayangin seperti normalisasi data saat ingin membuat database, ini adalah ‘normalisasi modul dan fungsi’).
Prinsip dari DIP adalah:
1. Modul level yang lebih tinggi, tidak boleh tergantung dengan modul level lebih rendah. Keduanya harus bergantung pada abstraksi.
2. Abstraksi tidak boleh bergantung pada detail. Detail yang harus bergantung pada abstraksi.
Apa ya maksudnya? PR buat Anda (ini memang penulis agak kurang ajar, ngasih PR ke pembacanya). Abis nulisnya kemaleman, mau pulang (ngeles.com).
slaah kteik? *junk for food*