if (a == true)
От: Alekzander  
Дата: 03.09.24 09:04
Оценка: :))
Сразу оговорюсь, что вопрос больше не про философию программирования, а про психологию программистов.

Когда я давным-давно впервые увидел в коде сабж, то решил, что автор издевается (особенно без йода-сравнений). Но так действительно пишут, и нередко. В настоящий момент я думаю, что это глупый способ взять худшее из обоих миров.

О каких мирах речь? Есть такая практика — стараться использовать тип bool с большим разбором. Например, если есть упрощённая ("динозавровая") модель сервиса (или запущен, или нет — 50/50, состояния "запускается" и "глушится" принципиально не учитываются), надо не bool isStarted, а расписывать поле состояний (Started, NotStarted) в енаме. Логика тут такая, что если мы берём bool, то просто приспосабливаем другое, нерелевантное поле состояний только потому, что у него то же число элементов (два), а это, как вы понимаете, зашквар. Конечно, если правильно сформулировать имя (isStarted), то острота проблемы снижается, но всё равно "как-то, доктор, неаккуратненько". Особенно неаккуратненько это выглядит при рассматривании вызова функции с десятью bool'ами.

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

Так вот, у меня появилась гипотеза, что те, кто пишет if (service.IsStarted == true), просто слышали звон. Останавливаются на половине, пытаются изображать строгость, при этом не расписывая состояния для каждого кейса.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.