Риторический вопрос

Clarion, Clarion 7

Модератор: Дед Пахом

Правила форума
При написании вопроса или обсуждении проблемы, не забывайте указывать версию Clarion который Вы используете.
А так же пользуйтесь спец. тегами при вставке исходников!!!
Аватара пользователя
Игорь Столяров
Ветеран движения
Сообщения: 7330
Зарегистрирован: 07 Июль 2005, 10:19
Откуда: г. Ростов-на-ДоМу
Благодарил (а): 13 раз
Поблагодарили: 48 раз

Риторический вопрос

Сообщение Игорь Столяров »

Привет всем ! :)

Если нет других тем, то хочу задать вопрос, с которым периодически сталкиваюсь.
По структуре приложения и именно в контексте Clarion.

Есть некоторое приложение MultiDLL. Так вот, структура позволяет его сделать и как
EXE + 1 DLL и как EXE + несколько DLL. Какой вариант предпочтительней ?
Нет ли каких-то "подводных камней" в том или ином случае ? И какова практика ?

Заранее спасибо !
За теми кто отстал - не возвращаться. (С) Кодекс
PavelNK
Старожил
Сообщения: 262
Зарегистрирован: 15 Март 2011, 8:02

Риторический вопрос

Сообщение PavelNK »

Ритори́ческий вопро́с — риторическая фигура, представляющая собой вопрос-утверждение, который не требует ответа. :lol:
Аватара пользователя
finsoftrz
✯ Ветеран ✯
Сообщения: 4562
Зарегистрирован: 06 Ноябрь 2014, 12:48
Благодарил (а): 6 раз
Поблагодарили: 34 раза

Риторический вопрос

Сообщение finsoftrz »

Однозначного ответа нет. В каждой конкретной ситуации зависит от квалификации, опыта, стиля мышления разработчика, умения предвидеть дальнейшее развитие проекта и т.д.
C6/C11, ШВС, tps/btrieve.
Аватара пользователя
Игорь Столяров
Ветеран движения
Сообщения: 7330
Зарегистрирован: 07 Июль 2005, 10:19
Откуда: г. Ростов-на-ДоМу
Благодарил (а): 13 раз
Поблагодарили: 48 раз

Риторический вопрос

Сообщение Игорь Столяров »

Понятно, что по Сеньке и шапка, но здесь самая вкусняшка - это технологическая сторона вопроса. ;)

Давайте зайдём на вопрос другой стороны: разбиение проекта на несколько DLL несколько увеличивает его размер
(библиотеки, повтор иконок и т.д.) - это понятно. А даёт ли это какое-то преимущество ?
За теми кто отстал - не возвращаться. (С) Кодекс
Аватара пользователя
RaFaeL
✯ Ветеран ✯
Сообщения: 1376
Зарегистрирован: 24 Март 2009, 17:59
Откуда: НН
Благодарил (а): 7 раз
Поблагодарили: 1 раз
Контактная информация:

Риторический вопрос

Сообщение RaFaeL »

Дает преимущество, когда несколько программистов на проекте, каждый свою dll пилит
Скорость программирования тоже, что пересобрать приложение с 50 функциями и что с 500
Еще заметил что иногда шаблоны конфликтуют, приходится разносить на разные dll функции, их использующие. Ну эт может от кривых рук, конечно
Увеличивать размер сильно не должно, так как общие библиотеки должны лежать в основной dll
PavelNK
Старожил
Сообщения: 262
Зарегистрирован: 15 Март 2011, 8:02

Риторический вопрос

Сообщение PavelNK »

Если проектов несколько, то позволяет использовать одну и ту же dll в нескольких проектах. Зачем делать двойную, тройную, ... работу
arlean1
Активист
Сообщения: 114
Зарегистрирован: 24 Июль 2016, 22:34

Риторический вопрос

Сообщение arlean1 »

Игорь Столяров писал(а): 04 Октябрь 2018, 16:40Есть некоторое приложение MultiDLL. Так вот, структура позволяет его сделать и как EXE + 1 DLL и как EXE + несколько DLL. Какой вариант предпочтительней ?
Раньше в первых версиях клаши ещё в доклассовый период в одной статье журнала Clarion рекомендовалось для повышения скорости работы вставлять в одну DLL в среднем 5 процедур.
Как сейчас требует исследований :)
Аватара пользователя
Игорь Столяров
Ветеран движения
Сообщения: 7330
Зарегистрирован: 07 Июль 2005, 10:19
Откуда: г. Ростов-на-ДоМу
Благодарил (а): 13 раз
Поблагодарили: 48 раз

Риторический вопрос

Сообщение Игорь Столяров »

arlean1 писал(а): 04 Октябрь 2018, 20:58для повышения скоростиработы вставлять в одну DLL в среднем 5 процедур.
Подозреваю, что в этой статье имелось ввиду "для скорости работы среды разработки Clarion" … :idied:
За теми кто отстал - не возвращаться. (С) Кодекс
Аватара пользователя
finsoftrz
✯ Ветеран ✯
Сообщения: 4562
Зарегистрирован: 06 Ноябрь 2014, 12:48
Благодарил (а): 6 раз
Поблагодарили: 34 раза

Риторический вопрос

Сообщение finsoftrz »

Да шо вы говорите, уважаемые знатоки... Количество процедур на модуль, а не на dll. Для скорости компиляции. Дедушка Баррингтон писал.
C6/C11, ШВС, tps/btrieve.
Аватара пользователя
finsoftrz
✯ Ветеран ✯
Сообщения: 4562
Зарегистрирован: 06 Ноябрь 2014, 12:48
Благодарил (а): 6 раз
Поблагодарили: 34 раза

Риторический вопрос

Сообщение finsoftrz »

И сейчас, к слову, это тоже актуально. Когда отлаживаем, выделяем процедуру в отдельный модуль. Затем объединяем. Количество процедур на модуль зависит от размера. Если простые source, то можно штук по 10-20. Скорость компиляции и сборки возрастает заметно. Я это использую.

Помню, один товарищ писал, что практикует еще выделять не отлаженные процедуры в отдельную dll (не путаем с модулем), а по мере готовности раскладывать в нужные dll. Я пробовал, неудобно. Да и смысла особого нет, и так быстро работает.
C6/C11, ШВС, tps/btrieve.
kreator
✯ Ветеран ✯
Сообщения: 4960
Зарегистрирован: 28 Май 2009, 15:54
Откуда: Москва
Благодарил (а): 6 раз
Поблагодарили: 19 раз

Риторический вопрос

Сообщение kreator »

finsoftrz писал(а): 04 Октябрь 2018, 23:47 И сейчас, к слову, это тоже актуально. Когда отлаживаем, выделяем процедуру в отдельный модуль. Затем объединяем. Количество процедур на модуль зависит от размера. Если простые source, то можно штук по 10-20. Скорость компиляции и сборки возрастает заметно. Я это использую.
Ну, это не про десятку. Десятка по дефолту в модуль кладёт 10 процедур, причём не важно какого размера. У меня где-то 15 таких модулей. Компиляция всего приложения идёт секунд несколько. Нет вообще смысла морочиться. Во времена Баррингтона возможно было по-другому.
RaFaeL писал(а): 04 Октябрь 2018, 19:39 Дает преимущество, когда несколько программистов на проекте, каждый свою dll пилит
Согласен. У нас так. Плюс есть ещё разноска по функционалу. Но я бы сократил количество dll. Надо следить за их содержимым. Мы вот чуть запустили порядок, и оказались пересекающиеся процедуры. Удобно всё загнать в один сольюшен и компилировать сразу. А нам надо теперь провести работу по наведению порядка в dll-ках, чтобы сборка прошла сразу. Это обсуждали уже.
Ещё минус мульти-dll - Кларион может сам при компиляции снять запущенный exe-шник, dll-ку не может.
We are hard at work… for you. :)
Аватара пользователя
finsoftrz
✯ Ветеран ✯
Сообщения: 4562
Зарегистрирован: 06 Ноябрь 2014, 12:48
Благодарил (а): 6 раз
Поблагодарили: 34 раза

Риторический вопрос

Сообщение finsoftrz »

Насколько помню, в C6 дефолтное количество процедур на модуль тоже задавалось. Но это не всегда удобно. Поэтому я предпочитаю ручками делать, времени много не занимает. Да и смысл есть только на больших проектах.
C6/C11, ШВС, tps/btrieve.
Аватара пользователя
Игорь Столяров
Ветеран движения
Сообщения: 7330
Зарегистрирован: 07 Июль 2005, 10:19
Откуда: г. Ростов-на-ДоМу
Благодарил (а): 13 раз
Поблагодарили: 48 раз

Риторический вопрос

Сообщение Игорь Столяров »

Здесь ещё есть связанная тема … Я могу ошибаться, но кажется начиная с C63 была настоятельная
рекомендация не использовать GlobalData External, без атрибута THEREAD …
Т.е. не делать общие области данных в MuliDLL приложениях вне потоков. Или я ошибаюсь ?
За теми кто отстал - не возвращаться. (С) Кодекс
Аватара пользователя
finsoftrz
✯ Ветеран ✯
Сообщения: 4562
Зарегистрирован: 06 Ноябрь 2014, 12:48
Благодарил (а): 6 раз
Поблагодарили: 34 раза

Риторический вопрос

Сообщение finsoftrz »

Это в свете общей концепции многопоточного приложения так. Технически никто не запрещает, надо только аккуратно работать на модификацию.
C6/C11, ШВС, tps/btrieve.
kreator
✯ Ветеран ✯
Сообщения: 4960
Зарегистрирован: 28 Май 2009, 15:54
Откуда: Москва
Благодарил (а): 6 раз
Поблагодарили: 19 раз

Риторический вопрос

Сообщение kreator »

Игорь Столяров писал(а): 05 Октябрь 2018, 8:23 десь ещё есть связанная тема … Я могу ошибаться, но кажется начиная с C63 была настоятельная
рекомендация не использовать GlobalData External, без атрибута THEREAD …
Т.е. не делать общие области данных в MuliDLL приложениях вне потоков. Или я ошибаюсь ?
По-моему, это чушь. А как вы храните глобальные настройки? Каждая процедура читает из ini-файла, при выходе записывает в ini-файл?
We are hard at work… for you. :)
Ответить