Рефакторинг кода

Что в этой статье

Вкратце расскажу что такое рефакторинг, зачем он нужен, как и когда его нужно делать. Будет интересна людям, которые хотят разобраться в теме.

Что такое рефакторинг?

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

Зачем нужен рефакторинг?

Для более быстрого темпа разработки. Это обратная сторона вашего проекта. С одной стороны ею пользуются покупатели, которые приносят деньги, с другой — разработчики, которые доставляют новые фичи. Чем понятнее будет код, тем легче будет в нем разобраться, и тем быстрее происходит разработка.

Что происходит на практике?

Возьмем за пример разработку нового проекта, который основывается на одном из популярных фреймворков, который предоставляет много готовой функциональности из коробки. Темп разработки быстрый и держится таким какое-то время.

По течению времени, в проект добавляются новые разработчики и пишется еще больше кода. Где-то срочную фичу подпирают костылями, потому что нет времени написать нормально. В какой-то момент в проекте становится столько кода, что в нем трудно разобраться и еще труднее добавить новую функциональность.

Что же делать?

Рефакторить код и делать его разумно — это означает заниматься им каждый день, маленькими кусочками. Рефакторинг не должен занимать много времени.

Хорошо рефакторинг делать в паре. В какой-то момент можно потеряться, здесь поможет коллега: объяснит либо отклонит ваш код. Не бойтесь отказываться от вашего неудачного рефакторинга.

На данный момент в современные IDE интегрированы средства автоматического рефакторинга. Попробуйте его.

заключение

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

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

Рефакторинг не является серебряной пулей — это искусство, которому можно научиться, уметь балансировать между костылями и хорошим кодом, вовремя остановиться писать “самый лучший код в мире”, который не работает.

Что почитать

Классику от Мартина Фаулера “Рефакторинг”
Попрактиковаться на refactoring.guru — если нет желания читать толстую книгу

Leave a Reply

Your email address will not be published. Required fields are marked *


+ один = 6