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

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

Проблема

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

Рішення

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

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

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

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

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

Переваги

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

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

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

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

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

Замучились читати?

Збігайте за подушкою, в нас тут контенту на 7 годин читання.

Або спробуйте наш новий інтерактивний курсу. Він набагато цікавіший за банальний тест.

Дізнатися більше...