Итак, вы знаете, как при программировании, внезапно осознав возможности повторного использования кода, вы решаете объединить две предыдущие написанные вами программы в одну, не осознавая всей сложности и ошибок компилятора, которые это влечет за собой? Это мой рассказ именно об этом опыте…
Я работаю над игрой под названием Fantastic Reboot – как следует из названия, это перезагрузка моей более ранней игры под названием Fantastle. Я решил объединить фрагменты из Taller Tower, еще одной игры, которую я сделал, в фантастическую перезагрузку. Именно в этот момент, после того, как я начал рефакторинг, появились ошибки компилятора… в какой-то момент у меня было 2,5 тысячи ошибок, которые смотрели мне в лицо!
Хорошей новостью является то, что чуть более половины из них легко исправляются с помощью функции поиска и замены (или инструментов IDE), чтобы исправить ссылки, которые сломались во время переименования. Остальное требовало некоторых глубоких размышлений о том, как объединить две похожие, но разные реализации вещей, и иметь дело с БОЛЬШИМ количеством неработающих ссылок после слияния… и неизбежные нарушения цепочки зависимостей, приводящие к тому, что другая вещь нуждается в объединении.
Двадцать или около того итераций этого, и количество ошибок медленно уменьшалось… с 2,5 к до 1,2к, затем 800, 600, … 10, 6, 2, и, наконец, 0! Компилятор доволен, но… конечно, программа не запускается из-за неудовлетворительной проверки во время выполнения. Таким образом, моя работа далека от завершения.
Пусть это будет важным уроком: рефакторинг может быть в значительной степени итеративным процессом, но в сочетании с подходом “разделяй и властвуй” и знанием того, что некоторые исправления добавят новые ошибки, вы в конечном итоге добьетесь своего, как и я.
Оригинал: “https://dev.to/wrldwzrd89/java-compiler-error-cascades-and-fixing-them-b37”