Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Delphi [игнор отключен] [закрыт для гостей] / В каком стиле вы оформляете delphi-код? / 25 сообщений из 61, страница 1 из 3
31.03.2019, 23:58
    #39794366
Artem.1st
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
В каком стиле вы оформляете delphi-код?
Здесь интересует два вопроса:
1) Форматирование delphi-кода (отступы, выравнивание блоков)
2) Стиль идентификаторов (имена переменных, функций, типов)

Раньше над этим не задумывался, и писал программы без форматирования, и именовал идентификаторы как придется(с заглавной буквы или с прописной или через подчеркивание). Но как увидел исходники VCL, понял, насколько они удобочитаемы, т.к. оформлены в едином стиле. Типы классов начинаются с “T”, поля класса с “F”, исключения с “E” и т.п....

Хочу использовать такой же стиль. Где почитать инструкцию ?

Кстати, а как вы оформляете программный код? Может еще лучше?

Покажите свои примеры.
Спасибо.
...
Рейтинг: 0 / 0
01.04.2019, 00:37
    #39794376
makhaon
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
В каком стиле вы оформляете delphi-код?
Artem.1st,

гугли: стиль оформления кода delphi, первые несколько ссылок будут нужными.
...
Рейтинг: 0 / 0
01.04.2019, 02:17
    #39794386
Кроик Семён
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
В каком стиле вы оформляете delphi-код?
Код: pascal
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
60.
61.
62.
63.
64.
65.
66.
67.
68.
69.
70.
71.
72.
73.
74.
75.
76.
77.
78.
79.
80.
81.
82.
83.
84.
85.
//для читаимости кода юнита использую такое форматирование:
// табулятор: 3 символа
// слова UNIT / INTERFACE / IMPLEMENTATION заглавными буквами
// классы разделяю ####, секции //////, процедуры в секции ------

UNIT xyz;

...
...

INTERFACE

...
...

IMPLEMENTATION

//##############################################################################
{ TAnyClass }
//##############################################################################
constructor TAnyClass.Create();
begin
   //...
end;
//------------------------------------------------------------------------------
destructor TAnyClass.Destroy();
begin
   //...
end;
////////////////////////////////////////////////////////////////////////////////
procedure TAnyClass.Proc1(Sender: TObject);
begin
   //...
end;
//------------------------------------------------------------------------------
procedure TAnyClass.Proc2();
begin
   //...
end;
//------------------------------------------------------------------------------
procedure TAnyClass.Proc3(....................);
begin
   //...
end;
//##############################################################################
{ TMainForm }
//##############################################################################
procedure TMainForm.OnCreate(Sender: TObject);
begin
   //...
end;
//------------------------------------------------------------------------------
procedure TMainForm.OnActivate(Sender: TObject);
begin
   //...
end;
//------------------------------------------------------------------------------
procedure TMainForm.OnClose(Sender: TObject);
begin
   //...
end;
//------------------------------------------------------------------------------
procedure TMainForm.OnDestroy(Sender: TObject);
begin
   //...
end;
////////////////////////////////////////////////////////////////////////////////
procedure TMainForm.Proc1(...........);
begin
   //...
end;
//------------------------------------------------------------------------------
procedure TMainForm.Proc2(...........);
begin
   //...
end;
//------------------------------------------------------------------------------
procedure TMainForm.Proc3(...........);
begin
   //...
end;
//##############################################################################


END.
...
Рейтинг: 0 / 0
01.04.2019, 08:26
    #39794411
Dmitry Arefiev
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
В каком стиле вы оформляете delphi-код?
...
Рейтинг: 0 / 0
01.04.2019, 10:23
    #39794449
Valery_B
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
В каком стиле вы оформляете delphi-код?
Artem.1stПокажите свои примеры.
Спасибо.
0. Стараюсь всё как было у Borland
1. Все операторы - в lowercase, с отступом от предыдущего.
2. Все hard-coded строки(кроме названия полей FieldByName) - resourcestring
3. В Делфи, я всегда пишу if Assigned, а не <> nil
4. Всегда пишу Result:=0, а не ИмяФункции:=0
5. Никогда не использую record, а всегда создаю отдельный класс(record нужен только для WinApi)
6. У диалогов делаю class function Execute (Result:=Dlg.ShowModal=mrOK);
7. Название локальных переменных
Код: pascal
1.
2.
3.
 var 
  List:TStringList; 
  Dlg:TForm


8. if then else - строго на разных строках, т.е. вот так:
Код: pascal
1.
2.
3.
4.
 if Assigned(FOwner) then
  Result:=FOwner
   else
  Result:=InternalGetOwner;


Ну и конечно, всё то, что написано в современных шаблонах.

А) Любой метод класса - не более 5-7 строк кода.
Б) Классы из ~300-500 строк кода. В самых жутких случаях может быть и ~1000. Но ни о каких 3к+ и более речи вообще не идёт. Каждый класс в отдельном файле +-.
В) Никаких циркулярных ссылок друг на друга.
Г) Короче, не делать Говнокод , Божественные объекты и Магические кнопки
...
Рейтинг: 0 / 0
01.04.2019, 10:30
    #39794454
Valery_B
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
В каком стиле вы оформляете delphi-код?
Valery_BВ) Никаких циркулярных ссылок друг на друга.

см. Сепульки :)

Герой рассказа Ийон Тихий ищет в «Космической энциклопедии» информацию о «сепульках», попадая в цикл косвенной рекурсии:
С. Лем. «Звёздные дневники Ийона Тихого. Путешествие четырнадцатое»Нашёл следующие краткие сведения:
«СЕПУЛЬКИ — важный элемент цивилизации ардритов (см.) с планеты Энтеропия (см.). См. СЕПУЛЬКАРИИ».
Я последовал этому совету и прочёл:
«СЕПУЛЬКАРИИ — устройства для сепуления (см.)».
Я поискал «Сепуление»; там значилось:
«СЕПУЛЕНИЕ — занятие ардритов (см.) с планеты Энтеропия (см.). См. СЕПУЛЬКИ».
...
Рейтинг: 0 / 0
01.04.2019, 11:46
    #39794504
Artem.1st
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
В каком стиле вы оформляете delphi-код?
Кроик Семён,
спасибо за Пример, и идею "форматировать delphi-код на уровне модуля"
...
Рейтинг: 0 / 0
01.04.2019, 11:48
    #39794506
Artem.1st
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
В каком стиле вы оформляете delphi-код?
Dmitry Arefiev http://edn.embarcadero.com/article/10280

Полезная ссылка. Прямо по теме, и от самого Embarcadero.
Спасибо.
...
Рейтинг: 0 / 0
01.04.2019, 11:51
    #39794508
Artem.1st
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
В каком стиле вы оформляете delphi-код?
Valery_B0. ...
1. ...
...

Вижу много полезных советов и расписано по пунктам.
Ценная информация.
Спасибо!
...
Рейтинг: 0 / 0
01.04.2019, 12:11
    #39794525
kealon(Ruslan)
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
В каком стиле вы оформляете delphi-код?
Artem.1stDmitry Arefiev http://edn.embarcadero.com/article/10280

Полезная ссылка. Прямо по теме, и от самого Embarcadero.
Спасибо.дурной стиль, абслютно бессмысленное солдафонство
но если "лишь бы строем", то сойдёт

самые мозготрофирующие и вредные части этого гайда:
Код: pascal
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
Example:

  // INCORRECT
  if A < B then begin
    DoSomething; 
    DoSomethingElse;
  end else begin
    DoThis;
    DoThat;
  end;
  
  // CORRECT
  if A < B then 
  begin
    DoSomething; 
    DoSomethingElse;
  end 
  else 
  begin
    DoThis;
    DoThat;
  end;



Код: pascal
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
  // INCORRECT
  for i := 0 to 10 do begin
    DoSomething; 
    DoSomethingElse;
  end;
  

  // CORRECT
  for i := 0 to 10 do 
  begin
    DoSomething; 
    DoSomethingElse;
  end;



Код: pascal
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
Example:


  // INCORRECT
  while x < j  do begin
    DoSomething; 
    DoSomethingElse;
  end;
  

  // CORRECT
  while x < j do 
  begin
    DoSomething; 
    DoSomethingElse;
  end;


для удобства отладки, корректировки и просмотра, как раз таки всё наоборот
...
Рейтинг: 0 / 0
01.04.2019, 12:25
    #39794530
asutp2
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
В каком стиле вы оформляете delphi-код?
Dmitry Arefiev http://edn.embarcadero.com/article/10280 данное руководство никак не учитывает появление XML-документации в коде, а также регионов {$REGION}. Хотя уже во многих исходниках Tokyo и Rio xml-документация используется.
...
Рейтинг: 0 / 0
01.04.2019, 12:27
    #39794531
Мимопроходящий
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
В каком стиле вы оформляете delphi-код?
01.04.2019 11:48, Artem.1st пишет:
> Полезная ссылка. Прямо по теме, и от самого Embarcadero.

при наличии форматировщиков не стоит даже заморачиваться.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
01.04.2019, 12:59
    #39794549
DmSer
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
В каком стиле вы оформляете delphi-код?
kealon(Ruslan)дурной стиль, абслютно бессмысленное солдафонство
но если "лишь бы строем", то сойдёт

самые мозготрофирующие и вредные части этого гайда:


Нормальный стиль. Человек, придерживающийся этого стиля, без проблем вольётся в любую команду. Но если писать только для себя - то пожалуйста, пишите как угодно!
...
Рейтинг: 0 / 0
01.04.2019, 13:19
    #39794564
Мимопроходящий
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
В каком стиле вы оформляете delphi-код?
01.04.2019 12:59, DmSer пишет:
> Человек, придерживающийся этого стиля, без проблем вольётся в любую команду.

я другой такой страны не знаю... (С)
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
01.04.2019, 13:59
    #39794587
Foxpc
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
В каком стиле вы оформляете delphi-код?
ctrl + d самый лучший, самый красивый. Самый - самый, самый ленивый
...
Рейтинг: 0 / 0
01.04.2019, 16:16
    #39794683
kealon(Ruslan)
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
В каком стиле вы оформляете delphi-код?
DmSerНормальный стиль. Человек, придерживающийся этого стиля, без проблем вольётся в любую команду. Но если писать только для себя - то пожалуйста, пишите как угодно!человек вольётся в любую команду, но если кто-то хочет за это платить, то какое мне дело до того, как ему хочется деньги тратить
Ctrl+D как выше написали, никто не отменял
...
Рейтинг: 0 / 0
01.04.2019, 16:34
    #39794697
Artem.1st
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
В каком стиле вы оформляете delphi-код?
kealon(Ruslan)дурной стиль, абслютно бессмысленное солдафонство но если "лишь бы строем", то сойдёт
Спасибо за ответ.
может VCL-стиль устарел ... тогда где найти современный вариант оформления Delphi-кода?
Я понял главную цель - код должен быть удочитаемый , т.е. форматируем не для красоты, а чтоб через год быстро глянуть и все сразу вспомнить
...
Рейтинг: 0 / 0
01.04.2019, 16:49
    #39794705
Maxim.K
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
В каком стиле вы оформляете delphi-код?
http://edn.embarcadero.com/article/10280
Цитата из Help-а:
"Lines should be limited to 80 columns . Lines longer than 80 columns should be broken into one or more continuation lines ...."
Код: pascal
1.
2.
3.
4.
5.
function CreateWindowEx(dwExStyle: DWORD; 
  lpClassName: PChar; lpWindowName: PChar; 
  dwStyle: DWORD; X, Y, nWidth, nHeight: Integer;
  hWndParent: HWND; hMenu: HMENU; hInstance: HINST; 
  lpParam: Pointer): HWND; stdcall;


Такой код удобно читать?
....
Мне кажется, что инструкция писалась в те далекие времена, когда мониторы были маленькими, и строка в 80 столбцов занимала весь экран. По этой же причине, отступ в 2 символа - сейчас маловат. Я давно использую отступ в 3 символа(так наглядней).
Хотя у каждого программиста свой стиль.
...
Рейтинг: 0 / 0
01.04.2019, 16:50
    #39794708
zinpub
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
В каком стиле вы оформляете delphi-код?
Стиль должен быть един у команды, чтобы адекватно дифф работал...
...
Рейтинг: 0 / 0
01.04.2019, 18:44
    #39794780
Василий 2
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
В каком стиле вы оформляете delphi-код?
Valery_B2. Все hard-coded строки(кроме названия полей FieldByName) - resourcestring
3. В Делфи, я всегда пишу if Assigned, а не <> nil
5. Никогда не использую record, а всегда создаю отдельный класс(record нужен только для WinApi)

А) Любой метод класса - не более 5-7 строк кода.
Б) Классы из ~300-500 строк кода. В самых жутких случаях может быть и ~1000. Но ни о каких 3к+ и более речи вообще не идёт. Каждый класс в отдельном файле +-.

2 - частично спорно
3 - спорно
5 - крайне спорно, я бы даже сказал вредно
А) - 5-7??? Не хотел бы я работать с твоим кодом, честно говоря. Скорее вредно.
Б) Зависит от. И жавовский стиль "по классу на файл" тоже нафиг (должно определяться содержимым)

Да, и отсутствие пробелов после : и вокруг := тоже в минус как по мне

kealon(Ruslan)самые мозготрофирующие и вредные части этого гайда:

А я вот считаю вредным begin в конце строки

По сабжу: я бы посоветовал ориентироваться на тексты VCL, а там уже свой стиль выработаешь.
...
Рейтинг: 0 / 0
01.04.2019, 20:27
    #39794828
kealon(Ruslan)
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
В каком стиле вы оформляете delphi-код?
Artem.1stkealon(Ruslan)дурной стиль, абслютно бессмысленное солдафонство но если "лишь бы строем", то сойдёт
Спасибо за ответ.
может VCL-стиль устарел ... тогда где найти современный вариант оформления Delphi-кода?
Я понял главную цель - код должен быть удочитаемый , т.е. форматируем не для красоты, а чтоб через год быстро глянуть и все сразу вспомнитья бы назвал это modula-стиль, излишний begin сбивает, т.е. логичнее и понятне когда end к тому что закрывает, т.е. for - end, while - end.

Использованию begin-end где условно не надо тоже так себе правило, отлаживать в таком варианте удобнее, можно вставить любую строчку без лишних манипуляций, а через сопли if-в с такими оптимизациями ещё пробраться надо.
Видел мазахистов, которые соберут в кучу for, while, if а потом сами теряются.
Аналогично с "лишними" скобками, я думаю если тебе понятнее - пиши

частая ошибка в плюсах:
Код: plaintext
1.
 -a*b


а если п не выпендривались, было бы:
Код: plaintext
1.
 -(a*b)


сможешь догадаться почему?

а VCL гадок, особенно где они в Controls мутят, такое наворотили, что отдельные процы каждую строчку приходится под отладчиком разбирать
...
Рейтинг: 0 / 0
01.04.2019, 21:22
    #39794842
L1G
L1G
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
В каком стиле вы оформляете delphi-код?
kealon(Ruslan)самые мозготрофирующие и вредные части этого гайда:
...
для удобства отладки, корректировки и просмотра, как раз таки всё наоборотя тоже так писал (сишники и примкнувшие называют это "египетский стиль", поиск по картинкам пояснит, почему), пока не стал использовать подсветку синтаксиса из CnPack/CnWizards, которая раскрашивает пары begin-end в разные цвета и рисует слева линии между ними. (картинка: 15741636 )
Часто очень удобно, но египетский стиль с ней выглядит явно некрасиво.
...
Рейтинг: 0 / 0
01.04.2019, 21:35
    #39794849
rgreat
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
В каком стиле вы оформляете delphi-код?
Maxim.K http://edn.embarcadero.com/article/10280
Цитата из Help-а:
"Lines should be limited to 80 columns . Lines longer than 80 columns should be broken into one or more continuation lines ...."
Код: pascal
1.
2.
3.
4.
5.
function CreateWindowEx(dwExStyle: DWORD; 
  lpClassName: PChar; lpWindowName: PChar; 
  dwStyle: DWORD; X, Y, nWidth, nHeight: Integer;
  hWndParent: HWND; hMenu: HMENU; hInstance: HINST; 
  lpParam: Pointer): HWND; stdcall;


Такой код удобно читать?
....
Мне кажется, что инструкция писалась в те далекие времена, когда мониторы были маленькими, и строка в 80 столбцов занимала весь экран. По этой же причине, отступ в 2 символа - сейчас маловат. Я давно использую отступ в 3 символа(так наглядней).
Хотя у каждого программиста свой стиль.

Я параметров очень много я делаю так:
Код: pascal
1.
2.
3.
4.
5.
6.
7.
8.
9.
function CreateWindowEx(dwExStyle: DWORD; 
                        lpClassName: PChar; 
                        lpWindowName: PChar; 
                        dwStyle: DWORD; 
                        X, Y, nWidth, nHeight: Integer;
                        hWndParent: HWND; 
                        hMenu: HMENU; 
                        hInstance: HINST; 
                        lpParam: Pointer): HWND; stdcall;
...
Рейтинг: 0 / 0
01.04.2019, 22:06
    #39794859
Kazantsev Alexey
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
В каком стиле вы оформляете delphi-код?
kealon(Ruslan)излишний begin сбивает, т.е. логичнее и понятне когда end к тому что закрывает, т.е. for - end, while - end
Вообще-то begin это начало составного оператора, а end его окончание. Так что, логичнее и понятнее совсем по-другому.
...
Рейтинг: 0 / 0
01.04.2019, 22:11
    #39794863
Foxpc
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
В каком стиле вы оформляете delphi-код?
L1G,

в дельфи же рисуются разноцветные линии
...
Рейтинг: 0 / 0
Форумы / Delphi [игнор отключен] [закрыт для гостей] / В каком стиле вы оформляете delphi-код? / 25 сообщений из 61, страница 1 из 3
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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