Sebagai programmer saya merasa bahwa tujuan kami adalah untuk memberikan abstraksi yang baik pada model domain dan logika bisnis yang diberikan. Tapi di mana abstraksi ini harus berhenti? Bagaimana membuat trade-off antara abstraksi dan semua manfaatnya (fleksibilitas, kemudahan mengubah dll.) Dan kemudahan memahami kode dan semua manfaatnya.
Saya percaya saya cenderung menulis kode yang terlalu abstrak dan saya tidak tahu seberapa bagusnya; Saya sering cenderung menulis seperti itu semacam kerangka kerja mikro, yang terdiri dari dua bagian:
- Modul Mikro yang terhubung dalam kerangka mikro: modul ini mudah dipahami, dikembangkan, dan dipelihara sebagai satu kesatuan. Kode ini pada dasarnya mewakili kode yang benar-benar melakukan hal-hal fungsional, dijelaskan dalam persyaratan.
- Menghubungkan kode; sekarang di sini saya percaya berdiri masalahnya. Kode ini cenderung rumit karena terkadang sangat abstrak dan sulit dipahami pada awalnya; ini muncul karena fakta bahwa itu hanya abstraksi murni, dasar dalam realitas dan logika bisnis yang dilakukan dalam kode yang disajikan 1; dari alasan ini kode ini tidak diharapkan untuk diubah setelah diuji.
Apakah ini pendekatan yang baik dalam pemrograman? Itu saja, memiliki kode perubahan yang sangat terfragmentasi dalam banyak modul dan sangat mudah dipahami dan kode yang tidak berubah sangat kompleks dari abstraksi POV? Haruskah semua kode menjadi seragam seragam (yaitu kode 1 lebih kompleks dan saling terkait dan kode 2 lebih sederhana) sehingga siapa pun yang melihatnya dapat memahaminya dalam jumlah waktu yang wajar tetapi perubahan itu mahal atau solusi yang disajikan di atas baik, di mana "Mengubah kode" sangat mudah dipahami, disadap, diubah dan "menghubungkan kode" agak sulit.
Catatan: ini bukan tentang keterbacaan kode! Kedua kode pada 1 dan 2 dapat dibaca, tetapi kode pada 2 dilengkapi dengan abstraksi yang lebih kompleks sedangkan kode 1 dilengkapi dengan abstraksi sederhana.