Re[3]: Читаемость кода?
От: Sinclair Россия https://github.com/evilguest/
Дата: 26.06.24 17:31
Оценка:
Здравствуйте, Khimik, Вы писали:

K>Здравствуйте, SaZ, Вы писали:


K>>>...


SaZ>>А что, на делфи не принято делать отступы для логических блоков в коде? Невозможно же читать эту простыню. Страшно даже представить, что у вас будет в реальных проектах.


K>Мне кажется, что как у меня — удобнее. Может это какая-то моя специфика. Конечно если устроюсь в контору — придётся переучиваться.

K>Часто бывает удобно, например, поместить блок begin end с несколькими операторами в одну строку, потому что смысл блока понятен и часто эти блоки повторяются (в моём коде выше это есть).
Это никак не противоречит нормальным отступам.
Зато эти отступы позволяют быстро видеть границы "вертикальных" блоков, а не выискивать глазами очередной end среди нагромождения ключевых слов:
procedure tdoublearray.superqsort;
var
  q:integer;
  sumval, midval, tmpval: double;
  tmparray1, tmparray2: tdoublearray;
begin
  if count <= 1 then exit;
  if count = 2 then begin
    if fitems[1] < fitems[0] then begin tmp := fitems[1]; fitems[1] := fitems[0]; fitems[0 ]:= tmp; end;
    exit;
  end; // вот этот end - он от какого begin? Отступы позволяют сразу это увидеть, не тратя мозг на поиск незакрытых begin вверх по тексту
  sumval := 0;
  for q := 0 to count do sumval := sumval + fitems[q];
  midval := sumval / count;
  tmparay1 := tdoublearray.create; 
  tmparray1.capacity := сount; // почему нельзя сразу передать capacity в конструктор?
  tmparray2 := tdoublearray.create;
  tmparray2.capacity := count;
  for q := 0 to count-1 do if fitems[q] > midval then tmparray2.add(fitems[q]) else tmparray1.add(fitems[q]);
  tmparray1.superqsort;
  tmparray2.superqsort;
  for q := 0 to tmparray1.count - 1 do fitems[q]:=tmparray1.fitems[q];
  for q := 0 to tmparray2.count - 1 do fitems[tmparray1.count + q] := tmparray2.fitems[q];
  tmparray1.free;
  tmparray2.free; 
end;
Уйдемте отсюда, Румата! У вас слишком богатые погреба.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.