З вигляду питання про перегляд коду, який ви задали, ви перебуваєте на стадії перестарання. Я думаю, що це досить поширена проблема серед людей, які виявляють важливість хорошого дизайну.
Це насправді природний і, мабуть, навіть необхідний крок при будь-якому вмінні, яке ви підбираєте. Коли ви починаєте чомусь вчитися, чим більше ви просуваєтесь у знанні навички і чим більше ви його застосовуєте, тим кращі ваші результати і здається, ніби ви прямували до майстерності. Проблема полягає в тому, що вашою новою ціллю стає не якість ваших результатів, а скільки знань ви накопичили на своїй майстерності.
Справжнє оволодіння вмінням передбачає розуміння того, коли ним користуватися, а коли не слід. Зловживання цим вмінням, мабуть, єдиний спосіб розвинути таке розуміння. Звичайно, ви можете прочитати про це, але читання не замінює досвід.
З одного боку, читання про шаблони дизайну - це поганий старт IMHO. Читання про принципи дизайну OO, такі як SOLID та GRASP , краще. Ознайомившись із ними, вивчення загальних моделей дизайну є хорошою ідеєю, адже ви побачите, як ці принципи можна застосувати для формування конкретних ідіом.
Стверджується, що коли у вживанні мови з’являються закономірності, то мова фактично не має особливості. Хоча це твердження дуже радикальне, в ньому є багато правди. Тому я б запропонував вам переглянути і пограти з іншими мовами, щоб краще зрозуміти поняття, які ви хочете використовувати, а також дізнатися про нові поняття. Шорт-лист буде Скрік, Рубі та Лісп.
Що стосується Ліста, то моя особиста рекомендація - « Структура та інтерпретація комп’ютерних програм» , яка дуже багато навчила мене з дизайну, показавши мені, як без особливих зусиль можна створити надійні рішення складних проблем, маючи трохи більше, ніж чітку абстракцію та (де) склад у спосіб зверху вниз.
Отже ось що я пропоную:
- написати код (і спробуйте зрозуміти, що це робить погано)
- прочитати код (і спробувати зрозуміти, що це робить добре)
- обмінюватися знаннями з іншими людьми. поставити свої ідеї на випробування.