40
3.5. Рефакторинг кода
Рефакторинг или переработка кода – это методика улучшения
качества кода без изменения его функциональности и нарушения его
работоспособности.
Если разрабатываемый программный продукт должен
эксплуатироваться достаточно долго, его код будет неизбежно меняться.
Традиционные методики разработки программных продуктов отрицательно
относятся к частым изменениям программного кода. Считается, что если
программный
продукт близок к завершению или уже эксплуатируется,
вносить в него изменения слишком рискованно. Поэтому разработчики
боятся любых изменений кода.
Рефакторинг, напротив, формирует привычку у разработчиков
постоянно менять код. Постоянное изменение кода – это реальность, с
которой приходится мириться, поэтому одной из первоочередных задач
является сокращение затрат на эти изменения. Получив код, обладающий
нужной функциональностью, необходимо убрать из него весь «строительный
мусор». Сопровождение чистого кода существенно облегчается. Рефакторинг
не только обеспечивает чистоту кода, но и упрощает его модернизацию. Это
происходит за счет того, что рефакторинг улучшает структуру программного
обеспечения. Плохо структурированный программный код труден для
понимания и модификации. Он, как правило, содержит дублирующий
код.
Удаление дублирующего кода напрямую связано с улучшением его
структуры.
Код, в отношении которого выполнен рефакторинг, проще
оптимизировать, так как, во-первых, упрощается поиск наиболее критичных
участков кода, а во-вторых, упрощается внесение изменений, повышающих
производительность кода.
Рефакторинг увеличивает скорость создания программ. На первый
взгляд, это утверждение кажется спорным, поскольку для
выполнения
рефакторинга требуется дополнительное время. Однако это время
расходуется только в процессе разработки кода и значительно меньше
времени, которое потребуется в дальнейшем на модернизацию кода, если для
этого кода рефакторинг не выполнялся. Итак, прилагая дополнительные
усилия в начале, можно получить выигрыш в будущем. Но одним из
основных принципов гибких технологий
является «не делать сегодня того,
что можно отложить на завтра». Чтобы разрешить это противоречие,
необходимо принять во внимание, что в гибких технологиях разработки ПО
не рекомендуется делать то, что может оказаться полезным завтра, а
рефакторинг – это то, что обязательно окажется полезным завтра.
Еще одним преимуществом рефакторинга является то, что он помогает
найти ошибки в программном обеспечении.
Рефакторинг рекомендуется выполнять:
• при добавлении новой функции;
• при исправлении ошибок;