Мне тут подсказали что писать выражение за ифом в одну строку плохо потому что это “смесь которая читается тяжело”. И что лучше писать такие вещи через логические операторы, вроде isSome && effect().



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



Лично мне быстрее понимать менее выразительный, но более концентрированный код. По той же причине беру низкоконтрастную тему и узкий шрифт, см. пост выше.



А по поводу сайд-эффектов в логических выражениях - тут точно нет, потому что операторы && и || имеют семантику возврата значения, которая сильно диссонирует с логикой условного ветвления кода, да еще и баги может создавать в редких кейсах форматирования.



Из интересного: можно поискать ишьесы на подобные темы в prettier и посмотреть мой доклад про семантику в программировании.