У меня большой беспорядок кода. По общему признанию, я написал это сам - год назад. Это не очень хорошо прокомментировано, но это тоже не очень сложно, поэтому я могу понять это - просто недостаточно хорошо, чтобы знать, с чего начать, рефакторинг.
Я нарушал все правила, о которых я читал за последний год. Есть классы с несколькими обязанностями, есть косвенные обращения (я забываю термин - что-то вроде foo.bar.doSomething()
), и, как я уже сказал, это не очень хорошо прокомментировано. Кроме того, это начало игры, поэтому графика сочетается с данными или местами, где я пытался отделить графику и данные, я сделал данные public
, чтобы графические объекты могли получить доступ необходимые ему данные...
Это огромный беспорядок! С чего начать? Как бы вы начали с чего-то подобного?
Мой текущий подход заключается в том, чтобы принимать переменные и переключать их на частные, а затем реорганизовывать фрагменты, которые ломаются, но этого, похоже, недостаточно. Пожалуйста, предложите другие стратегии для преодоления этого беспорядка и превращения его в нечто чистое, чтобы я мог продолжить, где я остановился!
Обновление через два дня: Я рисую диаграммы UML, подобные моим классам, и нахожусь на пути к "Low Hanging Fruit". Я даже нашел некоторые фрагменты кода, которые были началом новых функций, но поскольку я пытаюсь уменьшить все, я смог удалить эти биты и сделать проект чистым. Я, вероятно, собираюсь реорганизовать как можно больше, прежде чем прикладывать свои тестовые примеры (но только те вещи, которые на 100% наверняка не влияют на функциональность, конечно!), Так что мне не придется реорганизовывать тестовые примеры, поскольку я изменить функциональность. (как вы думаете, я делаю это правильно или, по вашему мнению, мне будет легче сосать его и сначала написать тесты?)
Пожалуйста, проголосуйте за лучший ответ, чтобы я мог честно отметить его! Не стесняйтесь добавлять свой собственный ответ в связку, еще есть место для вас! Я дам ему еще один день или около того, а затем, вероятно, отметю самый высокий голос, как принято.
Спасибо всем, кто ответил до сих пор!
25 июня 2010 года: я обнаружил сообщение в блоге, которое прямо отвечает на этот вопрос у кого-то, у кого, похоже, есть хорошее понимание программирования: (или, может быть, нет, если вы прочтете его статью:))
С этой целью я делаю четыре вещи, когда я нужен код рефакторинга:
- Определите, какой целью был код.
- Нарисуйте диаграммы UML и действия для соответствующих классов
- Магазин для правильных шаблонов проектирования.
- Определение более четких имен для текущих классов и методов.