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

Видалення керуючого флагу

Також відомий як: Remove Control Flag

Проблема

У вас є булева змінна, яка грає роль керуючого флагу для декількох булевих виразів.

Рішення

Використайте break, continue і return замість цієї змінної.

Причини рефакторингу

Керуючи флаги прийшли до нас з тих «бородатих» днів, коли гарним стилем програмування вважалося мати у функції одну вхідну точку (рядок оголошення функції) і одну вихідну точку (у самому кінці функції).

У сучасних мовах програмування цей підхід застарів, оскільки в нас з’явилися спеціальні оператори для керування ходом програми в циклах і інших складних конструкціях:

  • break: зупиняє виконання циклу;

  • continue: зупиняє виконання поточного кола циклу і переходить до перевірки умови циклу і наступної ітерації;

  • return: зупиняє виконання усієї функції і повертає її результат, якщо він поданий в цьому операторові.

Переваги

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

Порядок рефакторингу

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

  2. Замініть його на break, якщо це вихід з циклу або continue, якщо це вихід з ітерації.

  3. Приберіть весь інший код і перевірки, пов’язані з керуючим флагом.