Чекстайл жалуется на следующее:
return (null == a ? a : new A());
и говорит, что паренсы не нужны.
В то время как утверждение, безусловно, прекрасно работает без них, с их присутствием это кажется намного более читабельным - иначе, когда я читаю это, я склонен видеть:
return null
сначала, а затем нужно сделать паузу, чтобы рассмотреть оставшуюся часть
== a ? a : new A();
, так как мой мозг уже пошел одним путем
Кроме того, я склонен делать то же самое всякий раз, когда я вижу троичного оператора, если только он не сгруппирован в парены.
Итак: должны ли парены вокруг троицы быть стандартом де-факто? Есть ли какая-либо причина не помещать их туда?
Нет, это не должно быть стандартом де-факто. Я предпочитаю без скобок.
Я думаю, что единственная причина, по которой они должны быть здесь, — это принудительный порядок оценки или уточнение запутанной строки.
Поскольку основание для вашего вопроса связано с актом чтения кода , я подойду к вопросу с этой точки зрения.
Один из основных принципов так называемых программ обучения «скорочтению» заключается в том, что они пытаются заставить читателя развить гештальт строки текста, а не читать его последовательно, слово за словом. -слово . Вы можете попытаться взять страницу из их книги и отступить от своего кода — буквально, если это необходимо — чтобы получить представление о полной строке, а не рассматривать акт чтения, как если бы это был акт разбора токена за токеном.
В качестве альтернативы вы можете использовать редактор, который позволяет настраивать стили: вы можете сделать тернарный оператор другим цветом, чтобы он бросался в глаза. Notepad++, например, имеет ряд встроенных тем, которые делают это, как и многие другие редакторы.