Рубрики
Без рубрики

Каскады ошибок компилятора Java… и исправлять их

Итак, вы знаете, как при программировании, внезапно осознав силу повторного использования кода, вы решаете… Помечено программированием, java, кулером для воды, его рефакторингом.

Итак, вы знаете, как при программировании, внезапно осознав возможности повторного использования кода, вы решаете объединить две предыдущие написанные вами программы в одну, не осознавая всей сложности и ошибок компилятора, которые это влечет за собой? Это мой рассказ именно об этом опыте…

Я работаю над игрой под названием 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”