Saya pikir banyak orang mencoba solusi over-engineer. Mereka mengambil pendekatan "Adam & Hawa" ketika yang sedikit lebih praktis akan menyederhanakan banyak hal.
Kelas khusus tidak jahat, mereka adalah konsekuensi alami dari desain perangkat lunak yang sehat.
Banyak programmer, menurut saya, gagal memahami hal ini dan tidak ada buku yang saya ketahui yang membuat ini menjadi jelas.
Hal lain yang tentu saja membantu adalah TDD, yang memungkinkan Anda memahami "bagaimana" Anda akan menggunakan kelas dalam praktik dan dalam banyak kasus dapat menghemat hari, karena itu menunjukkan masalah / keterbatasan akhirnya di awal hari.
Terakhir, satu hal SANGAT penting yang akan saya cari jika saya adalah Anda adalah pola desain. Pola desain adalah cara orang lebih pintar daripada Anda atau saya memecahkan masalah pemrograman. Gagasan di balik pola, coba tebak ?, apakah itu tidak akan digunakan sebagai buku masak, resep yang baru saja Anda banting di sana, tetapi pikirkan dengan cermat dan pahami domain aplikasi Anda terlebih dahulu dan terutama.
Penggunaan pola yang bijak akan sangat mengurangi jumlah detail yang harus Anda kelola.
Perpustakaan pola desain yang bagus yang dirancang sesuai kebutuhan Anda, akan terbukti sangat berharga. Mari kita lihat contoh yang sangat sederhana hanya untuk meletakkan segala sesuatu dalam konteks:
bayangkan Anda memiliki formulir di mana, ketika tombol ditekan, formulir lain harus memperbarui sendiri. Ini adalah pola "pengamat" yang khas. Anda memiliki subjek dan beberapa pengamat, yang mendaftarkan diri mereka dengan subjek. Mengapa Anda perlu mengimplementasikan antarmuka? Anda bisa menambahkan metode, atau lebih baik lagi, menggunakan antarmuka untuk pengamat dan daftar umum untuk subjek. Sekarang Anda mendapatkan yang terbaik dari kedua dunia: kemandirian bagi pengamat dan tidak ada hal-hal yang luar biasa pada subjek.
Semoga ini masuk akal bagi Anda!
Andrea