Наши проекты:
Журнал · Discuz!ML · Wiki · DRKB · Помощь проекту |
||
ПРАВИЛА | FAQ | Помощь | Поиск | Участники | Календарь | Избранное | RSS |
[3.137.192.3] |
|
Сообщ.
#1
,
|
|
|
Стандартное оформление кода Delphi неудобочитаемо
Шаблоны идущие по умолчаию - от сатаны. Предлагаю свой взгляд на данный вопрос и своё решение: http://kuzduk.ru/_delphi_templates.html |
Сообщ.
#2
,
|
|
|
На самом деле это твои многоэтажные конструкции нечитаемы. А стандартное оформление у тебя все равно неверно. Нужно не
if true then //блок then команд else //блок else команд а if true then //блок then команд else //блок else команд Чтобы как минимум при прогоне под отладчиком по строкам было видно когда мы перешли по условию, а когда - нет |
Сообщ.
#3
,
|
|
|
Цитата --Ins-- @ при прогоне под отладчиком по строкам Именно так и пишу. А выпендрёжЫ - дык именно от них вопросы уровня - А Пачиму??? |
Сообщ.
#4
,
|
|
|
Цитата if true then //блок then команд else //блок else команд Чтобы как минимум при прогоне под отладчиком по строкам было видно когда мы перешли по условию, а когда - нет вот это аргумент. согласен. я бы для удобства отслеживания при отладке тоже бы на новые строки переносил. Но всё равно бы написа поприятнее для глаза: if true then //блок then команд else //блок else команд |
Сообщ.
#5
,
|
|
|
Цитата kuzduk @ if true then //блок then команд else //блок else команд Писать then с тем же смещением от начала строки, что и if - идеологически неверно. PS. А за конструкцию if true я бы вообще расстреливал. |
Сообщ.
#6
,
|
|
|
kuzduk, предлагаю ознакомиться с рекомендациями форматирования кода от разработчиков языка.
Их разрабатывали совсем не глупые люди. http://www.delphikingdom.com/asp/viewitem.asp?catalogID=802 |
Сообщ.
#7
,
|
|
|
Цитата Rouse_ @ kuzduk, предлагаю ознакомиться с рекомендациями форматирования кода от разработчиков языка. Их разрабатывали совсем не глупые люди. http://www.delphikingdom.com/asp/viewitem.asp?catalogID=802 ознакомился. Кроме декларативных предписаний "правильно/неправильно" нет никаких аргументов. Почему так правильно, а так нет (конкретно для блока if)? Просто "так правильно". Так надо. Такой стандарт. так все пишут. А почему? мне вот такое "правильное" форматирование глаза режет: if A < B then begin DoSomething; DoSomethingElse; end else begin DoThis; DoThat; end; а такое радует: if A < B then begin DoSomething; DoSomethingElse; end else begin DoThis; DoThat; end; |
Сообщ.
#8
,
|
|
|
Попробую прояснить:
if A < B then // условие begin // блок правильного выполнения условия DoSomething; DoSomethingElse; end // завершение блока else // в условии присутствует блок выполняющийся при его несработке begin // блок не правильного выполнения условия DoThis; DoThat; end;// завершение блока и второй вариант: if A < B // условие then // мусор Зачем и кому нужен мусор? Повысить читабельность кода? Да бросьте... |
Сообщ.
#9
,
|
|
|
Лично мне ближе по духу правила автора библиотеки ICS ICS & MidWare coding style
|
Сообщ.
#10
,
|
|
|
И в догонку, смысл переноса THEN на новую строку не имеет никакого смысла.
Хочется его отделить от условия? Так ведь это было бы оправдано только в случае возможности вот такой конструкции. if A < B else т.е. когда THEN можно сократить и сразу выполнить ELSE, а раз такого сделать нельзя, то и смысла нет в принципе. |
Сообщ.
#11
,
|
|
|
Цитата Rouse_ @ Розыч, их разрабатывали НЕ СОВСЕМ глупые люди. предлагаю ознакомиться с рекомендациями форматирования кода от разработчиков языка. Их разрабатывали совсем не глупые люди. Шо про заморочки Филиппа Кана думал Никлаус Вирт - мне неведомо. Но вот за оператор with я бы им обоим ... выкрасил. На пасху... |
Сообщ.
#12
,
|
|
|
Цитата kuzduk @ Почему так правильно, а так нет (конкретно для блока if)? Просто "так правильно". Так надо. Такой стандарт. так все пишут. А почему? Зато по твоей ссылке из первого поста все аргументированно, ага-ага |
Сообщ.
#13
,
|
|
|
Цитата #SI# @ Но вот за оператор with я бы им обоим ... выкрасил. На пасху... Цитата Многие считают, что если шиповник растение, то можно применять его в любых количествах и сколько угодно времени. Повредить оно не может. На самом деле, бесконтрольное и бездумное применение шиповника может нарушить работу многих органов. |
Сообщ.
#14
,
|
|
|
Цитата Зато по твоей ссылке из первого поста все аргументированно, ага-ага Я грю про наглядность кода. Аргументом что моё форматирование более наглядное является раскраска блоков цветами. Эта раскраска конкретно и наглядно показывает вашему глазу наглядность моего форматирования. Добавлено Масло масляное написал, но специяльно. ибо правильно. истинно глаголю! |
Сообщ.
#15
,
|
|
|
Сань, я парился в чужом коде. В отладчике...
Цитата kuzduk @ Аргументом что моё форматирование более наглядное На вкус, на цвет... Кому и кобыла - невеста. Етс... ЗЫ - нет в мире совершенства. |
Сообщ.
#16
,
|
|
|
Цитата kuzduk @ ибо правильно. истинно глаголю! Рекомендую добавлять ИМХО Истина в последней инстанции не наша прерогатива Тем более при декларации столь сомнительных вещей... Добавлено Цитата #SI# @ Сань, я парился в чужом коде. В отладчике... Не ты один, поэтому знаю, что обфусцирование кода неграмотными авторами очень сильно затрудняет понимание самого алгоритма, куда и относится в том числе неграмотное студенческое форматирование текстов... |
Сообщ.
#17
,
|
|
|
Цитата не люблю иностранные слова. "истинно глаголю" - звучит твёрже и душевнее)) Рекомендую добавлять ИМХО |
Сообщ.
#18
,
|
|
|
Цитата Rouse_ @ Дык грамотные в моей области не попадались! обфусцирование кода неграмотными авторами Цитата kuzduk @ Это в МногоШум - там поймут (или забанят). Как фишка ляжет (ака на всё воля Божья). не люблю иностранные слова. "истинно глаголю" |
Сообщ.
#19
,
|
|
|
Цитата kuzduk @ "истинно глаголю" - звучит твёрже и душевнее)) Имею Мнение Хрен Оспоришь - звучит гораздо убедительней |
Сообщ.
#20
,
|
|
|
Цитата Имею Мнение Хрен Оспоришь - звучит гораздо убедительней http://video.yandex.ru/users/kuzduk/view/20/# |
Сообщ.
#21
,
|
|
|
Цитата kuzduk @ Кандидат на горшочек . Подпись выключена. |
Сообщ.
#22
,
|
|
|
Цитата kuzduk @ Аргументом что моё форматирование более наглядное является раскраска блоков цветами. Эта раскраска конкретно и наглядно показывает вашему глазу наглядность моего форматирования. Очень сомнительное заявление. Я уже сказал про многоэтажность - бессмысленное растягивание кода по вертикали, в результате чего взглядом охватывается меньшая область (тем более что слово then не несет никакой смысловой нагрузки и не зря во многих языках после if-а никакого then нет). Это первое. Второе - стандарты на форматирование кода существуют для того, чтобы чужой код было проще понимать. И в этом смысле стандарт, продвигаемый разработчиками вместе с исходниками стандартных библиотек и должен являться единственной и общей нормой. Потому что введя свои правила ты заставляешь людей адаптироваться одновременно к двум стилям. Ну а на самом деле в любой нормальной организации где приняты требования к оформлению кода тебе за такую самодеятельность оторвут руки и будут правы |
Сообщ.
#23
,
|
|
|
Цитата --Ins-- @ Кто на Лиспе писал - поймут!Я уже сказал про многоэтажность Цитата --Ins-- @ И не только в Си! не зря во многих языках после if-а никакого then нет |
Сообщ.
#24
,
|
|
|
Цитата --Ins-- @ Я уже сказал про многоэтажность - бессмысленное растягивание кода по вертикали, в результате чего взглядом охватывается меньшая область Именно поэтому я и считаю, что begin в отдельной строке уместен только в начале процедуры/программы. Во всех прочих случаях begin гораздо более уместен в той же строке что и if..then, for...do, with...do и т.п. Ну и конструкция: end else begin мне тоже не нравится. end в отдельной строке не должен быть, если это ещё не окончание блока условного ветвления. На мой вкус гораздо лучше такой код: if ... then begin ... end else begin ... end; |
Сообщ.
#25
,
|
|
|
Цитата northener @ На мой вкус гораздо лучше такой код: А такой if ................................... ................................... ................................... then begin ................................ ................................ ................................ end else begin ... end; |
Сообщ.
#26
,
|
|
|
Цитата leo @ А такой CollapsedWrap disabledLine numbers off if ................................... ................................... ................................... then begin ................................ ................................ ................................ end else begin ... end; тоже "гораздо лучше"? Нет. Но я бы написал не совсем так, а так: if ............................... .................................. .................................. then begin ............................ ............................ ............................ end else begin ... end; |
Сообщ.
#27
,
|
|
|
Цитата --Ins-- @ На самом деле это твои многоэтажные конструкции нечитаемы. А стандартное оформление у тебя все равно неверно. Нужно не CollapsedWrap disabledLine numbers off if true then //блок then команд else //блок else команд а CollapsedWrap disabledLine numbers off if true then //блок then команд else //блок else команд Чтобы как минимум при прогоне под отладчиком по строкам было видно когда мы перешли по условию, а когда - нет Ну и вот ещё одно спорное утверждение. Код то всё таки пишется не для отладчика. Так что простой код вполне может выглядеть как: if A < B then Smths:=Value1 else Smths:=Value2; А возникнут проблемы при отладке - во многих случаях достаточно после выполнения этой строки проверить значение Smths. P.S. Конечно возможны проблемы с оптимизатором. Но они не такие частые и не столь серьёзные. Имхо. Да и в случае конкретной проблемы всегда можно "разбить" эту строку на две строки. А после отладки вернуть всё на одну строку. |
Сообщ.
#28
,
|
|
|
Ба, с какой страстью серьёзные и уважаемые мужи ударились в холивар!
|