Dari tampilan pertanyaan codereview yang Anda tanyakan, Anda berada pada tahap berlebihan. Saya pikir ini adalah masalah yang agak umum di antara orang-orang yang menemukan pentingnya desain yang baik.
Ini sebenarnya langkah alami dan bahkan mungkin perlu dengan keahlian apa pun yang Anda pilih. Ketika Anda mulai mempelajari sesuatu, semakin Anda maju dalam pengetahuan tentang keterampilan dan semakin Anda menerapkannya, semakin baik hasil Anda dan tampaknya Anda langsung menuju penguasaan. Masalahnya adalah, bahwa target baru Anda menjadi bukan kualitas hasil Anda, tetapi seberapa banyak pengetahuan yang telah Anda kumpulkan pada keterampilan Anda.
Penguasaan sejati suatu keterampilan melibatkan pemahaman tentang kapan menggunakannya dan kapan tidak. Terlalu sering menggunakan keterampilan itu mungkin satu-satunya cara untuk mengembangkan pemahaman seperti itu. Tentu, Anda dapat membaca tentang ini, tetapi membaca bukanlah pengganti pengalaman.
Untuk satu hal, membaca tentang pola desain adalah awal yang buruk. Membaca tentang prinsip-prinsip desain OO, seperti SOLID dan GRASP lebih baik. Setelah berkenalan dengan mereka, mempelajari pola desain umum adalah ide yang baik, karena Anda akan melihat bagaimana prinsip-prinsip itu dapat diterapkan untuk membentuk idiom konkret.
Dikatakan, bahwa ketika pola muncul dalam penggunaan bahasa, maka bahasa tersebut sebenarnya tidak memiliki fitur. Meskipun pernyataan ini sangat radikal, ada banyak kebenaran di dalamnya. Karena itu saya sarankan, Anda melihat dan bermain-main dengan bahasa lain untuk mendapatkan pemahaman yang lebih baik tentang konsep yang ingin Anda gunakan, dan juga untuk belajar tentang konsep baru. Daftar singkat adalah Squeak, Ruby dan Lisp.
Adapun Daftar, rekomendasi pribadi saya adalah Struktur dan Interpretasi Program Komputer , yang mengajari saya banyak hal tentang desain, dengan menunjukkan kepada saya bagaimana seseorang dapat dengan mudah menciptakan solusi yang kuat untuk masalah yang kompleks, dengan sedikit lebih dari abstraksi yang jelas dan komposisi (de) dalam cara top-down.
Jadi, inilah yang saya sarankan:
- tulis kode (dan coba pahami apa yang membuatnya buruk)
- membaca kode (dan mencoba memahami apa yang membuatnya baik)
- bertukar pengetahuan dengan orang lain. ujilah ide-ide Anda.