Рефакторинг кода на JavaScript. 2-e. изд. М. Фаулер
Рефакторинг — это процесс изменения программной системы, в ходе которого внешнее поведение кода остается неизменным при усовершенствовании его внутренней структуры. Это систематизированный способ очистки кода, минимизирующий возможность появления новых ошибок. По сути, рефакторинг кода представляет собой улучшение проекта уже после того, как этот код написан. “Улучшение проекта после написания кода” звучит непривычно. При нынешнем понимании процесса разработки программного обеспечения мы сначала создаем проект, а потом пишем код. Первым шагом идет проектирование, а уже затем кодирование. Со временем код будет изменяться, а целостность системы и ее соответствие первоначальному проекту постепенно размываться. Кодирование понемногу перестает быть инженерным искусством и превращается в хакерство. Рефакторинг же представляет собой нечто противоположное. Он позволяет, взяв плохой и беспорядочный проект, превратить его в ясно структурированный код. Каждый шаг этого преобразования чрезвычайно прост. Это может быть перемещение поля из одного класса в другой, выделение части исходного текста из метода и ее перемещение в отдельный метод, перемещение некоторых фрагментов кода в том или ином направлении иерархии классов. Кумулятивный эффект таких малозаметных изменений может привести к существенному улучшению программы. Этот процесс оказывается прямой противоположностью описанной выше тенденции постепенной деградации программного проекта. При рефакторинге изменяется баланс между разными этапами работ. Проектирование становится не отдельным начальным этапом разработки, а непрерывным процессом. В ходе работы над проектом вы постоянно рассматриваете возможность его улучшения. В результате получается программный проект, качество которого остается высоким все время работы над проектом.