Глянь мій новий курс по Git! Привіт! Глянь мій новий курс по Git! Привіт! Глянь мій новий курс по Git на GitByBit.com! Привіт! Хочеш класно освіжити Git? Глянь мій новий курс на GitByBit.com!

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

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

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

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

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

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

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

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

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

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

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

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

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

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