Рефакторинг

Программные продукты, подобно машинам и механизмам, подвержены старению. Хотя речь тут, конечно, не о физическом выходе из строя, а об устаревании моральном.

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

Итак, рефакторинг программы - это процесс преобразования ее внутренней структуры путем поэтапного внесения изменений в её код. Каждое из этих изменений в отдельности и все они в комплексе не меняют внешнюю схему работы программы.

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

Понятие рефакторина не следует смешивать с процессами оптимизации и реинжиниринга - хотя все они предполагают работу с кодами.

Оптимизация, подобно рефакторингу, обычно не изменяет внешнее поведение программы, только ускоряет ее работу - но код при этом не обязательно упрощается.

Реинжиниринг же осуществляется для расширения набора функций программного обеспечения.

Практически любой программный продукт требует рефакторинга - постоянного или периодического в зависимости от сложности системы.

Когда Вашему сайту нужен рефакторинг?

- Необходимо системе добавить новую функцию (осуществить реинжиниринг), внедрение которой требует преобразования существующего программного решения.

- Необходимо исправить в работе системы ошибку, при этом сразу выявить причины ее возникновения не удается.

- В командной разработке возникают определенные трудности, вызванные сложной логикой программы (например, дублирование кода, слишком много неупорядоченных данных и т.д.).

 

Мы рекомендуем не игнорировать процесс рефакторинга. Это своеобразная «гигиена» кода программы, своевременное проведение которой гарантирует стабильную работу системы и легкое, внедрение новых функций.