Судя по тому, что вы задали вопрос о пересмотре кода, вы находитесь на стадии переутомления. Я думаю, что это довольно распространенная проблема среди людей, которые осознают важность хорошего дизайна.
На самом деле это естественный и, возможно, даже необходимый шаг с любым навыком, который вы приобретаете. Когда вы начинаете что-то изучать, чем больше вы продвигаетесь в знании навыка и чем больше вы применяете его, тем лучше ваши результаты, и кажется, что вы стремитесь к мастерству. Проблема в том, что вашей новой целью становится не качество ваших результатов, а то, сколько знаний вы накопили на свои навыки.
Истинное овладение навыком подразумевает понимание того, когда его использовать, а когда нет. Злоупотребление этим навыком, вероятно, единственный способ развить такое понимание. Конечно, вы можете прочитать об этом, но чтение не заменит опыт.
Во-первых, чтение шаблонов проектирования - плохое начало ИМХО. Лучше читать о принципах проектирования ОО, таких как SOLID и GRASP . После ознакомления с ними хорошей идеей будет изучение общих шаблонов проектирования, потому что вы увидите, как эти принципы можно применять для формирования конкретных идиом.
Утверждается, что, когда в использовании языка появляются шаблоны, у языка фактически отсутствует особенность. Хотя это утверждение очень радикально, в нем много правды. Поэтому я бы посоветовал вам взглянуть и поиграть с другими языками, чтобы лучше понять концепции, которые вы хотите использовать, а также узнать о новых концепциях. Шорт-лист будет Squeak, Ruby и Lisp.
Что касается Листа, моя личная рекомендация - « Структура и интерпретация компьютерных программ» , которая многому научила меня в дизайне, показав мне, как легко можно создавать надежные решения сложных проблем, с чуть более чем чистой абстракцией и (де) композицией в нисходящая манера.
Итак, вот что я предлагаю:
- написать код (и попытаться понять, что делает его плохим)
- читать код (и пытаться понять, что делает его хорошим)
- обмениваться знаниями с другими людьми. Проверь свои идеи.