Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2009.04.05;
Скачать: CL | DM;

Вниз

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

 
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;
Скачать: CL | DM;

Наверх




Память: 0.58 MB
Время: 0.017 c
2-1234525803
webbrowser
2009-02-13 14:50
2009.04.05
WebBrowser.OnDocumentComplite


15-1234034595
blackman
2009-02-07 22:23
2009.04.05
Что-то тормозить стало


6-1201972877
..::KraN::..
2008-02-02 20:21
2009.04.05
Documents and Settings - доступ по FTP закрыт...


15-1233426561
deadteachers
2009-01-31 21:29
2009.04.05
LOST


2-1234676375
snake-as
2009-02-15 08:39
2009.04.05
Вопрос по БД