Разве рефакторинг – это не переделка? ведь она один из главных источников ошибок

Да, это переделка, и она способствует появлению дополнительных ошибок. Если пользователям нужно что-то изменить в конце проекта, то в ходе доработки команда может случайно их допустить. Но рефакторинг – это переделка особого рода, которая предотвращает ошибки. Рефакторинг на протяжении всего проекта дает вам исходный код, состоящий из более мелких естественных многоразовых модулей. Альтернатива хорошо знакома большинству опытных программистов – это трудно изменяемый исходный код.

Переделка – это традиционный источник ошибок в водопадных проектах. Одна из причин в том, что архитектура становится более сложной, хрупкой, код приобретает «душок», что затрудняет внесение изменений. Но что если ошибки добавляются в процессе рефакторинга? Предположим, блок кода выполняет две разные функции, а разработчик извлекает фрагмент кода в процедуру, обеспечивающую только одну из них. Ответный ход XP-команды – разработка через тестирование, одна из основных XP-практик. Когда у программиста есть набор тестов для модуля, который подвергается рефакторингу, то эта процедура оказывается безопаснее. И действительно, гораздо спокойнее заниматься серьезным рефакторингом, имея модульные тесты. Поскольку рефакторинг – это, по определению, изменение структуры кода, не влияющее на его поведение, модульные тесты должны успешно завершаться и до рефакторинга, и после него. И на практике тесты в самом деле отлавливают почти все ошибки, которые могут быть внесены даже при обширном рефакторинге.

<< | >>
Источник: Эндрю Стеллман, Дженнифер Грин. Постигая Agile. Ценности, принципы, методологии. 2015

Еще по теме Разве рефакторинг – это не переделка? ведь она один из главных источников ошибок:

  1. ОДИН МИГ ТЕРПЕНИЯ — РАЗВЕ ЭТО ЦЕНА ЗА ВЕЛИЧАЙШИЙ УСПЕХ? 11. Упражнение«Я буду терпеть это в течение одного вдоха»
  2. Никогда не жалейте, что несколько поте­ряли на курсе. Ведь вы покупаете валюту не на один день. Ведь у вас есть стратегия.
  3. послушная Вселенная Вам охотно предоставит — она ведь работает по Вашим заявкам
  4. Квадрату :) Ты специально ошибок понаделал? Так, понял, не специально. Это намек на то, что хоть правильно пиши, хоть не правильно – один хрен. Так? Штирлиц
  5. Не используйте один источник для инфор­мации.
  6. Продажи — главный источник наличности. Начинаем продавать
  7. Нам сообщили, что некоторые чиновники Министерства транспорта хотят вернуть «Кросс Кантри», поэтому она может быть расформирована и передана другим железнодорожным операторам. Надеюсь, что это неправда. Я не думаю, что какой-либо другой оператор, участвующий в тендере, сможет предложить более выгодные условия, чем Virgin Group. На мой взгляд, всё это немного странно. Но это железнодорожный бизнес
  8. Характеристики финансового рынка России, или «А что это за девочка и где она живет?»
  9. Сбытовые издержки — это не самое главное
  10. Глава 17 Главное – это деньги
  11. Один контракт на зерно, один контракт на бонды и один контракт на S&P с учетом управления капиталом
  12. Главная дорога — это та по которой едет танк
  13. Рис.56. Параболика Параболика работает хорошо, если рынок в движении, но не тогда, когда он неподвижен. Если вы налетели на ложный сигнал два раза подряд, то это признак неподвижного рынка. Перестаньте использовать параболику, но продолжайте рассчитывать её на бумаге и подождите, пока она не даст вам два хороших сигнала. Параболика блистательно работает на быстро движущемся рынке. В данном случае она позволяет извлечь максимум прибыли из подъёма IBM на 30 пунктов и последовавшего спада, причём д
  14. Настоящее правило успеха: станьте бульдозером, который двигает горы, это гораздо ценнее, чем умение крикнуть: «Вон она, новая гора»
  15. Самое главное, что они ищут – это цена
  16. Один из способов сделать жизнь проще (мой самый любимый способ) это не раздумывать о том, что случилось в прошлом.
  17. Люди должны точно знать, за что они платят – это станет преимуществом наших абонентов. Джеймс очень точно подметил, когда спросил, за что люди готовы платить – за бобы или за упаковку? (Ведь чем больше бобов они купят, тем дешевле они будут стоить.)