Code style, single line statements и автоматический рефакторинг

kokoc88

Вот ещё одна тема, которую хотелось бы озвучить. (Пенартуру2 не читать, слишком опасно для его кости в голове.)
Имеется код, который некоторыми джавистами может считаться плохим:
if (disposed)
throw new ObjectDisposedException("cannot invoke methods on a disposed service proxy");
if (method == AUTHORIZE_METHOD)
throw new InvalidOperationException("the Authorize method must not be called explicitly");
Ошибки, связанные со скобками, на самом деле возникают не тогда, когда кто-то что-то хочет добавить к вычислению выражений. Мне кажется, что тем, кто может в этом случае чего-то не заметить, лучше не программировать совсем, а пойти работать в макдональдс. Правда там они будут забывать, что клиент просил колу без льда, а к картошке надо положить уже оплаченный сырный соус. Но это так, лирическое отступление.
Так вот, если ошибки, связанные с {} возникают у нормального человека, то это как правило причина рефакторинга, причём автоматического. Человек может разбить выражение на два, и т.п. Для всего этого существуют автоматизированые средства.
Часто в code style, даже Джавовских, пишут, что при выкидывании исключений, возвратах из функций и простых однострочных if-ах скобки ставить вовсе необязательно. К сожалению, не всегда удаётся поместить подходящий под эти условия код на одну строку. Поэтому я считаю, что приведённый мною блок кода не имеет никаких проблем.
Ещё скобки ставят для того, чтобы облегчить задачи code review. Когда человек будет просматривать код, ему может быть проще оценить такую характеристику, как cyclomatic complexity.
В любом случае, право на жизнь имеют два подхода. А видят только один и в упор не признают другого только те, чей радиус кругозора бесконечно мал.

okis

Ещё скобки ставят для того, чтобы облегчить задачи code review. Когда человек будет просматривать код, ему может быть проще оценить такую характеристику, как cyclomatic complexity.
А в чём заключается необходимость оценки цикломатической сложности при code review и используя мозг? Разве это нельзя делать автоматически?

kokoc88

А в чём заключается необходимость оценки цикломатической сложности при code review и используя мозг? Разве это нельзя делать автоматически?
Можно. Поэтому я и написал слова "некоторым удобнее".

katrin2201

Поэтому я считаю, что приведённый мною блок кода не имеет никаких проблем.
Тоже так считаю. Более того, считаю, что если делать рефакторинг руками в нормальной среде, то и там напортачить очень тяжело.
Однако предпочитаю их ставить, ибо, как заметил пенартур в пред треде (о ужас =) не вижу никаких причин их не ставить.
Кроме того, считаю, что две темы про лишние переносы и про "лишние" скобки не стоят того внимания, которое им было тут уделено =)
Можно с ходу назвать десяток вещей, которые гораздо больше бесят, приводят к гораздо более тяжелым последствиям, и, к сожалению, гораздо чаще встречаются.

bleyman

Хахаха, чуваки, а давайте все спорщики за Единственный Правильный Метод Расстановки Скобок После "if" скажут своё мнение о FOIC (forced indentation of code типа петоновской. Там этого вопроса тупо не возникает и всем всё понятно. Правда, количество совсем пустых (не занятых даже фигурной скобкой) строк обычно несколько возрастает, майку может быть неприятно, лол.

Maurog

есть замечательное правило по поводу code review, которое я прочитал (не помню где кажется, в МакКоннеле:
не придирайтесь к мелочам

kruzer25

давайте все спорщики за Единственный Правильный Метод Расстановки Скобок После "if" скажут своё мнение о FOIC (forced indentation of code типа петоновской
Мне петоновский вариант не очень приятен, со скобками как-то привычнее, но пользоваться им можно.
Оставить комментарий
Имя или ник:
Комментарий: