Friend spotlight!
Whimsical Animations course
Friend spotlight!
NEW Whimsical Animations course
Friend spotlight! NEW Whimsical Animations course
huge discount only this week
Friend spotlight! Want to make your project stand out? NEW Whimsical Animations course huge discount only this week

Як рефакторити код

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

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

Код повинен стати чистішим.

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

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

Але таке буває і при роботі з особливо занедбаним кодом. Що б ви не поліпшили, код в цілому все одно залишається потворним. У цьому разі покращити код можна тільки повністю переписавши якісь його частини. Але пам’ятайте, що перед цим у вас повинні бути написані тести, а також запланований неабиякий шматок вільного часу.

В процесі рефакторингу НЕ створюється нова функціональність.

Не змішуйте рефакторинг і безпосередню розробку нових фічей. Намагайтеся розділяти ці процеси хоча б в рамках окремих комітів.

Всі існуючі тести повинні успішно проходити.

Існують два випадки, коли після рефакторингу ламаються тести:

  • Ви допустили помилку при зміні коду. Тут все просто - йдіть і виправте помилку.

  • Ваші тести були занадто низькорівневими. Частіше за все, це трапляється тоді, коли ваші тести перевіряють роботу приватних методів класів.

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