Рефакторинг кода: от причин включить его в цикл разработки до конкретных техник и инструментов
Читайте также:
Разработка и масштабирование высоконагруженных веб-систем: технические аспекты и вызовы.
Что такое рефакторинг кода
Со стороны неспециалиста может показаться, что в рефакторинге нет смысла. До и после все работает одинаково, значит, можно обойти этот этап и не тратить на него время и деньги. Особенно когда продукту есть куда расти: есть конкретный список того, что нужно исправить, добавить, изменить в продукте. На самом деле именно наведение порядка в кодовой базе в перспективе удешевляет и ускоряет внесение в него изменений, отражающихся на его функциональности и возможностях.
Зачем проводить рефакторинг, если программа работает нормально
Улучшение читаемости и как следствие упрощение покрытия кода тестами стоит того, чтобы закладывать ради этого время на рефакторинг. В любом сколько-то крупном проекте в какой-то момент разработчики начинают тратить на изучение кода больше рабочих часов, чем на написание. От организации и систематизации кодовой базы проекта зависит то, насколько просто будет с ней работать в плане навигации, изучения, поиска путей для масштабирования и т. п. Программисту в работе с хорошо обслуженным и поддерживаемым в порядке проектом не нужно каждый раз при внедрении какой-то возможности или исправлении выявленной ошибки распутывать клубок зависимостей между сущностями. Соответственно, часы на рефакторинг — работа на перспективу.
Откуда берется потребность в рефакторинге: почему разработчики сразу не пишут так, чтобы потом не переписывать
Разработка программного продукта всегда происходит с учетом текущих потребностей и ограничений. Никто намеренно не стремится написать код так, чтобы потом часами переписывать его для упрощения, повышения читабельности для упрощения самим себе его обслуживания, поддержки и масштабирования. Просто технологии развиваются, рынок меняется, а вместе с ним и требования. Это как с ремонтом в квартире: нельзя сделать его один раз так, чтобы ничего не ломалось, не изнашивалось, никогда не приходилось ничего менять, доделывать и обновлять.
Методы и инструменты рефакторинга
Инструменты для рефакторинга
Как минимизировать риски, связанные с рефакторингом
Что будет, если не включать рефакторинг в цикл разработки программного продукта