Риторический вопрос
Модератор: Дед Пахом
Правила форума
При написании вопроса или обсуждении проблемы, не забывайте указывать версию Clarion который Вы используете.
А так же пользуйтесь спец. тегами при вставке исходников!!!
При написании вопроса или обсуждении проблемы, не забывайте указывать версию Clarion который Вы используете.
А так же пользуйтесь спец. тегами при вставке исходников!!!
- Игорь Столяров
- Ветеран движения
- Сообщения: 7373
- Зарегистрирован: 07 Июль 2005, 10:19
- Откуда: г. Ростов-на-ДоМу
- Благодарил (а): 13 раз
- Поблагодарили: 48 раз
Риторический вопрос
Привет всем !
Если нет других тем, то хочу задать вопрос, с которым периодически сталкиваюсь.
По структуре приложения и именно в контексте Clarion.
Есть некоторое приложение MultiDLL. Так вот, структура позволяет его сделать и как
EXE + 1 DLL и как EXE + несколько DLL. Какой вариант предпочтительней ?
Нет ли каких-то "подводных камней" в том или ином случае ? И какова практика ?
Заранее спасибо !
Если нет других тем, то хочу задать вопрос, с которым периодически сталкиваюсь.
По структуре приложения и именно в контексте Clarion.
Есть некоторое приложение MultiDLL. Так вот, структура позволяет его сделать и как
EXE + 1 DLL и как EXE + несколько DLL. Какой вариант предпочтительней ?
Нет ли каких-то "подводных камней" в том или ином случае ? И какова практика ?
Заранее спасибо !
За теми кто отстал - не возвращаться. (С) Кодекс
Риторический вопрос
Ритори́ческий вопро́с — риторическая фигура, представляющая собой вопрос-утверждение, который не требует ответа.
- finsoftrz
- ✯ Ветеран ✯
- Сообщения: 4615
- Зарегистрирован: 06 Ноябрь 2014, 12:48
- Благодарил (а): 6 раз
- Поблагодарили: 37 раз
Риторический вопрос
Однозначного ответа нет. В каждой конкретной ситуации зависит от квалификации, опыта, стиля мышления разработчика, умения предвидеть дальнейшее развитие проекта и т.д.
C6/C11, ШВС, tps/btrieve.
- Игорь Столяров
- Ветеран движения
- Сообщения: 7373
- Зарегистрирован: 07 Июль 2005, 10:19
- Откуда: г. Ростов-на-ДоМу
- Благодарил (а): 13 раз
- Поблагодарили: 48 раз
Риторический вопрос
Понятно, что по Сеньке и шапка, но здесь самая вкусняшка - это технологическая сторона вопроса.
Давайте зайдём на вопрос другой стороны: разбиение проекта на несколько DLL несколько увеличивает его размер
(библиотеки, повтор иконок и т.д.) - это понятно. А даёт ли это какое-то преимущество ?
Давайте зайдём на вопрос другой стороны: разбиение проекта на несколько DLL несколько увеличивает его размер
(библиотеки, повтор иконок и т.д.) - это понятно. А даёт ли это какое-то преимущество ?
За теми кто отстал - не возвращаться. (С) Кодекс
- RaFaeL
- ✯ Ветеран ✯
- Сообщения: 1376
- Зарегистрирован: 24 Март 2009, 17:59
- Откуда: НН
- Благодарил (а): 7 раз
- Поблагодарили: 1 раз
- Контактная информация:
Риторический вопрос
Дает преимущество, когда несколько программистов на проекте, каждый свою dll пилит
Скорость программирования тоже, что пересобрать приложение с 50 функциями и что с 500
Еще заметил что иногда шаблоны конфликтуют, приходится разносить на разные dll функции, их использующие. Ну эт может от кривых рук, конечно
Увеличивать размер сильно не должно, так как общие библиотеки должны лежать в основной dll
Скорость программирования тоже, что пересобрать приложение с 50 функциями и что с 500
Еще заметил что иногда шаблоны конфликтуют, приходится разносить на разные dll функции, их использующие. Ну эт может от кривых рук, конечно
Увеличивать размер сильно не должно, так как общие библиотеки должны лежать в основной dll
Риторический вопрос
Если проектов несколько, то позволяет использовать одну и ту же dll в нескольких проектах. Зачем делать двойную, тройную, ... работу
Риторический вопрос
Раньше в первых версиях клаши ещё в доклассовый период в одной статье журнала Clarion рекомендовалось для повышения скорости работы вставлять в одну DLL в среднем 5 процедур.Игорь Столяров писал(а): ↑04 Октябрь 2018, 16:40Есть некоторое приложение MultiDLL. Так вот, структура позволяет его сделать и как EXE + 1 DLL и как EXE + несколько DLL. Какой вариант предпочтительней ?
Как сейчас требует исследований
- Игорь Столяров
- Ветеран движения
- Сообщения: 7373
- Зарегистрирован: 07 Июль 2005, 10:19
- Откуда: г. Ростов-на-ДоМу
- Благодарил (а): 13 раз
- Поблагодарили: 48 раз
Риторический вопрос
Подозреваю, что в этой статье имелось ввиду "для скорости работы среды разработки Clarion" …
За теми кто отстал - не возвращаться. (С) Кодекс
- finsoftrz
- ✯ Ветеран ✯
- Сообщения: 4615
- Зарегистрирован: 06 Ноябрь 2014, 12:48
- Благодарил (а): 6 раз
- Поблагодарили: 37 раз
Риторический вопрос
Да шо вы говорите, уважаемые знатоки... Количество процедур на модуль, а не на dll. Для скорости компиляции. Дедушка Баррингтон писал.
C6/C11, ШВС, tps/btrieve.
- finsoftrz
- ✯ Ветеран ✯
- Сообщения: 4615
- Зарегистрирован: 06 Ноябрь 2014, 12:48
- Благодарил (а): 6 раз
- Поблагодарили: 37 раз
Риторический вопрос
И сейчас, к слову, это тоже актуально. Когда отлаживаем, выделяем процедуру в отдельный модуль. Затем объединяем. Количество процедур на модуль зависит от размера. Если простые source, то можно штук по 10-20. Скорость компиляции и сборки возрастает заметно. Я это использую.
Помню, один товарищ писал, что практикует еще выделять не отлаженные процедуры в отдельную dll (не путаем с модулем), а по мере готовности раскладывать в нужные dll. Я пробовал, неудобно. Да и смысла особого нет, и так быстро работает.
Помню, один товарищ писал, что практикует еще выделять не отлаженные процедуры в отдельную dll (не путаем с модулем), а по мере готовности раскладывать в нужные dll. Я пробовал, неудобно. Да и смысла особого нет, и так быстро работает.
C6/C11, ШВС, tps/btrieve.
-
- ✯ Ветеран ✯
- Сообщения: 4983
- Зарегистрирован: 28 Май 2009, 15:54
- Откуда: Москва
- Благодарил (а): 7 раз
- Поблагодарили: 20 раз
Риторический вопрос
Ну, это не про десятку. Десятка по дефолту в модуль кладёт 10 процедур, причём не важно какого размера. У меня где-то 15 таких модулей. Компиляция всего приложения идёт секунд несколько. Нет вообще смысла морочиться. Во времена Баррингтона возможно было по-другому.finsoftrz писал(а): ↑04 Октябрь 2018, 23:47 И сейчас, к слову, это тоже актуально. Когда отлаживаем, выделяем процедуру в отдельный модуль. Затем объединяем. Количество процедур на модуль зависит от размера. Если простые source, то можно штук по 10-20. Скорость компиляции и сборки возрастает заметно. Я это использую.
Согласен. У нас так. Плюс есть ещё разноска по функционалу. Но я бы сократил количество dll. Надо следить за их содержимым. Мы вот чуть запустили порядок, и оказались пересекающиеся процедуры. Удобно всё загнать в один сольюшен и компилировать сразу. А нам надо теперь провести работу по наведению порядка в dll-ках, чтобы сборка прошла сразу. Это обсуждали уже.
Ещё минус мульти-dll - Кларион может сам при компиляции снять запущенный exe-шник, dll-ку не может.
We are hard at work… for you.
- finsoftrz
- ✯ Ветеран ✯
- Сообщения: 4615
- Зарегистрирован: 06 Ноябрь 2014, 12:48
- Благодарил (а): 6 раз
- Поблагодарили: 37 раз
Риторический вопрос
Насколько помню, в C6 дефолтное количество процедур на модуль тоже задавалось. Но это не всегда удобно. Поэтому я предпочитаю ручками делать, времени много не занимает. Да и смысл есть только на больших проектах.
C6/C11, ШВС, tps/btrieve.
- Игорь Столяров
- Ветеран движения
- Сообщения: 7373
- Зарегистрирован: 07 Июль 2005, 10:19
- Откуда: г. Ростов-на-ДоМу
- Благодарил (а): 13 раз
- Поблагодарили: 48 раз
Риторический вопрос
Здесь ещё есть связанная тема … Я могу ошибаться, но кажется начиная с C63 была настоятельная
рекомендация не использовать GlobalData External, без атрибута THEREAD …
Т.е. не делать общие области данных в MuliDLL приложениях вне потоков. Или я ошибаюсь ?
рекомендация не использовать GlobalData External, без атрибута THEREAD …
Т.е. не делать общие области данных в MuliDLL приложениях вне потоков. Или я ошибаюсь ?
За теми кто отстал - не возвращаться. (С) Кодекс
- finsoftrz
- ✯ Ветеран ✯
- Сообщения: 4615
- Зарегистрирован: 06 Ноябрь 2014, 12:48
- Благодарил (а): 6 раз
- Поблагодарили: 37 раз
Риторический вопрос
Это в свете общей концепции многопоточного приложения так. Технически никто не запрещает, надо только аккуратно работать на модификацию.
C6/C11, ШВС, tps/btrieve.
-
- ✯ Ветеран ✯
- Сообщения: 4983
- Зарегистрирован: 28 Май 2009, 15:54
- Откуда: Москва
- Благодарил (а): 7 раз
- Поблагодарили: 20 раз
Риторический вопрос
По-моему, это чушь. А как вы храните глобальные настройки? Каждая процедура читает из ini-файла, при выходе записывает в ini-файл?Игорь Столяров писал(а): ↑05 Октябрь 2018, 8:23 десь ещё есть связанная тема … Я могу ошибаться, но кажется начиная с C63 была настоятельная
рекомендация не использовать GlobalData External, без атрибута THEREAD …
Т.е. не делать общие области данных в MuliDLL приложениях вне потоков. Или я ошибаюсь ?
We are hard at work… for you.