Azure Drake
> Смысл в том, чтобы охватывать взглядом больше информации.
Если бы в этом действительно был приматив, то ляпили бы по нескольку выражений в одну строку и всякой хернёй прочей однострочной бы страдали.
Но действительно давно уже моветон всякое такое:
x = y = 0;
и втыкание оператора запятая для экономии строк - современные FullHD и выше экраны прекрасно справляются с огромным количеством информации даже большим шрифтом.
За раз она уже давно всё-равно в мозг не пролазит с одного экрана.
Был тут один любитель охватывать взглядом больше write-only обфусикаций https://gamedev.ru/flame/forum/?id=226833
10 OPTION BASE 1: DIM D$(1025): D$(1)="ЭТО КОТ": I=1: ON ERROR GOTO 80 20 PRINT D$(I);: INPUT O$: O$=LEFT$(O$,1) 30 IF I<512 THEN IF D$(I*2)<>"" GOTO 70 40 IF O$="Д" OR O$="д" THEN PRINT "УРРА-А!": I=1: GOTO 20 50 D$(I*2+1)=D$(I): INPUT "А КТО ЭТО";O$: D$(I*2)="ЭТО "+O$ 60 INPUT "ЧЕМ ОТЛИЧАЕТСЯ";D$(I): I=1: GOTO 20 70 IF O$="Д" OR O$="д" THEN I=I*2: GOTO 20: ELSE I=I*2+1: GOTO 20 80 PRINT "НЕ ХВАТАЕТ МОЗГОВ!": END
половиной форума пытались расшифровать последовательность выполнения операторов
Не надо передёргивать, приводя какие-то крайние примеры.
Такая конструкция непозволительно растянута, и точка.
if (...)
{
...
}
else
{
...
}Azure Drake
от того что код растянут - страдают только эстетические чувства некоторых высокодуховных личностей. а от того, что беглым взглядом не видно блоков - страдает производительность при работе с кодом. так что выбор очевиден.
0iStalker
> половиной форума пытались расшифровать последовательность выполнения операторов
Да ладно. Дошел до строк 50 и 60 - с высокой долей вероятности можно сказать, что чувак строит экспертную систему в виде бинарного дерева на массиве (родитель i, дети i*2 и i*2+1), постепенно заменяя листья-утверждения "ЭТО..." на развилку альтернативу с вопросом различителем бывшего листа и его альтернативы.
aloha_hawaii
Программирую много лет и ни разу не усомнился, что скобку переносить не нужно. Это действительно экономит вертикальное пространство и улучшает восприятие программы. На работе также лет 7 назад в кодстайл это внес и не раз демонстрировал в риалтайме как понятность кода растет с убиранием переносов строк. Было убедительно )
Путать с объявлением переменных - не корректно. Это экономия горизонтального пространства, что менее важно для общего осознания алгоритма + ухудшение читаемости (можно не заметить объявление переменной)
Считаю надуманным аргумент о невозможности/неудобности видеть блоки кода при отсутствии переноса открывающей скобки. Тело блока почти во всех языках имеет отступ вправо. Крайне легко и понятно находится начало блока. Не представляю людей, для кого это вызывает хоть какую-то сложность.
Закрывающая же скобка должна быть таки перенесена. Хоть и занимает вертикальное пространство, но помогает визуально выделять конец блока.
Это мое личное мнение, пережившее годы разработки очень разного софта на разных платформах, языках, мониторах (сейчас на 4к программирую) и т.п.
Но в любом случае срач по этой теме бессмысленен. Время давно уже показало, что не бывает одного лучшего кодстайла. Все чем-то хороши.
L
Найти парную скобку, на длинном (больше одного экрана) блоке кода, со множеством строк у тебя так не получится. Оно принципиально ищется не взглядом, а прокруткой, пока курсор мышки не совпадёт с нужной скобкой
0iStalker
Все верно, за исключением того, что признак начала блока и так имеется и дублировать его скобкой нет ни какого смысла. Бывает иногда длинный код, редко, скроллю его, не ощущаю дискомфорта в поиске начала блока. Ровно так и делаю, ставлю курсор и скроллю до совпадения с началом блока.
Azure Drake
> Смысл в том, чтобы охватывать взглядом больше
> информации. У тебя же наверное не 800х600 разрешение монитора стоит, хотя,
> казалось бы, чего мельчить, ведь экран бесконечен.
Поэтому я не мельчу, ещё и шрифт увеличиваю, как на прошлой картинке. Не потому что плохо вижу, а чтобы не напрягаться и не вглядываться.
if (...) { ... } else { ... }
Пишу в таком стиле, однако фанатичной привязанности нет.
Остальное - ересь!
Раньше писал так:
if (...) { ... } else { ... }
потом стал писать как требуют
Тема в архиве.