powered by simpleCommunicator - 2.0.59     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Delphi [игнор отключен] [закрыт для гостей] / Флейм про оформление и begin-end
25 сообщений из 261, страница 3 из 11
Флейм про оформление и begin-end
    #40063127
Фотография softwarer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Гаджимурадов Рустам
Это для скольки штук простыней?

Написал же вроде, пара десятков.

Гаджимурадов Рустам
Ещё раз - ты на каждый FSelRow свой наследник делаешь

Да.
...
Рейтинг: 0 / 0
Флейм про оформление и begin-end
    #40063128
Фотография softwarer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Гаджимурадов Рустам
Код: pascal
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
begin
  if () then
  begin
    while () do
    begin
      try
      except
      end
    end
  end
end



Что тут выкинуть?

Код: pascal
1.
2.
3.
4.
5.
6.
7.
begin
  if not () then exit;
  while () do
  try
  except
  end;
end;
...
Рейтинг: 0 / 0
Флейм про оформление и begin-end
    #40063131
Barmaley57
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
softwarer
Гаджимурадов Рустам
Код: pascal
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
begin
  if () then
  begin
    while () do
    begin
      try
      except
      end
    end
  end
end



Что тут выкинуть?

Код: pascal
1.
2.
3.
4.
5.
6.
7.
begin
  if not () then exit;
  while () do
  try
  except
  end;
end;

+100500
...
Рейтинг: 0 / 0
Флейм про оформление и begin-end
    #40063136
Гаджимурадов Рустам
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
softwarer> Написал же вроде, пара десятков.

Соответственно, кол-во строк не имеет смысла.

softwarer> if not () then exit;

С этим согласен, в простейшем случае.

А это


> while () do
> try
> except
> end;
> end;


неравносильно предыдущему куску кода
(особенно если except заменить на finally).
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Флейм про оформление и begin-end
    #40063137
Гаджимурадов Рустам
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ъъъъъ> А вообще - смелее выделять блоки кода в методы

Ты хоть смайлики ставь, а-то не всегда очевидно, когда ты троллишь. :)
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Флейм про оформление и begin-end
    #40063143
booby
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
softwarer
...
...
Код: pascal
1.
2.
3.
4.
5.
6.
7.
begin
  if not () then exit;
  while () do
  try
  except
  end;
end;


exit вроде обязывает, нет?

В структурно родственных языках практикуют такого рода форму для любителей раннего выхода:
Код: pascal
1.
2.
3.
4.
5.
6.
7.
8.
for var i := 1 to 1 do
begin
  if not () then break;
  while () do
  try
  except
  end;
end;
...
Рейтинг: 0 / 0
Флейм про оформление и begin-end
    #40063147
Гаджимурадов Рустам
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
booby> exit вроде обязывает, нет?

Exit - выход из метода.

> В структурно родственных языках практикуют такого
> рода форму для любителей раннего выхода:

break - выход из цикла, не из метода.
И Ваш код отличается от обсуждаемого.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Флейм про оформление и begin-end
    #40063150
booby
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Гаджимурадов Рустам,

теперь я ЯННП

обсуждать вроде предлагалось расстановку скобок составного оператора...
В топике тогда весь код не соответствует обсуждаемому.

Ладно, не обращай внимания, я случайно забрёл.
...
Рейтинг: 0 / 0
Флейм про оформление и begin-end
    #40063152
Фотография _Vasilisk_
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ъъъъъ
Код: pascal
1.
2.
3.
4.
if then
  while do
    try
    end

Это на пару порядков хуже. Сразу теряется понимание, что к какому блоку принадлежит.

Я в begin-end заворачиваю даже один оператор, если он длинный и располагается на нескольких строках
...
Рейтинг: 0 / 0
Флейм про оформление и begin-end
    #40063159
Гаджимурадов Рустам
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
_Vasilisk_> Я в begin-end заворачиваю даже один оператор, если
_Vasilisk_> он длинный и располагается на нескольких строках

Это оверкилл.

Если это расчётный оператор (а не вызов функции
с 12ю параметрами), то лучше его просто разбить
на 2-3 с переприсваиваниями.
...
Рейтинг: 0 / 0
Флейм про оформление и begin-end
    #40063160
Гаджимурадов Рустам
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
booby> обсуждать вроде предлагалось расстановку скобок составного оператора...

Обсуждалось много чего, просто рассуждения
про break vs exit - совсем не тема данного топика.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Флейм про оформление и begin-end
    #40063177
Фотография _Vasilisk_
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Гаджимурадов Рустам
Если это расчётный оператор (а не вызов функции
Ну вот из реального кода
Код: pascal
1.
2.
3.
4.
5.
6.
  if not TimeFromIsNull then begin
    LStr := LStr + Format(
      ', Value: %s',
      [FormatDateTime('yyyy-mm-ss hh:nn:ss.zzz', AUtil.ISCTimeStampToDateTime(Self.TimeFrom))]
    );
  end;

или
Код: pascal
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
    if AStyle.Style.BorderWidth > 0 then begin
      LPath.D := Format(
        'M %.1f %.1f H %.1f L 50 %d Z', [
          6.7 + LDelta,
          75 - AStyle.Style.BorderWidth / 2,
          93.3 - LDelta,
          AStyle.Style.BorderWidth
        ],
        LPath.SVGFormatSettings
      );
    end else
      LPath.D := 'M 6.7 75 H 93.3 L 50 0 Z';
...
Рейтинг: 0 / 0
Флейм про оформление и begin-end
    #40063180
Гаджимурадов Рустам
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
_Vasilisk_> Ну вот из реального кода

Тут составной оператор определённо лишний.
Лично я бы и Format выкинул, за ненадобюностью.

> или
> LPath.D := Format(

Тут составной оператор тоже не нужен, ИМХО,
достаточно отступов, которые ты итак сделал.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Флейм про оформление и begin-end
    #40063191
Фотография defecator
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
Гаджимурадов Рустам
ъъъъъ
пропущено...
От таких мест нужно избавляться.

Ну как ты от них избавишься?

Код: pascal
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
begin
  if () then
  begin
    while () do
    begin
      try
      except
      end
    end
  end
end




Что тут выкинуть?


первый IF выкинуть вообще просто
Я лично адепт простых условий, и чтобы не было вложенносте
всё, что не надо, проверить ДО

Код: pascal
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
begin
  if not () then Exit ;

    while () do
    begin
      try
      except
      end
    end

end
...
Рейтинг: 0 / 0
Флейм про оформление и begin-end
    #40063192
Фотография defecator
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
_Vasilisk_
Гаджимурадов Рустам
Если это расчётный оператор (а не вызов функции
Ну вот из реального кода
Код: pascal
1.
2.
3.
4.
5.
6.
  if not TimeFromIsNull then begin
    LStr := LStr + Format(
      ', Value: %s',
      [FormatDateTime('yyyy-mm-ss hh:nn:ss.zzz', AUtil.ISCTimeStampToDateTime(Self.TimeFrom))]
    );
  end;


или
Код: pascal
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
    if AStyle.Style.BorderWidth > 0 then begin
      LPath.D := Format(
        'M %.1f %.1f H %.1f L 50 %d Z', [
          6.7 + LDelta,
          75 - AStyle.Style.BorderWidth / 2,
          93.3 - LDelta,
          AStyle.Style.BorderWidth
        ],
        LPath.SVGFormatSettings
      );
    end else
      LPath.D := 'M 6.7 75 H 93.3 L 50 0 Z';


это всеми любимый стиль оформления в PL/SQL
...
Рейтинг: 0 / 0
Флейм про оформление и begin-end
    #40063196
Гаджимурадов Рустам
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
defecator> всё, что не надо, проверить ДО

Это победа, да, 3 end-a вместо четырёх.
Потом другом в коде выкинуть With и
написать вместо блока переменную, да.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Флейм про оформление и begin-end
    #40063197
delphinotes
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
А я ещё в некоторых случаях стал точку с запятой в отдельную строку выносить. И в вызываемый метод, когда параметров много - каждый параметр на отдельной строке. Пример:

Код: pascal
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
  if Condition then
    SomethingMethodWithManyParams(
      // in:
      FirstParam,
      NextParam,
      ..
      // out:
      LastParam
    )
  else
    OtherMethodWithFewParams(P1, P2, P3)
  ;



Смысл в том, что:
а) легко выделять для копи-пасты (строками целиком, не надо целиться мышкой между символами)
б) пока код черновой - добавлять/удалять параметры можно комментированием одной строки
в) точка с запятой показывает текущий отступ и не затеряется где-то справа, если вдруг вызов второго метода разрастётся ещё параметрами и это всё уедет вправо.

Но такое чаще для PL/SQL (в Oracle, особенно точка с запятой актуальна для SQL-блоков в PL/SQL-коде).
В Delphi всё же проще параметры определять в рекорды/классы и передавать одной переменной (или просто вызвав метод класса без параметров).

А вообще я за GunSmoker не пишите комментарии - такой подход добавит читаемости и уменьшит кол-во потенциальных ошибок, проверено практикой.
...
Рейтинг: 0 / 0
Флейм про оформление и begin-end
    #40063212
bk0010
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Гаджимурадов Рустам

Ну как ты от них избавишься?
Код: pascal
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
begin
  if () then
  begin
    while () do
    begin
      try
      except
      end
    end
  end
end


Что тут выкинуть?
Зачем выкидывать? Тут как раз все нормально: процедура выполняет одну задачу. Зачем ее искусственно рвать на куски? Нет, если память как у золотой рыбки или код не форматирован, то смысл есть, но в реальности-то зачем?
...
Рейтинг: 0 / 0
Флейм про оформление и begin-end
    #40063228
didgik
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вот поэтому скобочки из С++ рулят.
...
Рейтинг: 0 / 0
Флейм про оформление и begin-end
    #40063248
Фотография defecator
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
didgik
Вот поэтому скобочки из С++ рулят.


чем это они рулят ?
ровно то же самое и будет
...
Рейтинг: 0 / 0
Флейм про оформление и begin-end
    #40063253
ъъъъъ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
_Vasilisk_
ъъъъъ
Код: pascal
1.
2.
3.
4.
if then
  while do
    try
    end


Это на пару порядков хуже. Сразу теряется понимание, что к какому блоку принадлежит.
...

Да ладно. С "этим" питон живет, и ни жу-жу. И в рейтинге, в отличии от.
...
Рейтинг: 0 / 0
Флейм про оформление и begin-end
    #40063256
ъъъъъ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
defecator
didgik
Вот поэтому скобочки из С++ рулят.


чем это они рулят ?
ровно то же самое и будет

В сях begin end в среднем в 4 раза короче, и нет тупости типа

Код: pascal
1.
2.
3.
4.
 if x then
  XXX; // Ахтунг!
 else
  YYY; 
...
Рейтинг: 0 / 0
Флейм про оформление и begin-end
    #40063266
Фотография softwarer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Гаджимурадов Рустам
Соответственно, кол-во строк не имеет смысла.

Так я сразу так и сказал. Но поскольку тебя заинтересовал этот вопрос - дал информацию.

Гаджимурадов Рустам
неравносильно предыдущему куску кода

Зависит от. Именно поэтому я не ленюсь расставлять комментарии типа { ... длинный кусок кода ... }.

booby
exit вроде обязывает, нет?

"Всё, что я должен, записано в налоговом кодексе" (тм)

booby
В структурно родственных языках практикуют такого рода форму

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

Код: pascal
1.
2.
3.
if {условие}
  then a := true
  else a := false



пишут

Код: pascal
1.
2.
3.
4.
if {условие} then
begin
  i := 1;
end;



и ещё множество подобных конструкций, в том числе и описанную Вами.
...
Рейтинг: 0 / 0
Флейм про оформление и begin-end
    #40063267
fraks
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
softwarer
Гаджимурадов Рустам

Что тут выкинуть?

Код: pascal
1.
2.
3.
4.
begin
  if not () then exit;
  ...
end;


Я конечно тоже использую такой метод "испуганного программирования", но исключительно когда эта строка - первая и единственная такого рода в процедуре. Типа если в датасете нет выбранной строки - то идем нафиг.

Если такие убегания встречаются внутри, да еще неоднократно - это не есть хорошо.
...
Рейтинг: 0 / 0
Флейм про оформление и begin-end
    #40063268
Фотография defecator
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
ъъъъъ
defecator
пропущено...


чем это они рулят ?
ровно то же самое и будет

В сях begin end в среднем в 4 раза короче, и нет тупости типа

Код: pascal
1.
2.
3.
4.
 if x then
  XXX; // Ахтунг!
 else
  YYY; 



твой ахтунг в Дельфи не скомпилируется
...
Рейтинг: 0 / 0
25 сообщений из 261, страница 3 из 11
Форумы / Delphi [игнор отключен] [закрыт для гостей] / Флейм про оформление и begin-end
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]