Именование модулей в Java-стиле считаю избыточным до тех пор, пока fpc не поддерживает его как Java. Я не хочу сваливать все модули в одну большую директорию, мне больше нравится раскладывать их структурированно по отдельным директориям
- Код: Выделить всё
./core/math/linal/dvector2f.pas4
./core/math/linal/dvector3f.pas4
./core/math/linal/dvector4f.pas4
./core/math/linal/dvector2i.pas4
...
./core/stream/dstream_op.pas4
./core/stream/dstream.pas4
./core/stream/dstreamfile.pas4
./core/stream/dstreammem.pas4
./core/stream/dstreamrewinder.pas4
./core/stream/dstreamresource.pas4
./core/stream/dstream_utf8.pas4
./core/stream/dsv.pas4
...
./core/collection/dlist.pas4
./core/collection/dhashtable.pas4
./core/collection/darray.pas4
./core/collection/dtree.pas4
./core/collection/dcollection.pas4
...
./experiment/verdum/letter_freq/letter_freq.pas4
./experiment/verdum/word/drusword.pas4
./experiment/verdum/word/drusprefix.pas4
./experiment/verdum/wordstream/dwordstream.pas4
./experiment/verdum/wordstream/words.pas4
./experiment/verdum/dic/ddic.pas4
./experiment/verdum/dic/dic.pas4
./experiment/verdum/verdum.pas4
...
./library/texture/formats/dtga.pas4
./library/texture/formats/dbmp.pas4
./library/texture/formats/djpg.pas4
./library/texture/formats/dtex.pas4
./library/texture/formats/dgl.pas4
./library/texture/formats/dpng.pas4
./library/texture/formats/dbit.pas4
...
./programs/utils/civtime/civtime.pas4
./programs/utils/dsync/dtypes.pas4
./programs/utils/dsync/dsync.pas4
./programs/modal/modal.pas4
./programs/modal/dlineparams.pas4
...
И т.д. Если бы я именовал модули как, скажем, ru.visualdoj.experiment.verdum.wordstream.pas, то не только информация в каждой директории продублировалась бы дважды, но ещё мне потребовалось бы везде в uses писать полные названия модулей (в дополнение к тому, что я где-то должен указать пути до всех используемых директорий).
Mirage, Как уже отметили, данный подход как раз способствует раскладыванию по директориям. — т.е. я правильно понимаю, что переименование из dwordstream в ru.visualdoj.experiment.verdum.wordstream поспособствует тому, что я положу этот модуль в experiment/verdum и буду рад увидеть experiment/verdum/ru.visualdoj.experiment.verdum.wordstream.pas, а не скажу «нафиг так жить»?
Если же не хотеть получать монстров вида experiment/verdum/wordstream/ru.visualdoj.experiment.verdum.wordstream.pas, как предлагают радикальные сторонники Java, есть два варианта: 1) все модули называть длинно, скидывать в одну директорию, никаких конфликтов имён не останется, настройка компиляции упростится, зато потеряется поддерживаемая ОС структуризация файлов и в этой директории будет адская помойка 2) все модули раскладывать по директориям, имена краткие, это усложняет настройку компиляции, потенциально может приводить к конфликтам имён, зато файлы лежат более аккуратно.
Чего бы я хотел от собственно fpc? Чтобы была система приоритетов в выборе подходящего модуля (основной usecase такой: если модуль A подключает модуль B, то будет подключён B из той же директории, что и A, а не из первой встреченной в -Fu параметре). Или чтобы в uses можно было бы указывать относительный путь вместо названия (хоть через те же точки в Java-стиле)
- Код: Выделить всё
uses
'experiment/verdum/wordstream/wordstream.pas',
...;