Именование форм и юнитов

Общие вопросы программирования, алгоритмы и т.п.

Модератор: Модераторы

Именование форм и юнитов

Сообщение mirk » 15.05.2017 18:20:44

Хотел тут причесать код для красоты и назвать форму и ее юнит одним именем (что логично), но получил ошибку.
Кто и как строит именование форм и юнитов в проекте?
mirk
постоялец
 
Сообщения: 290
Зарегистрирован: 24.09.2007 10:03:39

Re: Именование форм и юнитов

Сообщение Снег Север » 15.05.2017 18:34:04

Юнит называть - название формы+unit.
Аватара пользователя
Снег Север
энтузиаст
 
Сообщения: 940
Зарегистрирован: 27.11.2007 16:14:47

Re: Именование форм и юнитов

Сообщение Лекс Айрин » 15.05.2017 18:34:56

Лично я стараюсь так же как в самом Лазаре.
модуль Main
Форма FMain
класс TFMain
Аватара пользователя
Лекс Айрин
долгожитель
 
Сообщения: 3911
Зарегистрирован: 19.02.2013 16:54:51

Re: Именование форм и юнитов

Сообщение mirk » 15.05.2017 18:40:34

Снег Север писал(а):Юнит называть - название формы+unit.

Тогда файл форма создается аналогичный имя_unit.lfm
Странное поведение. Ощущение что разработчики лазаря не задумывались о красоте именования файлов вообще.
mirk
постоялец
 
Сообщения: 290
Зарегистрирован: 24.09.2007 10:03:39

Re: Именование форм и юнитов

Сообщение Лекс Айрин » 15.05.2017 18:48:50

mirk писал(а): Ощущение что разработчики лазаря не задумывались о красоте именования файлов вообще.


Конечно НЕ задумывались. Одинаковые названия взаимосвязанных файлов позволяют легче понять какие из них соотносятся с одной и той же формой. Это позволяет, если надо, манипулировать файлами вне среды. Что-то более сложное обладает и большими накладными расходами.
Аватара пользователя
Лекс Айрин
долгожитель
 
Сообщения: 3911
Зарегистрирован: 19.02.2013 16:54:51

Re: Именование форм и юнитов

Сообщение ev » 15.05.2017 21:13:36

я наоборот именую - в начало unit добавляю
так все юниты лежат в каталоге рядом и взглядом легко выцепляются иные файлы
ev
долгожитель
 
Сообщения: 1685
Зарегистрирован: 27.04.2005 23:19:06
Откуда: Москва

Re: Именование форм и юнитов

Сообщение Лекс Айрин » 16.05.2017 09:50:26

ev, это не мысль.... Это идея! (с)
Аватара пользователя
Лекс Айрин
долгожитель
 
Сообщения: 3911
Зарегистрирован: 19.02.2013 16:54:51

Re: Именование форм и юнитов

Сообщение sign » 16.05.2017 11:27:52

У меня всё единообразно.
Все названия с заглавной буквы.
Имя проекта начинается с малой p, пример - pUps.
Все юниты предваряются малой u, пример - uUps.
Все формы предваряются малой f, пример - fUps.
sign
энтузиаст
 
Сообщения: 860
Зарегистрирован: 30.08.2009 09:20:53

Re: Именование форм и юнитов

Сообщение stanilar » 18.05.2017 00:10:33

ev писал(а): в начало unit добавляю

Обозначения категорий языка программирования (классы, файлы, объекты) имеет смысл всегда добавлять в конец. Тогда визуально в коде все категории, относящиеся к одной и той-же сущности, будут иметь одинаковой название, что улучшает отлов логических ошибок. Например
Код: Выделить всё
unit SampleFormUnit;

class SampleFormClass = class(TForm);
  class function GetInst: SampleFormClass;
end;

var SampleFormVar : SampleFormClass;

class function SampleFormClass.GetInst: SampleFormClass;
begin
  if SampleFormVar = nil then
    SampleFormVar : SampleFormClass.Create;
  result := SampleFormVar;
end;



P.S. С одной сторон в моем коде для классов принято общее правило именования, с другой у меня больше нет проектов под Дельфи.
stanilar
постоялец
 
Сообщения: 271
Зарегистрирован: 09.03.2010 19:09:02

Re: Именование форм и юнитов

Сообщение ev » 18.05.2017 01:44:13

stanilar писал(а):Обозначения категорий языка программирования (классы, файлы, объекты) имеет смысл всегда добавлять в конец.

ох уж эти веселые утверждения с приставкой "всегда" :lol:

stanilar писал(а):Тогда визуально в коде все категории, относящиеся к одной и той-же сущности, будут иметь одинаковой название, что улучшает отлов логических ошибок.

это пример только одной логической сортировки, но часто нужны и другие
разным людям удобнее в голове сортировать по разным признакам
тут каждый выбирает сам исходя из своих привычек и возможно задач... но уж никак не "всегда" :wink:
ev
долгожитель
 
Сообщения: 1685
Зарегистрирован: 27.04.2005 23:19:06
Откуда: Москва

Re: Именование форм и юнитов

Сообщение vitaly_l » 18.05.2017 07:06:44

mirk писал(а):причесать код для красоты

с кодом можно поступать также как с юнитами. В смысле перед названием ставить условный символ, например: для всех integer название всегда начинается на i и тогда, потом, очень легко ориентироваться в программе.

iNameCount := i; <== здесь вы уже точно знаете с каким типом переменных работает код.
по этому же принципу переименовываются и все контролы.

.
Аватара пользователя
vitaly_l
долгожитель
 
Сообщения: 2964
Зарегистрирован: 31.01.2012 16:41:41

Re: Именование форм и юнитов

Сообщение Снег Север » 18.05.2017 07:32:01

С незапамятных времен - первым языком программирования у меня был фортран - целым переменным даю имена, начинающиеся на i,j,k,l,m,n.
Аватара пользователя
Снег Север
энтузиаст
 
Сообщения: 940
Зарегистрирован: 27.11.2007 16:14:47

Re: Именование форм и юнитов

Сообщение Лекс Айрин » 18.05.2017 09:27:03

stanilar писал(а): Тогда визуально в коде все категории, относящиеся к одной и той-же сущности, будут иметь одинаковой название, что улучшает отлов логических ошибок.


При работе в нормальной IDE это, имхо, не имеет большого значения. К тому же небольшой префикс перед именем легко выполняет эту же роль.
Аватара пользователя
Лекс Айрин
долгожитель
 
Сообщения: 3911
Зарегистрирован: 19.02.2013 16:54:51

Re: Именование форм и юнитов

Сообщение stanilar » 18.05.2017 14:04:35

Лекс Айрин писал(а): К тому же небольшой префикс перед именем легко выполняет эту же роль.

Нет, он выполняет другую роль. А именно - проверку того, что никто не пытается присвоить переменной с целым типом значение с типом объекта. Вот именно такая проверка в современных иде и не нужна. Особенно в паскале. Т.е. это повторная проверка того, что уже проверено компилятором, и не имеет отношения к логике работы программы.
В моем примере префиксом служит название сущности (SampleForm), что позволяет легче следить за тем, что работа в коде относится к одной сущности, что и является некой проверкой логической целостности.

P.S. Кстати, топик навел меня на мысль, что имеет смысл отказаться от уникальности имен для разных встроенных типов. Типа такого:
Код: Выделить всё
unit SampleForm;

class SampleForm = class(TForm);
  class function GetInst: SampleForm of class;//Таки придется оставить возможность указать тип результата для избежание неочевидности.
end;

var SampleForm : SampleForm of class; // of class нужен на тот случай, если появяться тип рекорд и т.д.

class function SampleForm.GetInst: SampleForm of var;
begin
  if SampleForm of var = nil then
    SampleForm := SampleForm.Create; // тут компилятор и сам может догадаться, что чему присваивается.
  result := SampleForm; //  и тут тоже
end;


Как вам такой концепт?
stanilar
постоялец
 
Сообщения: 271
Зарегистрирован: 09.03.2010 19:09:02

Re: Именование форм и юнитов

Сообщение Лекс Айрин » 18.05.2017 15:00:07

stanilar писал(а): Т.е. это повторная проверка того, что уже проверено компилятором, и не имеет отношения к логике работы программы.


Вообще-то это дается скорее для программиста. Не стоит забывать людскую забывчивость.

stanilar писал(а):Как вам такой концепт?


Ужасно. Если уж делать объект и класс одним целым, то как минимум строчку
Код: Выделить всё
SampleForm := SampleForm.Create;

Стоило бы записать так
Код: Выделить всё
SampleForm.Create;

это стоило бы тогда записать без of class
Код: Выделить всё
var SampleForm : SampleForm of class; // of class нужен на тот случай, если появяться тип рекорд и т.д.

Т. к. повторное объявление типа будет ошибкой в одном модуле и легко разрешимым для разных.

А в общем случае... программист запутается быстрее компилятора.
Аватара пользователя
Лекс Айрин
долгожитель
 
Сообщения: 3911
Зарегистрирован: 19.02.2013 16:54:51

След.

Вернуться в Общее

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 0

Рейтинг@Mail.ru