Именование форм и юнитов
Модератор: Модераторы
Именование форм и юнитов
Хотел тут причесать код для красоты и назвать форму и ее юнит одним именем (что логично), но получил ошибку.
Кто и как строит именование форм и юнитов в проекте?
Кто и как строит именование форм и юнитов в проекте?
- Снег Север
- долгожитель
- Сообщения: 3071
- Зарегистрирован: 27.11.2007 15:14:47
- Контактная информация:
Юнит называть - название формы+unit.
- Лекс Айрин
- долгожитель
- Сообщения: 5723
- Зарегистрирован: 19.02.2013 16:54:51
- Откуда: Волгоград
- Контактная информация:
Лично я стараюсь так же как в самом Лазаре.
модуль Main
Форма FMain
класс TFMain
модуль Main
Форма FMain
класс TFMain
Снег Север писал(а):Юнит называть - название формы+unit.
Тогда файл форма создается аналогичный имя_unit.lfm
Странное поведение. Ощущение что разработчики лазаря не задумывались о красоте именования файлов вообще.
- Лекс Айрин
- долгожитель
- Сообщения: 5723
- Зарегистрирован: 19.02.2013 16:54:51
- Откуда: Волгоград
- Контактная информация:
mirk писал(а): Ощущение что разработчики лазаря не задумывались о красоте именования файлов вообще.
Конечно НЕ задумывались. Одинаковые названия взаимосвязанных файлов позволяют легче понять какие из них соотносятся с одной и той же формой. Это позволяет, если надо, манипулировать файлами вне среды. Что-то более сложное обладает и большими накладными расходами.
я наоборот именую - в начало unit добавляю
так все юниты лежат в каталоге рядом и взглядом легко выцепляются иные файлы
так все юниты лежат в каталоге рядом и взглядом легко выцепляются иные файлы
- Лекс Айрин
- долгожитель
- Сообщения: 5723
- Зарегистрирован: 19.02.2013 16:54:51
- Откуда: Волгоград
- Контактная информация:
ev, это не мысль.... Это идея! (с)
У меня всё единообразно.
Все названия с заглавной буквы.
Имя проекта начинается с малой p, пример - pUps.
Все юниты предваряются малой u, пример - uUps.
Все формы предваряются малой f, пример - fUps.
Все названия с заглавной буквы.
Имя проекта начинается с малой p, пример - pUps.
Все юниты предваряются малой u, пример - uUps.
Все формы предваряются малой f, пример - fUps.
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 писал(а):Обозначения категорий языка программирования (классы, файлы, объекты) имеет смысл всегда добавлять в конец.
ох уж эти веселые утверждения с приставкой "всегда"
stanilar писал(а):Тогда визуально в коде все категории, относящиеся к одной и той-же сущности, будут иметь одинаковой название, что улучшает отлов логических ошибок.
это пример только одной логической сортировки, но часто нужны и другие
разным людям удобнее в голове сортировать по разным признакам
тут каждый выбирает сам исходя из своих привычек и возможно задач... но уж никак не "всегда"
mirk писал(а):причесать код для красоты
с кодом можно поступать также как с юнитами. В смысле перед названием ставить условный символ, например: для всех integer название всегда начинается на i и тогда, потом, очень легко ориентироваться в программе.
iNameCount := i; <== здесь вы уже точно знаете с каким типом переменных работает код.
по этому же принципу переименовываются и все контролы.
.
- Снег Север
- долгожитель
- Сообщения: 3071
- Зарегистрирован: 27.11.2007 15:14:47
- Контактная информация:
С незапамятных времен - первым языком программирования у меня был фортран - целым переменным даю имена, начинающиеся на i,j,k,l,m,n.
- Лекс Айрин
- долгожитель
- Сообщения: 5723
- Зарегистрирован: 19.02.2013 16:54:51
- Откуда: Волгоград
- Контактная информация:
stanilar писал(а): Тогда визуально в коде все категории, относящиеся к одной и той-же сущности, будут иметь одинаковой название, что улучшает отлов логических ошибок.
При работе в нормальной IDE это, имхо, не имеет большого значения. К тому же небольшой префикс перед именем легко выполняет эту же роль.
Лекс Айрин писал(а): К тому же небольшой префикс перед именем легко выполняет эту же роль.
Нет, он выполняет другую роль. А именно - проверку того, что никто не пытается присвоить переменной с целым типом значение с типом объекта. Вот именно такая проверка в современных иде и не нужна. Особенно в паскале. Т.е. это повторная проверка того, что уже проверено компилятором, и не имеет отношения к логике работы программы.
В моем примере префиксом служит название сущности (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;
Как вам такой концепт?
- Лекс Айрин
- долгожитель
- Сообщения: 5723
- Зарегистрирован: 19.02.2013 16:54:51
- Откуда: Волгоград
- Контактная информация:
stanilar писал(а): Т.е. это повторная проверка того, что уже проверено компилятором, и не имеет отношения к логике работы программы.
Вообще-то это дается скорее для программиста. Не стоит забывать людскую забывчивость.
stanilar писал(а):Как вам такой концепт?
Ужасно. Если уж делать объект и класс одним целым, то как минимум строчку
Код: Выделить всё
SampleForm := SampleForm.Create;Стоило бы записать так
Код: Выделить всё
SampleForm.Create;
это стоило бы тогда записать без of class
Код: Выделить всё
var SampleForm : SampleForm of class; // of class нужен на тот случай, если появяться тип рекорд и т.д.Т. к. повторное объявление типа будет ошибкой в одном модуле и легко разрешимым для разных.
А в общем случае... программист запутается быстрее компилятора.
