Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Прочее";
Текущий архив: 2009.04.05;
Скачать: [xml.tar.bz2];

Вниз

Отступы в коде   Найти похожие ветки 

 
Riply ©   (2009-01-31 03:20) [0]

Здравствуйте !
Тут выяснилось, что я неправильно оформляю код. А именно:
(Боюсь форматирование "съедет", поэтому пробелы заменю точками)
procedure OffsetDemo;
var
.pParam: PVOID;
begin
.pParam := nil;
.if Condition then
..begin
...BlaBlaProc(pParam);
...BalBlaProc2(pParam);
..end;
end;


Мне сказали, что так никуда не годится, надо отступать две позиции.
(Т.е. количество пробелов везде должно быть в два раза больше).
Пыталась переучиться. Очень тяжело.
Во-первых привычка набора.
Но самое плохое, что перестаю "видеть" код.
Может есть какие-то волшебные утилиты, которые могут переводить код
из моего написания в правильное (и обратно) ?
Или, скрипя зубы, надо переучиваться ?


 
Джо ©   (2009-01-31 04:13) [1]

http://www.aew.wur.nl/UK/Delforexp/

Использовала несколько раз, когда нужно было чужие исходники в читаемый вид привести. Реализован в виде эксперта для IDE + есть standalone-версия.


 
Джо ©   (2009-01-31 04:14) [2]

Вкрутил сегодня сдуру «энергосберегающие лампочки», глаза болят с непривычки %) Вот и в женском роде о себе уже пишу, цо то бедзе, цо то бедзе...


 
Riply ©   (2009-01-31 04:19) [3]

> [2] Джо ©   (31.01.09 04:14)
> Вкрутил сегодня сдуру «энергосберегающие лампочки», глаза болят с непривычки %)
> Вот и в женском роде о себе уже пишу, цо то бедзе, цо то бедзе...

Не выкручивайся :) Нам теперь доподлинно известна твоя сущность :)

> http://www.aew.wur.nl/UK/Delforexp/
> Использовала несколько раз, когда нужно было чужие исходники в читаемый вид привести.

Спасибо.
Т.е. мои исходники действительно в не "читаемом виде" ?  :(


 
Джо ©   (2009-01-31 04:36) [4]


> Спасибо.Т.е. мои исходники действительно в не "читаемом
> виде" ?  :(

Не, у меня был гораздо худший случай (вообще без отступов) :)
Хотя, один пробел для меня тоже не очень привычно, но вполне терпимо, без ощутимого дискомфорта в восприятии. Сам пишу всегда по два.


 
Servy ©   (2009-01-31 04:47) [5]

> Пыталась переучиться. Очень тяжело.
> Во-первых привычка набора.


Мне так кажется, что сия традиция связана с тем, что отступы обычно делают с помощью табуляции (по крайней мере, я их делаю именно так и в Delphi, и в Visual Studio, просто по привычке). Среда Delphi нажатие на Tab по умолчанию воспринимает как два пробела, поэтому и отступ такой считается стандартным. Так что надо всего-лишь привыкнуть использовать эту волшебную клавишу :). Отступ в один пробел все же значительно лучше, чем отсутствие оного (немного непривычно, но вполне читаемо), так что "никуда не годится" это перебор.

А вот зачем дополнительный отступ перед begin для меня осталось загадкой. Форматируют обычно с тем, чтобы отделить инструкции, входящие в блок (begin..end) и не входящие в него. То есть, достаточно двух уровней отсупа. А третий уровень, для самого begin..end"а - излишество, в котором нет необходимости (за это еще философ Оккам бритвой грозил).


 
KSergey ©   (2009-01-31 06:07) [6]

1. Если работаешь сам по себе, то стиль форматирования кода - без разницы. Однако стоит обратить внимание удобно ли читать собственные тексты? Удобнее ли читать какие-либо другие (тот же VCL)? Если чужой код субьективно нагляден - есть смысл позаимствовать что-то. Но еще раз: сам с собой можешь делать что хошь, лишь бы компилятор переваривал, это единственное реальное ограничение.

2. Если работаешь в коллективе - большой смысл имеет придерживаться определенных стандартов. Все верещания "мне так удобнее! я так привык!" - бред, все эти привычки изменяются за месяц жесткого кодемайнтейнерства старшим товарищем. Ну т.е. к разумным людям в таком случае не требуется применение карательных мер. И через месяц ты уже радуешься как же хорошо все и читабельно (вне зависимости от того кто именно писал этот код).

PS
Вообще, если честно, меня всегда поражали верещеания "я так привык" в части оформления кода. На самом деле как ни оформляй - лишь бы единообразно. Мне не встречались правила оформления, которые бы ухудшали читаемость (такие правила, очевидно, просто не выживают в коммерчески-успешных предприятиях).
Пункт 2 выше я и вовсе писал по собственным впечатлениям от варианта, когда сам столкнулся с определенным код-стайлом. И понял одно: главное, чтобы этот код-стайл был четко прописан руководителем и обязательно принимался каждым, кто намерен работать на данном предприятии. Все эти "обсуждения", "а я привык вот так", "а мне так ваще неудобно" - чушь и бред. Проще заменить "слабое звено".
Впрочем, на заре "карьеры" приходилось  (одновременно) править/дописывать исходники, созданые разными людьми, на протяжении нескольких лет, у каждого из них при этом было собственное "видение мира". Вполне спокойно подстраиваешься под стиль текущего исходника, чтобы не было зоопарка. За одно выносишь для себя что-то новое, удобно.


 
KSergey ©   (2009-01-31 06:08) [7]

> Riply ©   (31.01.09 03:20)  

С одним отступом читать неудобно. 2 - читабельнее, да и для этого есть специальная кнопка - табуляция.


 
{RASkov} ©   (2009-01-31 10:10) [8]

> С одним отступом читать неудобно.

Эх... не верно сказано....

С одним отступом читать неудобно кому-то конкретно, но не всем.... - это раз.
С одним отступом - это вроде не по стандарту - это два.
А мне код из [0] как с одним, так и с двумя читать не удобно - это три :)

Мне вот так привычнее:
procedure OffsetDemo;
var.pParam: PVOID;
begin
..pParam := nil;
..if Condition then.begin
...BlaBlaProc(pParam);
...BalBlaProc2(pParam);
..end;
end;

Я знаю, что это не по стандарту, но пожалуйста, не говорите мне, что это не удобно и главное неправильно :)


 
{RASkov} ©   (2009-01-31 10:11) [9]

не правильно - это когда компилятор ругается)


 
KSergey ©   (2009-01-31 10:22) [10]

> {RASkov} ©   (31.01.09 10:10) [8]
> С одним отступом - это вроде не по стандарту

На сколько я понимаю, есть стандарт на метр. Это да.
На оформление кода вот именно стандарта - нет. Вернее он один: если компилятор компилирует без ошибок - то по стандарту :)
Все прочее - соглашения и вкусовщина, не более. Равно как и моё "С одним отступом читать неудобно". Просто моё частное мнение :)


 
TUser ©   (2009-01-31 10:34) [11]

Категория истинности - производная. Например, правильно лить кислоту в воду, а не наоборот, так как иначе можно оббрызгаться кислотой. Правильно переходить улицу на зеленый, так как иначе попадешь под тачку. И т.д.

А в вопросе топика - от чего является производной категория правильности оформления кода?

Я лично делаю два отступа, раньше делал три. Один мне кажется мало заметным, но это субъетивизм и не более того.


 
test ©   (2009-01-31 10:37) [12]

KSergey ©   (31.01.09 06:07) [6]

Вот такой стандарт оформления к чему отнести?

if a > 2 then begin
x:= 3;
while x < 10 do begin
....
inc(x); end;
....
ShowMessage(stroka); end;


 
Anatoly Podgoretsky ©   (2009-01-31 10:44) [13]

> Riply  (31.01.2009 3:20:00)  [0]

В общем то, в большинстве сред принято 4 отступа, а два как минимальное зло.\
Код может быть отображен и не моноширинным шрифтом и один пробел в этом случае очень жестоко.


 
Anatoly Podgoretsky ©   (2009-01-31 10:46) [14]

> Servy  (31.01.2009 4:47:05)  [5]

Ну не надо по умолчанию, по умолчанию 8 позиций, стандартный шаг табуляции, можно изменить на два, а в более старых версиях приходилось ВСЕ позиции прописывать вручную - очень неприятно.


 
Бурундук   (2009-01-31 11:02) [15]

> TUser ©   (31.01.09 10:34) [11]
> А в вопросе топика - от чего является производной
> категория правильности оформления кода?

Если два отступа для тебя непривычны, тебе будет тяжело читать код VCL.
Этой причины, ИМХО, достаточно.


 
{RASkov} ©   (2009-01-31 11:03) [16]

> Код может быть отображен и не моноширинным шрифтом и один
> пробел в этом случае очень жестоко.

Тут уже никакой речи не может быть о форматировании :) ...это "труба")


 
{RASkov} ©   (2009-01-31 11:10) [17]

> Если два отступа для тебя непривычны, тебе будет тяжело
> читать код VCL.

Да, действительно, тяжко.... Т.е. не тяжко, но немного труднее чем свой...
Но и VCL читать приходится в разы меньше, чем свой..... а про чужой код я вообще молчу :) ...лишь бы было какое-нибудь форматирование, тогда читать можно. :)


 
Anatoly Podgoretsky ©   (2009-01-31 11:11) [18]

> {RASkov}  (31.01.2009 11:03:16)  [16]

Неверно, код нормально форматируется, и два и четыре и так далее пробелов находятся на своих местах, но размеры их меньше. Код со стандартным шагом табуляции в 8 пробелов смотрится вообще хорошо, а вот с одним пробелом надо напрягать глаза.


 
KSergey ©   (2009-01-31 11:31) [19]

> Anatoly Podgoretsky ©   (31.01.09 11:11) [18]
> Код со стандартным шагом табуляции в 8 пробелов смотрится вообще хорошо, а вот с одним пробелом надо напрягать глаза.

Полностью поддерживаю, если что :)
К 8 пробелам дополнительно добавлю ограничение на ширину в 80 символов. Это кроме всего прочего заставляет задумыватся о глубине вложенности :)


 
Anatoly Podgoretsky ©   (2009-01-31 11:36) [20]

> KSergey  (31.01.2009 11:31:19)  [19]

Нафиг, я лучше буду думать о ширине монитора.


 
@!!ex ©   (2009-01-31 11:40) [21]

господа, а вы в курсе, что 90% Code Convention по дельфи не рекомендуют использование табуляции(а точнее строго запрещают)?
И что Ctrl+k i, Ctrl+k u не табуляцию делают! А два пробела. Соответственно если вы используете табуляцию, то получаете два разных типа разделителя.


 
{RASkov} ©   (2009-01-31 11:48) [22]

> [18] Anatoly Podgoretsky ©   (31.01.09 11:11)
> Неверно, код нормально форматируется, и два и четыре и так
> далее пробелов находятся на своих местах

и всеж не моноширные фрифты в коде - это минус. А если еще и использвать шрифты, какие-нибудь типа: OdessaScript - то точно "труба" :)


 
{RASkov} ©   (2009-01-31 11:49) [23]

> [21] @!!ex ©   (31.01.09 11:40)
> И что Ctrl+k i, Ctrl+k u не табуляцию делают! А два пробела.

А у меня они делают по одному пробелу :)


 
{RASkov} ©   (2009-01-31 11:49) [24]

> фрифты

:) шрифты)


 
Sergey Masloff   (2009-01-31 12:07) [25]

Anatoly Podgoretsky ©   (31.01.09 11:11) [18]
>Код со стандартным шагом табуляции в 8 пробелов смотрится вообще >хорошо, а вот с одним пробелом надо напрягать глаза.
Угловое перемещение при чтении большое, глаза будут уставать. Монитор большой не спасет (ну если 60 дюймов и смотреть метров с трех... а оно надо?)


 
SPeller ©   (2009-01-31 12:22) [26]

Меня на первом месте работы строго били по шапке за неправильное форматирование, поскольку были строгие правила и все были обязаны их соблюдать, поскольку не только несколько разработчиков, но еще и аутсорс. Очень этому благодарен и с тех пор автоматом пишу код "как надо" без напрягов. Хотя по-началу было непривычно. Поэтому автору советую прислушаться и заставить себя переучиться правильно форматировать код.


 
Anatoly Podgoretsky ©   (2009-01-31 12:26) [27]

> Sergey Masloff  (31.01.2009 12:07:25)  [25]

Это при моноширинном шрифте.


 
palva ©   (2009-01-31 12:43) [28]


> Нафиг, я лучше буду думать о ширине монитора.

Я всегда о ней думаю, когда фотографии смотрю.


 
DVM ©   (2009-01-31 12:45) [29]


> Riply ©   (31.01.09 03:20)  


> Мне сказали, что так никуда не годится, надо отступать две
> позиции.

И правильно сказали. Вообще код надо форматировать как в VCL. И точка. Почему бы всем не соблюдать это правило, для исключения разночтений. Один пробел - слишком малозаметный отступ при больших лесенках трудно понять где парная открывающей скобке закрывающая, при большем чем 2 пробелах - слишком код вправо уползает.


 
Anatoly Podgoretsky ©   (2009-01-31 12:47) [30]

> palva  (31.01.2009 12:43:28)  [28]

Моя мечта - хотя бы один монитор М9


 
Anatoly Podgoretsky ©   (2009-01-31 12:54) [31]

> DVM  (31.01.2009 12:45:29)  [29]

> Один пробел - слишком малозаметный отступ при больших лесенках трудно понять где парная открывающей скобке закрывающая,

А тут задача для ИДЕ, или плавающий пробел или подсветка парности.


 
Riply ©   (2009-01-31 13:04) [32]

Во как. Мало того, что таких как я одноотступников не нашлось,
так даже два пробела, оказывается, "минимальное зло" :)
Придется переучиваться :(


 
Anatoly Podgoretsky ©   (2009-01-31 13:10) [33]

> Riply  (31.01.2009 13:04:32)  [32]

Ответь для себя - для чего тебе нужные отступы, а после сможешь ответить какие


 
@!!ex ©   (2009-01-31 13:14) [34]

> [32] Riply ©   (31.01.09 13:04)

Я раньше один использовал... Это было самообучение.
Потому по ковенциям начал работать. ощутил что это удобнее. теперь два пробела для Паскаля, скриптов и шейдеров, и так для С++.


> [23] {RASkov} ©   (31.01.09 11:49)

Сути не меняет, все равно не таб. :)


 
Тын-Дын ©   (2009-01-31 13:59) [35]


> Riply ©   (31.01.09 13:04) [32]
> Во как. Мало того, что таких как я одноотступников не нашлось,
>
> так даже два пробела, оказывается, "минимальное зло" :)
> Придется переучиваться :(


Это не минимальное зло. Это максимум для удобства.
Большее количество пробелов в отступах влечёт увеличение правой границы кода, что не очень удобно. Один пробел - слишком малое обозначение границ блоков кода - разные блоки плохо отличаются и приходится напрягаться, чтобы их визуально выделить.
Отступы больше 4-8 символов - другая крайность. Приходится напрягать глаза, чтобы отследить те же самые блоки кода.


 
Eraser ©   (2009-01-31 14:14) [36]

> [32] Riply ©   (31.01.09 13:04)

примером правильного оформления исходного кода на делфи вполне можно считать стиль VCL.
но мне нравится вот такая его более строгая интерпритация http://www.delphikingdom.com/asp/viewitem.asp?catalogid=802 стиль JCL тоже не плох.


 
Тын-Дын ©   (2009-01-31 14:49) [37]


> но мне нравится вот такая его более строгая интерпритация
> http://www.delphikingdom.com/asp/viewitem.asp?catalogid=802


Я именно так и форматирую, однако не стал бы говорить о стандартах, так как их не существует.


 
KSergey ©   (2009-01-31 15:26) [38]

> @!!ex ©   (31.01.09 11:40) [21]
> не рекомендуют использование табуляции(а точнее строго запрещают)?

А в курсе, что символ табуляции и кнопка табуляции вещи ваще не связанные?


 
@!!ex ©   (2009-01-31 15:30) [39]

> [38] KSergey ©   (31.01.09 15:26)

ну да. Как будто кто-то настраивает поведение таба. :))


 
Anatoly Podgoretsky ©   (2009-01-31 16:48) [40]

И вообще, те кто не делает отступов, те снижают энтропию, а самые продвинутые и NumLock не включают.



Страницы: 1 2 вся ветка

Форум: "Прочее";
Текущий архив: 2009.04.05;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.56 MB
Время: 0.006 c
2-1234350097
workbench
2009-02-11 14:01
2009.04.05
перемещение TreeNode


15-1233954904
Юрий
2009-02-07 00:15
2009.04.05
С днем рождения ! 7 февраля 2009 суббота


15-1233823377
Alkid
2009-02-05 11:42
2009.04.05
Посоветуйте видеокарту.


2-1234336304
Andrewtitoff
2009-02-11 10:11
2009.04.05
Access Violation


15-1233502350
stas
2009-02-01 18:32
2009.04.05
TWebBrowser получить текст без тегов





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский