Рефакторинг

Контрольований процес
покращення вашого коду
без написання нової
функціональності.

Що таке Рефакторинг?

Рефакторинг — це контрольований процес покращення вашого коду, без написання нової функціональності.

Задача рефакторингу — зменшити технічний борг.

Результат рефакторингу — чистий код та простий дизайн.

Чистий код = Простий код

  • Чистий код проходить усі тести.
  • Чистий код очевидний для інших програмістів.
  • Чистий код не містить дублювання.
  • Чистий код містить мінімум класів та інших рухомих частин.

Чистий код легше і дешевше підтримувати.

Як проходить рефакторинг?

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

Чекліст правильно проведеного рефакторинга:

  1. В процесі рефакторинга не створюється нова функціональність.
  2. Всі існуючі тести повинні успішно проходити.
  3. Код повинен стати чистішим.

Коли потрібно робити рефакторинг?

Правило «трьох разів»

  1. Роблячи щось вперше, ви просто це робите.
  2. Роблячи щось аналогічне вдруге, ви морщитеся від необхідності повторення, але все-таки повторюєте те ж саме.
  3. Роблячи щось схоже в третій раз, ви починаєте рефакторинг.

Коли додаєте фічу

  1. Допомагає зрозуміти чужий код. Якщо код, в який потрібно додати нову фічу, недостатньо зрозумілий, рефакторинг дозволяє зробити його очевиднішим як для вас, так і для того, хто працюватиме з ним в майбутньому.
  2. Полегшує додавання фічі. Після рефакторинга додавання нової фічі відбувається значно гладше і займає менше часу.

Коли виправляєте баг

Помилки — як таргани, люблять жити в темних затхлих місцях вашого коду. Спробуйте навести порядок в коді і помилки знайдуться самі собою.

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

Під час код-рев'ю

Якщо ви робите рев'ю нового коду, можливо це буде останнім шансом почистити код, перед тим як він з'явиться у публічному доступі.

Найкраще проводити таке рев'ю разом з автором коду. В цьому випадку, ви будете пропонувати автору зміни, і разом вирішувати, наскільки складно виконати той чи інший рефакторинг. При цьому, невеликі зміни можна буде тут же здійснювати.