Я знаю, що це може бути дуже корисним для конкретного випадку, але мені здається, що це занадто часто цікавиться. Чи є загалом кращий синтаксис.
Я не запитую, який найкращий підхід, коли я виконую функцію, я запитую, чи слід я вийти зранку чи я просто не повинен викликати функцію.
Оберніть, якщо навколо дзвінка функції
if (shouldThisRun) {
runFunction();
}
Увімкніть, якщо ( охоронець ) у функції
runFunction() {
if (!shouldThisRun) return;
}
Остання опція, очевидно, має потенціал зменшення дублювання коду, якщо цю функцію викликають кілька разів, але іноді не потрібно додавати її сюди, оскільки тоді ви можете втратити єдину відповідальність функції.
Ось приклад
Якщо у мене є функція updateStatus (), яка просто оновлює стан чогось. Мені потрібно лише оновлення статусу, якщо статус змінився. Я знаю місця в моєму коді, де статус може змінитися, і я знаю інші місця, де він викликає зміни.
Я не впевнений, чи це лише я, але мені здається дещо брудним перевірити цю внутрішню функцію, оскільки я хочу зберегти цю функцію якомога більш чистою - якщо я її зателефоную, я очікую, що стан буде оновлений. Але я не можу сказати, чи краще перервати дзвінок під контролем у кількох місцях, де я знаю, що він може не змінитися.