Mike
|
Ызарг
|
|
|
|
Рег.: 02.11.2002
|
Сообщений: 8098
|
|
Рейтинг: 2147
|
|
Code style, single line statements и автоматический рефакторинг
30.01.2009 14:06
|
|
|
Вот еще одна тема, которую хотелось бы озвучить. (Пенартуру2 не читать, слишком опасно для его кости в голове.)
Имеется код, который некоторыми джавистами может считаться плохим:
code: 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.
В любом случае, право на жизнь имеют два подхода. А видят только один и в упор не признают другого только те, чей радиус кругозора бесконечно мал.
Редактировал DarkGray (30.01.2009 14:55)
|
|
vissi
|
|
|
|
|
Рег.: 30.09.2007
|
Сообщений: 9275
|
|
Рейтинг: 8222
|
|
Re: Code style и single line statements
[re: Mike]
30.01.2009 14:13
|
|
|
В ответ на:
Еще скобки ставят для того, чтобы облегчить задачи code review. Когда человек будет просматривать код, ему может быть проще оценить такую характеристику, как cyclomatic complexity.
А в чем заключается необходимость оценки цикломатической сложности при code review и используя мозг? Разве это нельзя делать автоматически?
|
|
|
Mike
|
Ызарг
|
|
|
|
Рег.: 02.11.2002
|
Сообщений: 8098
|
|
Рейтинг: 2147
|
|
Re: Code style и single line statements
[re: vissi]
30.01.2009 14:31
|
|
|
Quote:
А в чем заключается необходимость оценки цикломатической сложности при code review и используя мозг? Разве это нельзя делать автоматически?
Можно. Поэтому я и написал слова "некоторым удобнее".
|
|
alepar
|
|
|
|
|
Рег.: 18.02.2004
|
Сообщений: 9216
|
|
Рейтинг: 3643
|
|
Re: Code style и single line statements
[re: Mike]
30.01.2009 14:44
|
|
|
Quote:
Поэтому я считаю, что приведенный мною блок кода не имеет никаких проблем.
Тоже так считаю. Более того, считаю, что если делать рефакторинг руками в нормальной среде, то и там напортачить очень тяжело. Однако предпочитаю их ставить, ибо, как заметил пенартур в пред треде (о ужас =) ), не вижу никаких причин их не ставить.
Кроме того, считаю, что две темы про лишние переносы и про "лишние" скобки не стоят того внимания, которое им было тут уделено =) Можно с ходу назвать десяток вещей, которые гораздо больше бесят, приводят к гораздо более тяжелым последствиям, и, к сожалению, гораздо чаще встречаются.
|
Whatever you do in life will be insignificant, but it's very important that you do it. |
|
Fj_
|
Carpal Tunnel
|
|
|
|
Рег.: 12.09.2004
|
Сообщений: 8795
|
|
Рейтинг: 3287
|
|
Re: Code style, single line statements и автоматический рефакторинг
[re: Mike]
30.01.2009 22:56
|
|
|
Хахаха, чуваки, а давайте все спорщики за Единственный Правильный Метод Расстановки Скобок После "if" скажут свое мнение о FOIC (forced indentation of code), типа петоновской. Там этого вопроса тупо не возникает и всем все понятно. Правда, количество совсем пустых (не занятых даже фигурной скобкой) строк обычно несколько возрастает, майку может быть неприятно, лол.
|
The data is the error (c)IIS FTP Server. |
|
horror
|
гонобобель
|
|
|
|
Рег.: 30.09.2002
|
Сообщений: 3784
|
|
Рейтинг: 2137
|
|
Re: Code style, single line statements и автоматический рефакторинг
[re: Mike]
30.01.2009 23:59
|
|
|
есть замечательное правило по поводу code review, которое я прочитал (не помню где), кажется, в МакКоннеле: не придирайтесь к мелочам
|
|
penartur2
|
|
|
|
|
Рег.: 16.06.2005
|
Сообщений: 54495
|
|
Рейтинг: 429
|
|
Re: Code style, single line statements и автоматический рефакторинг
[re: Fj_]
31.01.2009 00:36
|
|
|
В ответ на:
давайте все спорщики за Единственный Правильный Метод Расстановки Скобок После "if" скажут свое мнение о FOIC (forced indentation of code), типа петоновской
Мне петоновский вариант не очень приятен, со скобками как-то привычнее, но пользоваться им можно.
|
Я ушел на новый форум. Там правовое государство. А еще можно удобно листать аплоад ![;)](/images/graemlins/wink.gif) |
|
|
|