Comments 73
Лучше — как удобнее
+6
1 вариант
+9
а вот мне нравится
if (condition)
{
…
}
else
{
…
}
Да, так я трачу еще 2 лишних строки. Возможно это не так рационально, но мне нравится.
if (condition)
{
…
}
else
{
…
}
Да, так я трачу еще 2 лишних строки. Возможно это не так рационально, но мне нравится.
+25
Ну я же просил :-)
+1
Пишу также, а из 2х предложенных вариантов предпочтение падает на 2й!
+1
выбираю ваш вариант
+1
Не две, а три.
+1
Зато по открывающимся и закрывающимся скобкам очень хорошо видна вложеность
0
Делаю точно так же. Глазу всегда понятно где что начинается и заканчивается + в редакторе легче работать.
0
Мне такой больше нравится!
0
Когда блок отрицательного условия не нуждается в комментарии, я пишу
Когда же необходимо пояснить каждый блок, то выходит так:
} else {
.Когда же необходимо пояснить каждый блок, то выходит так:
// comment
if (cond) {
// actions
}
// comment
else {
// actions
}
+7
Мне больше нравится:
if (cond) { // comment // actions } else { // comment // actions }
+5
Имхо очень плохо, когда condition нуждается в комменте. Лучше вместо такого:
// Проверям не лето ли сейчас…
if(month > 5 && month < 9) {
//…
}
Написать что-то вроде
if(nowIsSummer(month)) {
}
И глазам проще, и при просмотре кода мы уже не отвлекаемся на зачастую страшные условия…
// Проверям не лето ли сейчас…
if(month > 5 && month < 9) {
//…
}
Написать что-то вроде
if(nowIsSummer(month)) {
}
И глазам проще, и при просмотре кода мы уже не отвлекаемся на зачастую страшные условия…
0
Второй вариант. Ключевое слово else отвечает слову if, поэтому у них должны быть одинаковые отступы — код так лучше воспринимается. Отступы должны быть везде одинаковые — скажем 4 пробела, тогда очень легко читать код и фильтровать внутренние блоки.
+5
Первый вариант, благо Java coding conventions то же рекомендуют.
+6
Первый вариант, так я экономлю больше строк, следовательно больше кода вижу без скроллинга.
Просто ненавижу код, в котором на один экран влезает мало смысла.
И вообще, один умный человек мне когда-то говорил, что в идеале одна функция должна помещаться на один экран. Со временем я убеждаюсь в его правоте.
Просто ненавижу код, в котором на один экран влезает мало смысла.
И вообще, один умный человек мне когда-то говорил, что в идеале одна функция должна помещаться на один экран. Со временем я убеждаюсь в его правоте.
+5
Какой у вас экран? сколько в строчках кода?
+1
и еще вопросы:
какой у вас язык?
какой длины у вас средняя строчка?
на самом деле про экран маразм… размер метода должен быть таков чтобы его можно было единомоментно охватить мозгом (за исключением особых случаев типа хитрых мат методов и прочего)
какой у вас язык?
какой длины у вас средняя строчка?
на самом деле про экран маразм… размер метода должен быть таков чтобы его можно было единомоментно охватить мозгом (за исключением особых случаев типа хитрых мат методов и прочего)
0
> какой у вас язык?
Perl, мигрирую на Java
> какой длины у вас средняя строчка?
Сложно сказать, символов 15-25 наверное.
> единомоментно охватить мозгом
Сколько строчек может единомоментно охватить Ваш мозг?
В любом случае, если этот лимит измеряется в строчках, то чем больше смысла влезает в N строчек, тем больше мозг может единомоментно воспринять.
Perl, мигрирую на Java
> какой длины у вас средняя строчка?
Сложно сказать, символов 15-25 наверное.
> единомоментно охватить мозгом
Сколько строчек может единомоментно охватить Ваш мозг?
В любом случае, если этот лимит измеряется в строчках, то чем больше смысла влезает в N строчек, тем больше мозг может единомоментно воспринять.
0
К сожалению сейчас не могу померить, т.к. моя рабочая машина в офисе, а на ней разрешение 1280x1024 против ноута, с которого я пишу (1024x768).
На вскидку, штук 50.
На вскидку, штук 50.
0
if (flag)
.........{
..................action();
.........}
else
.........{
..................action2();
.........}
Хотя так стурктура получается слишком широкой.
.........{
..................action();
.........}
else
.........{
..................action2();
.........}
Хотя так стурктура получается слишком широкой.
-6
Да уж. Два-три вложенных ифа — и читать код станет невозможно.
+5
Мне как раз таки очень удобно на широченном мониторе.
+1
А каково другим это читать? Хорошо, если писатель и читатель — один человек. А у нас, например, девелоперов много, платформы разные, не всегда удобно читать широченный код. Стараемся укладываться с 80 символов. Ваш способ явно непригоден для такой разработки.
+1
я использую вариант 2, мне кажется он более удобен
1 вариант неудобен при длинных ветвлениях else if, ну а вообще не рекомендую его использовать.
1 вариант неудобен при длинных ветвлениях else if, ну а вообще не рекомендую его использовать.
0
Я предпочитаю первый вариант, потому что видна логическая связь else с iа
к примеру два подряд идущих цикла не связанны, поэтому второй начинается с новой строки, а if-else это единая конструкция.
Все это — мое мнение
к примеру два подряд идущих цикла не связанны, поэтому второй начинается с новой строки, а if-else это единая конструкция.
Все это — мое мнение
0
Я за первый вариант. Логика:
закрывающая скобка всегда одна на строке, и в этой строке нет больше ничего. Это удобно потому, что искать глазами конец блока приходится часто, а маркируется он одним символом — тяжело искать, а так под него целая строка отведена.
Кроме того, это создает визуальный отступ перед следующей частью кода, и это правильно, так он, вероятнее всего, логически не связан с тем, что было в блоке.
Соответственно, код получается более читабельным.
закрывающая скобка всегда одна на строке, и в этой строке нет больше ничего. Это удобно потому, что искать глазами конец блока приходится часто, а маркируется он одним символом — тяжело искать, а так под него целая строка отведена.
Кроме того, это создает визуальный отступ перед следующей частью кода, и это правильно, так он, вероятнее всего, логически не связан с тем, что было в блоке.
Соответственно, код получается более читабельным.
+2
Первый вариант. И упомянутые выше стандарты Java. И с толку не сбивает — сразу видно else-конструкции. Аналогично на одной строке всегда }catch(...){.
+3
new { true: function(){
// when true
}
, false: function(){
// when false
}
}[ condition ];
=]
// when true
}
, false: function(){
// when false
}
}[ condition ];
=]
+1
Вообще говоря, у любого форматирования есть свое логическое обоснование. В частности, в основе варианта 1, известного также как 1TBS (One True Brace Style), лежит следующая идея: конструкции, позволяющие вставку строк кода, располагаются на разных строках, тогда как конструкции, не позволяющие этого — на одной.
В Вашем случае, вариант 2 является неким смешением стиля Олмана (приверженцев которого Вы просили обойти топик стороной) и 1TBS, что, наверное, не очень хорошо.
В Вашем случае, вариант 2 является неким смешением стиля Олмана (приверженцев которого Вы просили обойти топик стороной) и 1TBS, что, наверное, не очень хорошо.
+3
Да, да, да! Это оно :-) Я очень давно читал про это и забыл уже. Тщетно пытался найти в гугле, перед тем как постить сюда, но совершенно забыл все кейворды, по которым можно было бы выйти хотя бы на статью из википедии: en.wikipedia.org/wiki/Indent_style
Спасибо вам!
Спасибо вам!
0
// php
if (condition):
…
else:
…
endif;
if (condition):
…
else:
…
endif;
-4
Скорее первый (хотя у меня нет четкого понятия стиля — вроде и PEAR, а вроде и что-то еще намешано)
0
Раньше постоянно использовал 1TBS. Сейчас постоянно использую стиль Олмана.
Второй вариант по мне как-то не айс.
Второй вариант по мне как-то не айс.
0
Вот кстати очень хотел бы услышать, что послужило причиной перехода.
0
Олман всех делает по чтению кода с распечаток… ну и некоторым (например мне) его гораздо удобнее читать с экрана
0
Участвовал некоторое время в проекте где все использовали Олмана. Попробывал, понравилось.
+ да. Согласен с тассом. Олмана читать удобнее.
+ да. Согласен с тассом. Олмана читать удобнее.
0
первый вариант, так как уже упоминали Java coding conventions, а еще потому, что когда условия на других языках пишешь:
if condtion
some_actions
else
some_actions
end
аналогия, что else должен занимать одну строчку
if condtion
some_actions
else
some_actions
end
аналогия, что else должен занимать одну строчку
0
UFO just landed and posted this here
if (a < 0) {
…
} else if (a == 0) {
…
} else if (a > 0) {
…
}
Открывающая скобка получается всегда на одной строке с условием (много else для наглядности). А код от края отделяется отступом. Минимум строк, максимум наглядности. По мне так.
…
} else if (a == 0) {
…
} else if (a > 0) {
…
}
Открывающая скобка получается всегда на одной строке с условием (много else для наглядности). А код от края отделяется отступом. Минимум строк, максимум наглядности. По мне так.
+3
Использую первый вариант, потому что при беглом чтении кода для меня он более цельно воспринимается, как одна конструкция. А когда в коде натыкаюсь на второй вариант, то непроизвольно глазами пробегаю наверх, как будто чтобы убедиться, что if присутствует, его не забыли.
+1
if(condition) { //comments
....code();
....here();
} else { //comments
....code();
....here();
}
....code();
....here();
} else { //comments
....code();
....here();
}
+1
Вопрос в удобстве восприятия каждого человека в отдельности. Лично я предпочитаю пользоваться вторым вариантом. На работе, в кодах, часто вижу и первый и второй варианты — в принципе нисколько не напрягает чтение. Однако, когда сам пишу, то уже машинально расставляю операторы вторым вариантом, а иногда доходит до того, что перед тем как написать условие, на автомате набиваю заготовку этого блока.
0
потому в руби используются begin и end, чтобы не было разногласий в офрмлении ;)
-1
В одной книге в своё время прочитал, что хорошему программисту совершенно всё равно какое форматирование используется, он код и так и так поймёт(что за книга не помню :) ). Так что тут дело привычки.
0
Как принято в проекте так и приходится писать, да и при использовани фреймворков, CMS и т. п., стараюсь следовать соглашениям конкретного продукта, (бывают, правда, проблемы выбора, когда «скрещиваешь зенд с чем-нибудь :) ) Ну а когда с нуля, то первый вариант, правда давно уже такого не было
0
1-й вариант, для восприятия приятнее и как-то конструкция чувствуется что-ли. Моя привыкла к варианта 1.
0
UFO just landed and posted this here
1 вариант
потому что /usr/src/linux/Documentation# less CodingStyle
потому что /usr/src/linux/Documentation# less CodingStyle
Note that the closing brace is empty on a line of its own, _except_ in
the cases where it is followed by a continuation of the same statement,
ie a «while» in a do-statement or an «else» in an if-statement, like
this:
do {
body of do-loop
} while (condition);
and
if (x == y) {
…
} else if (x > y) {
…
} else {
…
}
0
Sign up to leave a comment.
Форматирование if–else