Как называть модули?

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

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

Re: Как называть модули?

Сообщение Mirage » 22.01.2014 21:45:47

Little_Roo писал(а):Спор о чем конкректно???


Спора нет, есть дискуссия, имеющая целью выявление наиболее разумного принципа именования модулей. Для чего мало высказать мнение, надо еще аргументировать. Если таковой принцип выявится, то не вижу причин его повсеместно не использовать.
Mirage
энтузиаст
 
Сообщения: 881
Зарегистрирован: 06.05.2005 20:29:07
Откуда: Russia

Re: Как называть модули?

Сообщение Лекс Айрин » 23.01.2014 10:50:06

Mirage писал(а):Насчет середины - не могу представить за каким хреном системе логирования знать что она логирует. Куда и как да, знать должна.


Вообще-то названия для программиста, а не для программы. Поэтому функции/классу/модулю нет смысла знать. А программисту очень полезно.

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

Re: Как называть модули?

Сообщение Sharfik » 23.01.2014 14:58:08

Little_Roo писал(а):Господа, вот читаю... и, "то ли лыжи не едут, то ли я....очень странный" :D
Кто-то любит зеленое, кто-то - стриженое...
Спор о чем конкректно??? Хочется всеобщей унификации или ? :shock:

"Каждый выбирает по себе..." (с)

Вобще то унификация в каждом языке есть изначально, только каждый сам себе гений и начинает придумывать все заново. Те кто знают, те молчат. Я по интернету много статей видел как и что использвовать. Но вот стиль программирования, документооборот, как работать в команде и т.д. .. хрен.
bormant писал(а):@hinst,
http://ru.wikipedia.org/wiki/Subst

Хорошая идея.
Аватара пользователя
Sharfik
энтузиаст
 
Сообщения: 791
Зарегистрирован: 20.07.2013 01:04:30

Re: Как называть модули?

Сообщение Mirage » 23.01.2014 17:52:33

Лекс Айрин писал(а):Вообще-то названия для программиста, а не для программы. Поэтому функции/классу/модулю нет смысла знать. А программисту очень полезно.


Если в названии модуля логирования упоминается сущность, которую предполагается логировать, значит реализация данного модуля каким-то образом заточена под эту сущность. Что мне и показалось странным, ибо что там затачивать?

Лекс Айрин писал(а): А вот точку в имени файла я бы не стал применять ни при каких условиях. Случайно вставите пробел перед нею и доооолго будете думать в чем косяк. Особенно если прогу придется собирать под линухой.


Можно дооолго думать, а можно попробовать таки откомпилировать и компилятор покажет ошибку.
Mirage
энтузиаст
 
Сообщения: 881
Зарегистрирован: 06.05.2005 20:29:07
Откуда: Russia

Re: Как называть модули?

Сообщение hinst » 23.01.2014 18:31:18

так всё таки можно как-нибудь сделать чтобы в одном проекте было два модуля с одинаковыми именами но в разных папках? Чтобы как-нибудь изощриться, но не слишком мазахично
Аватара пользователя
hinst
энтузиаст
 
Сообщения: 781
Зарегистрирован: 12.04.2008 18:32:38

Re: Как называть модули?

Сообщение Лекс Айрин » 23.01.2014 18:36:17

Mirage писал(а):Что мне и показалось странным, ибо что там затачивать?


мало ли... может быть подробность вывода, а может быть и данные опускаемые логером. Файлы по которым надо распихивать определенные данные, эхо на экран/принтер, условия включения/выключения логера. Формат входных/выходных данных.

Mirage писал(а):а можно попробовать таки откомпилировать и компилятор покажет ошибку.


И выдаст вам кучу странных ошибок о не найденных файлах. Причем, часть системных. Это если таких файлов нету в природе... а если (совершенно случайно) есть? может ведь и проглотить. А под линуксом часть файлов окажется скрытой. Нет смысла лишний раз заморачиваться.
Аватара пользователя
Лекс Айрин
долгожитель
 
Сообщения: 5723
Зарегистрирован: 19.02.2013 16:54:51
Откуда: Волгоград

Re: Как называть модули?

Сообщение hinst » 23.01.2014 18:37:04

Кстати вот какой ещё вариант придумал:
Одна библиотека - один модуль, но в ней сделать под-модули вот как-то так:
Код: Выделить всё
unit Voicer;
interface
  {$Define face}
  {$Include Meow.inc}
  {$INclude Moo.inc}
  ....
  {$Include Bark.inc}
  [$Undef face}
implementation
  {$Define impl}
  {$Include Meow.inc}
  {$Include Moo.inc}
  ...
  {$Include Bark.inc}
  {$Undef impl}
end.

... ну вы поняли. Include-файлов могут быть сколько угодно с одинаковым названием в одном проекте. И ищутся они в ближайшей папке. Так что, Meow.inc может быть в каждой библиотеке свой. Такой подход с include-файлами решает проблему того, что внутренние под-модули библиотеки должны иметь одинаковые имена. Однако, порождает две другие проблемы: каждый раз будут компилироваться все модули, даже те, которые может быть и не нужны. И во-вторых это усложняет, получается стрёмно, ну я думаю понятно, с этими include-файлами, в общем там есть причины по которым это может быть не так удобно, как unit-ы.
Аватара пользователя
hinst
энтузиаст
 
Сообщения: 781
Зарегистрирован: 12.04.2008 18:32:38

Re: Как называть модули?

Сообщение Mirage » 23.01.2014 20:50:25

Лекс Айрин писал(а):мало ли... может быть подробность вывода, а может быть и данные опускаемые логером. Файлы по которым надо распихивать определенные данные, эхо на экран/принтер, условия включения/выключения логера. Формат входных/выходных данных.


Все же лучше думать и выбирать приемлемые абстракции, нежели так делать.

Лекс Айрин писал(а):И выдаст вам кучу странных ошибок о не найденных файлах. Причем, часть системных. Это если таких файлов нету в природе... а если (совершенно случайно) есть? может ведь и проглотить. А под линуксом часть файлов окажется скрытой. Нет смысла лишний раз заморачиваться.


Давайте по порядку:
1. ошиблись в названии модуля в uses (причем тут точка в названии?) - получили ошибку (одну) именно в том месте.
2. ошиблись в наименовании самого файла (причем тут точка в названии?) - обратно, получили ошибку (по кол-ву использований) в местах использования.
Что странного?
Если файл случайно есть, то вряд ли он скомпилируется ведь верно?

hinst писал(а):Кстати вот какой ещё вариант придумал:


Это не под-модули, это инклуды, как в С. А там нет модулей. И вот тут действительно можно странные эффекты получить, ибо сложно сказать какой инклуд возьмет компилятор.
Инклуды - для исключительных случаев. Когда без них никак.
А тут проблема высосана из пальца.
Mirage
энтузиаст
 
Сообщения: 881
Зарегистрирован: 06.05.2005 20:29:07
Откуда: Russia

Re: Как называть модули?

Сообщение Лекс Айрин » 23.01.2014 21:45:44

Mirage писал(а):Все же лучше думать и выбирать приемлемые абстракции, нежели так делать.


Кто знает как лучше...

Mirage писал(а):1. ошиблись в названии модуля в uses...


Вообще-то, в случае пробела, две. (так как получилось два модуля). Правда, тут компилятор ругнется на отсутствующую запятую, поэтому ее исправить легко.

Mirage писал(а):2. ошиблись в наименовании самого файла (причем тут точка в названии?)...

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

Mirage писал(а):Если файл случайно есть, то вряд ли он скомпилируется ведь верно?


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

Re: Как называть модули?

Сообщение zub » 24.01.2014 00:58:00

А другие используют систему именования, похожую на адреса сайтов, только наоборот:
org.glscene.vector

Эта фича работает только на подключение юнитов или для разрешения конфликтов имен тоже?
намтимер
Код: Выделить всё
...
uses
  org.glscene.vector,
  some.lib.vector;
...
var
  MyVector1:org.glscene.vector.TVector;
  MyVector2:some.lib.TVector;
...

?
zub
долгожитель
 
Сообщения: 2886
Зарегистрирован: 14.11.2005 23:51:26

Re: Как называть модули?

Сообщение SSerge » 24.01.2014 05:43:07

imho, без какой либо особой разницы, как их называть. Но - однозначно, недопустимо оставлять базовые дефолтные имена редактора типа project1, unit1, unit и т.д.
SSerge
энтузиаст
 
Сообщения: 971
Зарегистрирован: 12.01.2012 05:34:14
Откуда: Барнаул

Re: Как называть модули?

Сообщение Дож » 24.01.2014 11:15:14

hinst писал(а):@Дож насколько я понимаю, это как раз и значит, что компилятор будет искать файл в папке org в подпапке a в подпапке b файл и именем c.pas. В Java примерно так же, название пакета должно отражать структуру каталогов.


Код: Выделить всё
[doj@korica ~/temp/units]$ mkdir a
[doj@korica ~/temp/units]$ mkdir b
[doj@korica ~/temp/units]$ echo "unit foo; interface implementation initialization Writeln('FOO'); end;" > a/foo.pas
[doj@korica ~/temp/units]$ echo "unit foo; interface implementation initialization Writeln('BAR'); end;" > b/foo.pas
[doj@korica ~/temp/units]$ cat > prog.pas <<-EOF
> uses a.foo, b.foo;
>
> begin
> end.
> EOF
[doj@korica ~/temp/units]$ fpc prog.pas
prog.pas(1,6) Fatal: Can't find unit a.foo used by Program
Fatal: Compilation aborted
Error: /usr/local/bin/ppc386 returned an error exitcode
[doj@korica ~/temp/units]$ fpc -Fu. prog.pas
prog.pas(1,6) Fatal: Can't find unit a.foo used by Program
Fatal: Compilation aborted
Error: /usr/local/bin/ppc386 returned an error exitcode
[doj@korica ~/temp/units]$ fpc -iV
2.7.1


Что я делаю не так?
Аватара пользователя
Дож
энтузиаст
 
Сообщения: 899
Зарегистрирован: 12.10.2008 16:14:47

Re: Как называть модули?

Сообщение sign » 24.01.2014 13:46:45

Дож писал(а):Что я делаю не так?

А вы делайте так:
r1.png


Добавлено спустя 7 минут 37 секунд:
Или вот так,
r1.png
sign
энтузиаст
 
Сообщения: 1131
Зарегистрирован: 30.08.2009 09:20:53

Re: Как называть модули?

Сообщение Дож » 24.01.2014 13:57:57

А вы делайте так:

И где тут компилятор сам ищет в папках u1 и u2?

Код: Выделить всё
[doj@korica ~/temp/units]$ cat a/foo.pas
unit a.foo; interface implementation initialization Writeln('FOO'); end;
[doj@korica ~/temp/units]$ cat b/foo.pas
unit b.foo; interface implementation initialization Writeln('BAR'); end;
[doj@korica ~/temp/units]$ fpc prog.pas
prog.pas(1,6) Fatal: Can't find unit a.foo used by Program
Fatal: Compilation aborted
Error: /usr/local/bin/ppc386 returned an error exitcode
Аватара пользователя
Дож
энтузиаст
 
Сообщения: 899
Зарегистрирован: 12.10.2008 16:14:47

Re: Как называть модули?

Сообщение hinst » 24.01.2014 14:46:13

в общем в самом деле
модуль unit a.b.c
это файл a.b.c.pas
а не файл a/b/c.pas
Я почему-то думал, что в Delphi как пакеты в Java сделали, но не сделали. Ошибся в общем
http://docs.embarcadero.com/products/ra ... s_xml.html
Так что в интерпретации Delphi получается что эта их фича с именами модулей через точку совершенно бесполезна, с тем же успехом можно делать имена модулей через подчёркивание типа a_b_c, никаких улучшений вариант a.b.c не даёт
Аватара пользователя
hinst
энтузиаст
 
Сообщения: 781
Зарегистрирован: 12.04.2008 18:32:38

Пред.След.

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

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

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

Рейтинг@Mail.ru