Форум: "Прочее";
Текущий архив: 2006.07.09;
Скачать: [xml.tar.bz2];
ВнизКак красивее и понятнее ? Найти похожие ветки
← →
ANB © (2006-06-09 10:58) [0]
if (A > B)
then X := A;
или
if (A > B)
then X := A;
???
И нет ли у кого примеров красиво оформленных исходников ?
А то у нас холивар с начальством начинается и начальник предложил показать ему примеры кода других грамотных программистов.
← →
McSimm © (2006-06-09 11:02) [1]
> примеры кода
исходники VCL
← →
tButton © (2006-06-09 11:02) [2]
if (A>B) then X:=A;
if (A>B)
then X:=A
else X:=B;
if (A>B) then begin
...
end;
if (A>B) then begin
...
end else begin
...
end;
← →
Kolan © (2006-06-09 11:03) [3]
> И нет ли у кого примеров красиво оформленных исходников
> ?
Стандарты стилевого оформления фирмы борланд. На королевстве есть.
Оба твои варианта - неверные.if (A > B) then
X := F;
Так я пишу.
А Борланд так:if (A > B) then X := F;
← →
Kolan © (2006-06-09 11:03) [4]
> if (A > B) then
> X := F;
<тут два пробела>Так я пишу.
← →
ANB © (2006-06-09 11:06) [5]
if (ARect.Left > FDragPos.x) or (ARect.Right < FDragPos.x) then
DeltaX := AbsMin(ARect.Left - FDragPos.x, ARect.Right - FDragPos.x)
else DeltaX := 0;
if (ARect.Top > FDragPos.y) or (ARect.Bottom < FDragPos.y) then
DeltaY := AbsMin(ARect.Top - FDragPos.y, ARect.Bottom - FDragPos.y)
else DeltaY := 0;
if (DeltaX <> 0) or (DeltaY <> 0) then
OffsetRect(FDockRect, -DeltaX, -DeltaY);
- так мне совсем не нравится. Пока не нашел у них примера, где then на новой строке.
← →
ANB © (2006-06-09 11:08) [6]
> if (A > B) then
> X := F;
> Так я пишу.
Борланд тоже так пишет.
Насчет переноса then мы уже договорились с начальством. Затыка только в нем (точнее - ставить отступ или нет), т.к. я одиночные операторы в одной строке с if не пишу.
← →
Gero © (2006-06-09 11:14) [7]> Борланд тоже так пишет.
Какие тогда могут быть соменения? Или есть мнение, что Борланд пишет «неграмотно»?
← →
McSimm © (2006-06-09 11:17) [8]Мое скромное мнение, если then не переносит, то expression, как элемент вложенной структуры делается с отступом.
Если же есть желание then/else вместе с выражением писать на новых строках, то отступ не нужен, т.к. then/else элементы того же уровня, что if.
← →
ANB © (2006-06-09 11:17) [9]
if DragObject is TDragDockObject
and (TDragDockObject(DragObject).Control.HostDockSite <> nil)
and (TDragDockObject(DragObject).Control.HostDockSite.Handle = Info.CurrentWnd) then
Exit;
Похоже у борланда в стандарте then вообще не переносят. А может автоформаталкой все обработали.
Вот пример мне из борланда - не нравится, т.к. then уползает за экран.
← →
palva © (2006-06-09 11:20) [10]Нужно делать так, как просит начальство, и сразу же просить прибавку к зарплате.
← →
ANB © (2006-06-09 11:20) [11]
> Если же есть желание then/else вместе с выражением писать
> на новых строках, то отступ не нужен, т.к. then/else элементы
> того же уровня, что if.
Во, я своему начальнику так и говорю. А он заладил - все отступы делают.
Плюс 1 в мою пользу.
А выражение под then я завсегда и так с отступом делаю. Только then, как правило, при этом переношу.
> McSimm © (09.06.06 11:17) [8]
А нет кусочка своего исходника, где бы это было видно ?
← →
Kolan © (2006-06-09 11:21) [12]
if (A > B)
then X := A;
так переносить then имхо - ужасно неправильно. никогда такого не видел.. Так делаю только если условие вылазит за 80 символов.
Это:
if (A>B) then begin
...
end;
На Си похоже...
Мне нравится так:
if (A > B) then
begin
X := F;
end
else
begin
X := F;
end;
или
if (......................................long..................................... ............)
then
begin
X := F;
end;
Begin и end - естественно только если надо....
← →
ANB © (2006-06-09 11:22) [13]
> Нужно делать так, как просит начальство, и сразу же просить
> прибавку к зарплате.
Прибавку не дадут, но если я буду по своему писать - то и не урежут.
Просто пока нас двое - (я и начальник), то можно бодаться. Но планируют взять еще одного - двух, и их тоже надо будет заставлять писать по стандарту. А мы в стандарте еще не сошлись.
← →
Kolan © (2006-06-09 11:23) [14]А то, что вложенность надо обозначать отступами- помоему вообще не приложное правило. И в XLM и везде оно есть. В Delphi отступ-два пробела...
← →
Empleado © (2006-06-09 11:24) [15]
> ANB © (09.06.06 10:58)
чтобы не спорить с начальством --> ifthen :))
красивее imho использовать Smart tab и Optimal fill
← →
Kolan © (2006-06-09 11:24) [16]Кстати а скобочки в условии нафига?
← →
vidiv © (2006-06-09 11:26) [17]Если длинное условие, я его пишу примерно так:
if
(x > 32) and (x < 64) and (y > 128) and (y < 256) and ((Flag and $04) <> 0)
then
Action();
← →
Prohodil Mimo © (2006-06-09 11:27) [18]Я всегда пишу так:
If ..... then
X := F;
или
If (.........) and (.........) then
Begin
A := B;
X := F;
End;
или
If ((.........) and (.........)) or
((.........) and (.........)) then
Begin
A := B;
X := F;
End;
Then - никогда не вылезает за пределы
← →
Kolan © (2006-06-09 11:29) [19]
> If
> Begin
Эти дела пишутся с маленькой буквы. как и все словаЮ которые выделяются жирным шрифтом в IDE
← →
Ketmar © (2006-06-09 11:29) [20]не переносят. более того, у них есть coding style dox, который многие конторы используют как стандарт de-facto. сам в своё время ругался матом. и переучивался. %-)
← →
tButton © (2006-06-09 11:30) [21]
> На Си похоже...
на пхп
я на пхп чаще чем на сях пишу...
точне я не пишу на сях вообще, а на пхп пишу =)
мхо, раз уж выражение в одной строке с if не пишется, то не переносить then - не логично. получаетсяif условие then
а_тут_у_нас_болтается_какое-то_выражение_не_пришей_ко_мне_рукав_называется
при беглом просмотре кода, особенно, когда условие слишком длинное и не видно, что там после then
выражение можно принять за самостоятельное
раньше всегда писалif (A>B)
then X:=A;
и всегда было ясно
вот эта строка начинается с if - здесь у нас условие
вот эта строка начинается с then - здесь у нас выражение, которое будет выполняться при выполнении условия описаного выше
← →
Ketmar © (2006-06-09 11:34) [22]>при беглом просмотре кода, особенно, когда условие слишком длинное
>и не видно, что там после then выражение можно принять
>за самостоятельное
только с перепою. %-) для того, чтобы не принималось, есть отступы.
← →
ANB © (2006-06-09 11:34) [23]Скобки в условии - сишная привычка.
> if условие then
> а_тут_у_нас_болтается_какое-то_выражение_не_пришей_ко_мне_рукав_называется
> при беглом просмотре кода, особенно, когда условие слишком
> длинное и не видно, что там после then
> выражение можно принять за самостоятельное
Поддерживаю.
← →
Desdechado © (2006-06-09 11:34) [24]Видимость или невидимость THEN не меняет сути, т.к. в начале строки четко видно IF и ELSE.
Да и похоже на Си, у которого THEN нет вовсе, что не мешает восприятию.
А если еще по сишной привычке условия ВСЕГДА брать в скобки (даже одиночные), то путаницы между условиями и тем, что по ним выполняется, не будет.
имхо
← →
Prohodil Mimo © (2006-06-09 11:35) [25]Kolan © (06.06.09 11:29) [19]
Первые буквы в строке заглавными пишу, Переменные - так же,и ещё все имена, если они составные, то первая буква каждой части тоже заглавная.
можете убить - не исправлюсь :о)
← →
скромное мнение (2006-06-09 11:36) [26]Лично я пишу так, чтобы потом дебаггером было удобно по шагам проходить.
if SomeCondition() then DoSomething();
или?
if SomeCondition() then
DoSomething();
Лично для меня второй вариант и нагляднее и удобнее в сопровождении.
P.S.
А спор о том, переносить then или нет на новую строку напоминает спор «остроконечников» и «тупоконечников».
← →
McSimm © (2006-06-09 11:39) [27]
> А нет кусочка своего исходника, где бы это было видно ?
then я не привык переносить, только else
С примерами туго, под рукой вообще нет ничего по Delphi, один вот примерчик моего кода случайно затесался тут :)
http://www.delphimaster.ru/64.html
← →
tButton © (2006-06-09 11:39) [28]
> «тупоконечников»
ввиду незнания сабжа приводимого в качестве примера спора, склонен расценивать сие как попытку оскорбления =)
хотя мне * ибо как писал так и буду
а для форматирования текстов (в т.ч. листингов, в т.ч. программ на OP) не мало программ написано =)
← →
Reindeer Moss Eater © (2006-06-09 11:41) [29]if (A>B)
then X:=A;
x:=Max(a,b);
← →
скромное мнение (2006-06-09 11:44) [30]>> «тупоконечников»
>ввиду незнания сабжа приводимого в качестве примера спора, склонен >расценивать сие как попытку оскорбления
Это старая история. Когда только изобрели громоотвод, в научных кругах разгорелись жаркие дискуссии на тему, какая конструкция принципиально лучше: металлический стержень с острым концом или с тупым. Оная дискуссия во многом напоминала многочисленные споры, проходящие и на этом форуме, как по конструктиву, так и по содержанию. :-)
← →
скромное мнение (2006-06-09 11:44) [31]>> «тупоконечников»
>ввиду незнания сабжа приводимого в качестве примера спора, склонен >расценивать сие как попытку оскорбления
Это старая история. Когда только изобрели громоотвод, в научных кругах разгорелись жаркие дискуссии на тему, какая конструкция принципиально лучше: металлический стержень с острым концом или с тупым. Оная дискуссия во многом напоминала многочисленные споры, проходящие и на этом форуме, как по конструктиву, так и по содержанию. :-)
← →
McSimm © (2006-06-09 11:44) [32]
> один вот примерчик моего кода случайно затесался
как видите, элементы одной конструкции на одном уровне смотрятся очень удобно.
Некоторые склонны делать дополнительный отступ для подэлементов case, строго говоря так наверное правильнее, но тогда сами ветки с кодом получаются с двойным отступом. Так что я предпочитаю один уровень для case и его ключей
← →
Kolan © (2006-06-09 11:45) [33]
> if условие then
> а_тут_у_нас_болтается_какое-то_выражение_не_пришей_ко_мне_рукав_называется
отступы нужно правильные делать....
Чё спорить всё в VCL есть....
← →
han_malign © (2006-06-09 11:47) [34]
> красивее imho использовать Smart tab и Optimal fill
- не надо советовать такую гадость как Optimal fill, времена когда каждый байт на счету был - прошли. При Optimal fill - пробелы попадающие в позиции табуляции заменяются одним #9 - при изменении отступов/шага табуляции - все исходики "едут"...
← →
ЮЮ © (2006-06-09 12:09) [35]
if условие then Action1 else Action2;
если не помешается в 80 символов, то начинаются переносыif условие then
Action1
else
Action2;
если и теперь 1 строка не помещается в 80 символов, тоif
условие
then
Action1
else
Action2
Естественно, условие, Action1, Action2 не выходят за 80-й символ и тоже, при необходимости, переносятсяtry
doc.Save;
doc := nil;
except
if
Application.MessageBox(
PChar(
"Невозможно удалить подразделения."#10#13"Удалить только " +
"приказ, оставив подразделения как "введенные без приказа"?"
),
"Ошибка при удалении приказа"
MB_YESNO + MB_ICONWARNING + MB_DEFBUTTON2
) = mrYes
then begin
doc.Free;
doc := nil;
DefaultConnection.Con.Exec(
"EXEC dbo.SeDepartmentChanges_ClearDocumentRelationships " +
IntToStr(DocumentInfo.Id)
);
doc := TDocumentVacanciesList.Create(false);
doc.AttrValue[DOCUMENT_ATTR_ID] := DocumentInfo.Id;
doc.Load;
doc.Delete;
doc.Save;
doc := nil;
end;
end;
← →
Empleado © (2006-06-09 12:14) [36]
> han_malign © (09.06.06 11:47) [34]
>- не надо советовать такую гадость ....
это был не совет; читай внимательнее !
← →
Игорь Шевченко © (2006-06-09 12:15) [37]Reindeer Moss Eater © (09.06.06 11:41) [29]
А вот и нет. В изначальном выражении присваивания X := B нету
← →
MBo © (2006-06-09 12:38) [38]>скромное мнение
>Это старая история. Когда только изобрели громоотвод,
Это более старая история, которую придумал Свифт ;)
← →
Думкин © (2006-06-09 12:51) [39]> MBo © (09.06.06 12:38) [38]
Всеми разделяется убеждение, что вареные яйца при
употреблении их в пищу испокон веков разбивались с тупого конца; но дед нынешнего императора, будучи ребенком, порезал себе палец за завтраком, разбивая яйцо означенным древним способом. Тогда император, отец ребенка, обнародовал указ, предписывающий всем его подданным под страхом строгого наказания разбивать яйца с острого конца[35]. Этот закон до такой степени озлобил население, что, по словам наших летописей, был причиной шести восстаний, во время которых один император потерял жизнь, а другой - корону[36]. Мятежи эти постоянно разжигались монархами Блефуску, а после их подавления изгнанники всегда находили приют в этой империи. Насчитывают до одиннадцати тысяч фанатиков, которые в течение этого времени пошли на казнь, лишь бы не разбивать яйца с острого конца. Были напечатаны сотни огромных томов, посвященных этой полемике, но книги Тупоконечников давно запрещены, и
вся партия лишена законом права занимать государственные должности. В течение этих смут императоры Блефуску часто через своих посланников делали нам предостережения, обвиняя нас в церковном расколе путем нарушения основного догмата великого нашего пророка Люстрога, изложенного в пятьдесят четвертой главе Блундекраля (являющегося их Алькораном). Между тем это просто насильственное толкование текста, подлинные слова которого гласят: Все истинно верующие да разбивают яйца с того конца, с какого удобнее. Решение же вопроса: какой конец признать более удобным, по моему скромному
суждению, должно быть предоставлено совести каждого или, в крайнем случае, власти верховного судьи империи[37]. Изгнанные Тупоконечники возымели такую силу при дворе императора Блефуску и нашли такую поддержку и поощрение со стороны своих единомышленников внутри нашей страны, что в течение тридцати шести лун оба императора ведут кровавую войну с переменным успехом. За это время мы потеряли сорок линейных кораблей и огромное число мелких судов с тридцатью тысячами лучших моряков и солдат[38]; полагают, что потери неприятеля еще значительнее.
← →
Думкин © (2006-06-09 12:52) [40]
[35] "...разбивать яйца с острого конца."
- Вражда между тупоконечниками и остроконечниками - это аллегорическое
изображение борьбы между католиками и протестантами, заполнившей историю
Англии, Франции и других стран войнами, восстаниями, казнями.
[36] "...один император потерял жизнь, а другой - корону."
- Имеются в виду Карл I Стюарт, казненный в 1649 г., и Иаков II Стюарт,
свергнутый с престола и изгнанный из Англии после революции 1688 г.
Страницы: 1 2 вся ветка
Форум: "Прочее";
Текущий архив: 2006.07.09;
Скачать: [xml.tar.bz2];
Память: 0.57 MB
Время: 0.01 c