-
> Knight © (17.05.08 00:23) [38]
Но вот в случае с else end не очевиден. В таком случае else и далее с новой строки. ИМХО
-
> В таком всегда путался.. посему и пришёл к [37] тоже не очень нравится. Лично для меня,
begin
...
end else
begin
end;
воспринимается лучше.
-
Вот что Widescreen с людьми делает :)
-
> [40] Andy BitOff © (17.05.08 00:30) > Но вот в случае с else end не очевиден.
Очень даже очевиден... if ... then begin а ниже
видишь
'end' , т.к. ни над ним ни под ним
ничего нет и он сразу
выделяется глазом
end else begin т.е.
вариант
не в одну строку
end;
-
> а если точка с запятой, то всё кончилось.
...
end;
end; end.
-
> Как вариант использую частенько: > > > if s='aaa' > then begin > if f='bbb' > then begin > ... > end; > end > else begin > ... > end;
А вот тот же код, но оформленный в стиле VCL:
if s = 'aaa' then
begin
if f = 'bbb' then
begin
end;
end else
begin
...
end;
В каком варианте читабильность лучше?
-
> В каком варианте читабильность лучше?
Вот я страшно ннавижу эти
a = b вместо a=b
c := d вместо c:=d
Ну вот не признаю я это! Вот что хотите делайте...
-
> [46] TIF © (17.05.08 00:51) > Вот я страшно ннавижу эти
Чем шире всё расставлено . . тем шире кругозор программиста %))))
.. и тем крепче у него шея :))))))
-
> Юрий Зотов © (16.05.08 18:48) [6]
И всё равно не переубедишь! begin должен быть в той же строчке, в которой находится условие.
-
> TIF (17.05.2008 00:51:46) [46]
Говоришь, что хотим, да ты даже и не представляешь, что мы можем сделать :-)
-
> TIF © (17.05.08 00:51) [46] > > > > В каком варианте читабильность лучше? > > > Вот я страшно ннавижу эти > > a = b вместо a=b > > c := d вместо c:=d >
Первое - НЕТ. Второе ДА. Т.е. при сравнении я всегда ставлю пробелы, при присвоении убираю пробелы. Но "на вкус и цвет - товарищей нет", как известно.
-
мда. а я теперь всё больше { и } пишу.
--- Understanding is not required. Only obedience.
-
> И всё равно не переубедишь! begin должен быть в той же строчке, > в которой находится условие.
Покодь на D2007. Она переубеждает :)
-
Пишу бегины всегда на новой строке. А так же, такие структуры if then ...
begin
...
end
else
begin
...
end; Потому что читать такой код быстрее, хоть он и занимает больше места. Потому что меньше тратится времени на просмотр и "парсинг" содержания строки. Чем строка короче, тем быстрее она усваивается. А в боооольшом куске кода, в котором полно разных арифметических операций с кучей разных переменных и методов, разобрать конструкцию end
else
begin взглянув только на первые буквы гораздо проще, чем остальные варианты написания. Такое мое имхо. По части пробелов между операторами - ставлю всегда кроме пробелов вокруг скобок. Ибо мне так быстрее понимать незнакомый код. Научился строго следовать правилам в одной фирме, где была командная разработка. В процессе работы прочувствовал что чужие исходники так читать проще. А потом и свои исходники, оформленные по такому принципу, стал читать быстро и легко.
-
в одну строчку пишу всегда
-
> SPeller (17.05.08 13:36) [53]
Эргономику почитай. Твои затраты на чтение трех строчек не сопоставимы с затратами, когда нет необходимости читать, когда просто знаешь, что там дальше. Если написано: if then ...
begin
...
end
else
begin
...
end;
то прочесть ПРИДЕТСЯ все. В то время как код: if then begin
...
end
else begin
...
end; более эргономичен, т.к. все бегины пропускаются при чтении. > Knight © (17.05.08 00:41) [43]
По этой же причине, я и говорил, что else не очевиден, т.к. при просмотре, его придется искать глазами в середине строки.
-
> все бегины пропускаются при чтении Вот ЭТО как раз и плохо. Очень плохо. Потому что в большом коде, да еще при длинном if становится легко этот begin не заметить (а еще хуже - не написать). Результат может оказаться плачевным. Эргономика - штука хорошая, но с точки зрения той же самой эргономики затраты на вылавливание багов несопоставимо больше затрат на чтение begin. Аналог из моей собственной (причем совсем свежей) практики (java): if (здесь довольно длинное условие);
здесь что-то еще Программа работает неправильно. В процессе отлова добираюсь до этого места и ставлю останов на первой строке. Прихожу на останов, проверяю значения переменных. Вижу, что условие не выполняется и вторая строка должна быть пропущена - а она не пропускается!!! Блин, в чем фокус? И только через некоторое время замечаю пустой оператор в конце длинного if (кто-то случайно поставил точку с запятой, а ее там быть не должно). Меняю параметры форматирования кода и форматирую. Получаю вот что: if (здесь довольно длинное условие)
;
здесь что-то еще Пустой оператор сразу бросается в глаза. Вот ЭТО - действительно эргономика.
-
> Эргономику почитай
Спорить тут можно до посинения, так же как про амд вс интел и прочая ) Мне когда нужно быстро, одним взглядом окинуть незнакомый код - проще когда if в две, а else в три строки. Ну не люблю я чересчур компактные исходники, когда при отдалении глаз от экрана на метр они превращаются в одно большое нагромождение букав. Когда есть пробелы и многострочные операторы блоков - код чисто визуально обретает осмысленные очертания. Лично для меня это важно, мне так удобнее читать код, я так лучше воспринимаю. Я в первую очередь обращаю внимание на первый символ в строке, и терпеть не могу, когда там не начинается что-то, несущее логическую нагрузку, а расположены разные вспомогательные второстепенные конструкции. Потому что вместо того, чтобы продолжить смотреть первые символы следующей строки нужно вчитываться дальше "что же там?". Это, конечно, относится к структуре кода. Когда начинаются разные операции-вычисления и их нужно прочитать, то, конечно, читается всё что написано.
Не претендую на истину, каждому своё, только рассказываю как я к этому всему отношусь )
-
>[56] Юрий Зотов © (2008-05-17 15:03:00) а у паскаля вообще страшный синтаксис в этом плане. и не только у него. не зря Вирт бегины повыкидывал из Оберона.
--- Understanding is not required. Only obedience.
-
> Юрий Зотов © (17.05.08 15:03) [56] > Вот ЭТО как раз и плохо. Очень плохо. Потому что в большом > коде, да еще при длинном if становится легко этот begin > не заметить (а еще хуже не написать). Результат может > оказаться плачевным.
Юрий, для того что бы такого не происходило придумали Template ;) Не знаю как на java, но уж в Delphi-то их сам Бог велел использовать, т.к. операторные скобки слишком длиные для набора вручную (опять же эргономично ;)). Я, например, когда набираю if у меня у код вставляется if then, когда ifb if then begin ... end;, а когда ifbe if then begin
...
end
else begin
...
end; Ну, и таких шаблонов достаточно для стандартных конструкций, что позволяет раз настроив уже не задумываться над оформление и поиском бегинов. Так же у меня настроено и несколько корпоративных стилей. Достаточно только указать какой шаблон использовать и я при наборе ifbe получу конструкцию нужного мне вида. Вот Игорю из-за своей, как он выразился, лени, пришлось переучиваться, пусть это и не так сильно сказалось на времени, но все-таки привычка штука сильная и менять их (привычки) обычно сложно. А не поленился бы, потратил некоторое время на настройку и работал бы так же как и раньше. Я не говорю, что он сейчас плохо работает ;) упаси Бог, я имею в виду, что переход на другую IDE был бы менее заметен.
|