Почему в настройках следует называть булеан опции так, чтобы их дефолт значение было false.
Причин несколько:
Двойное отрицание при использовании
// Если юзер активен
if (user.isActive) { ... }
// не неактивен
if (!user.isInactive) { ... }
Принцип "минимального конфига" или CoC (Convention over Configuration) или YAGNI (You Aren't Gonna Need It).
Большинство булевых флагов должны описывать доп возможности.
Это матчится с ожиданием пользователя получить по-умолчанию какую-то базу которую он будет адаптировать для своих особых случаев.
Снижает кривую обучения и позволяет вникать только в тот функционал который нужен ему.
Про это и так много написано, останавливаться здесь не будем, но кратко суть:
- По умолчанию функция выключена (false)
- Пользователь явно включает (true)
Feature Proof
В какой-то момент булеан может потребовать больше уточнения, включить как именно.
Ну например:
minification: false | true | { loose: boolean }Когда мы передаем
{ loose: boolean } это как бы естественно нам говорит что оно будет включено с этими настройкамиАльтернативы сильно хуже, смотрите сами:
disableMinificaton: { loose: true }или
disableMinificaton: false,
minificationOptions: {
loose: true
}