Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Delphi Новый топик    Ответить
Топик располагается на нескольких страницах: [1] 2 3 4   вперед  Ctrl      все
 Какова роль "Модуля" в архитектуре программы?  [new]
Artem.1st
Member

Откуда:
Сообщений: 109
Это вопрос архитектурный.
В отличие от других языков программирования, в Delphi есть понятие Модуль(unit). Поэтому, ожидается, что архитектура Delphi-программ - это не простая связь классов, и здесь Модули должны играть определенную роль. А какую?

Кто занимается архитектурой delphi-программ, пожалуйста, поделитесь опытом, м.б. статьи интересные подскажите?

Заранее спасибо.

P.S.
На мысль о “роли модулей” натолкнула сегодняшней тема ..., что в Delphi широко используются циклические ссылки в классах, а вот циклические ссылки между модулями уже запрещены.
7 авг 19, 11:44    [21943593]     Ответить | Цитировать Сообщить модератору
 Re: Какова роль "Модуля" в архитектуре программы?  [new]
X-Cite
Member

Откуда: Минск
Сообщений: 1515
http://docwiki.embarcadero.com/RADStudio/Tokyo/en/Programs_and_Units_(Delphi)
7 авг 19, 12:05    [21943633]     Ответить | Цитировать Сообщить модератору
 Re: Какова роль "Модуля" в архитектуре программы?  [new]
X-Cite
Member

Откуда: Минск
Сообщений: 1515
Artem.1st
что в Delphi широко используются циклические ссылки в классах


Это не означает что это правильно и надо за ними повторять.
Мое предположение, что это сделано в древние времена теми, кто не задумывался о грамотной архитектуре, а писали как проще и быстрее... Там даже есть обращения к приватным секциям в другие классы.... Это же не означает, что так тоже надо делать...
7 авг 19, 12:09    [21943642]     Ответить | Цитировать Сообщить модератору
 Re: Какова роль "Модуля" в архитектуре программы?  [new]
Artem.1st
Member

Откуда:
Сообщений: 109
X-Cite
кто не задумывался о грамотной архитектуре

Спасибо за ответ.
Как раз хотелось бы понять смысл этой “грамотной” архитектуры. М.б. есть стандарты?
Например, почему взаимные(циклические) связи между классами - это якобы плохо?
7 авг 19, 12:19    [21943665]     Ответить | Цитировать Сообщить модератору
 Re: Какова роль "Модуля" в архитектуре программы?  [new]
kealon(Ruslan)
Member

Откуда: Нижневартовск
Сообщений: 4982
Artem.1st
Это вопрос архитектурный.
В отличие от других языков программирования, в Delphi есть понятие Модуль(unit). Поэтому, ожидается, что архитектура Delphi-программ - это не простая связь классов, и здесь Модули должны играть определенную роль. А какую?

Кто занимается архитектурой delphi-программ, пожалуйста, поделитесь опытом, м.б. статьи интересные подскажите?

Заранее спасибо.

P.S.
На мысль о “роли модулей” натолкнула сегодняшней тема ..., что в Delphi широко используются циклические ссылки в классах, а вот циклические ссылки между модулями уже запрещены.
не запрещены
7 авг 19, 12:28    [21943685]     Ответить | Цитировать Сообщить модератору
 Re: Какова роль "Модуля" в архитектуре программы?  [new]
Artem.1st
Member

Откуда:
Сообщений: 109
kealon(Ruslan)
не запрещены

Спасибо за ответ.
Подразумевались взаимные ссылки из интерфейсных разделов модулей. Они запрещены в Delphi.
Отсюда предположение, что "модуль" играет роль(хотя бы ограничительную) в архитектуре программы.
Вот какова эта роль?
7 авг 19, 12:36    [21943696]     Ответить | Цитировать Сообщить модератору
 Re: Какова роль "Модуля" в архитектуре программы?  [new]
kealon(Ruslan)
Member

Откуда: Нижневартовск
Сообщений: 4982
Artem.1st
kealon(Ruslan)
не запрещены

Спасибо за ответ.
Подразумевались взаимные ссылки из интерфейсных разделов модулей. Они запрещены в Delphi.
Отсюда предположение, что "модуль" играет роль(хотя бы ограничительную) в архитектуре программы.
Вот какова эта роль?
отдельная единица трансляции для компилятора
7 авг 19, 12:38    [21943699]     Ответить | Цитировать Сообщить модератору
 Re: Какова роль "Модуля" в архитектуре программы?  [new]
Artem.1st
Member

Откуда:
Сообщений: 109
kealon(Ruslan)
отдельная единица трансляции для компилятора


>> "Какова роль "Модуля" в архитектуре программы?"
:)

Серьезно. Всегда спасибо за любой ответ по существу темы
7 авг 19, 12:50    [21943709]     Ответить | Цитировать Сообщить модератору
 Re: Какова роль "Модуля" в архитектуре программы?  [new]
asutp2
Member

Откуда: Тюмень
Сообщений: 526
Artem.1st,

предлагаю для начала изучить основы языка. Без них двигаться дальше (в разарботке) вы не сможете
7 авг 19, 13:04    [21943732]     Ответить | Цитировать Сообщить модератору
 Re: Какова роль "Модуля" в архитектуре программы?  [new]
X-Cite
Member

Откуда: Минск
Сообщений: 1515
Artem.1st
kealon(Ruslan)
отдельная единица трансляции для компилятора


>> "Какова роль "Модуля" в архитектуре программы?"
:)

Серьезно. Всегда спасибо за любой ответ по существу темы


Представьте проект в котором 1000 pas файлов и представьте проект в котором тот же код в 1 pas файле...
Вы меняете 3 строки кода. В первом случае это будет например в 3 модулях.. во втором случае выбора нет, все в одном.
Вопрос: В каком случае компиляция (не сборка) произойдет быстрее?
7 авг 19, 13:44    [21943772]     Ответить | Цитировать Сообщить модератору
 Re: Какова роль "Модуля" в архитектуре программы?  [new]
Polesov
Member

Откуда:
Сообщений: 589
kealon(Ruslan)
отдельная единица трансляции для компилятора

Позволяющая предоставлять (продавать) свой код без исходных текстов.
7 авг 19, 14:16    [21943805]     Ответить | Цитировать Сообщить модератору
 Re: Какова роль "Модуля" в архитектуре программы?  [new]
Artem.1st
Member

Откуда:
Сообщений: 109
Artem.1st
Это вопрос архитектурный.
В отличие от других языков программирования, в Delphi есть понятие Модуль(unit). Поэтому, ожидается, что архитектура Delphi-программ - это не простая связь классов, и здесь Модули должны играть определенную роль. А какую?

Кто занимается архитектурой delphi-программ, пожалуйста, поделитесь опытом, м.б. статьи интересные подскажите?

Заранее спасибо.

Ответ найден:
По стандарту UML, delphi-модули как элементы программной архитектуры, описываются Диаграммой Компонентов.
Аналогично диаграмме классов, UML диаграмма компонентов описывает связи(зависимости) между компонентами(delphi-модулями). Это и есть роль архитектурной единицы, что и спрашивалось.

P.S.
То, что архитектуру Delphi-программ некоторые считают “тупой” темой, и сыпят оскорбления(с потолка) - это еще понятно.
А вот почему модераторы не пресекают этот бардак ...
8 авг 19, 17:16    [21944998]     Ответить | Цитировать Сообщить модератору
 Re: Какова роль "Модуля" в архитектуре программы?  [new]
Мимопроходящий
Member

Откуда: бурятский тундрюк, эсквайр
Сообщений: 30227

08.08.2019 17:16, Artem.1st пишет:
> Ответ найден:
> По стандарту UML, delphi-модули...

ответ неверный.
UML никакого отношения к языку Delphi и его структуре не имеет.

зы: забудь про Википедию, ты теперь в армии!

Posted via ActualForum NNTP Server 1.5

8 авг 19, 17:26    [21945007]     Ответить | Цитировать Сообщить модератору
 Re: Какова роль "Модуля" в архитектуре программы?  [new]
kealon(Ruslan)
Member

Откуда: Нижневартовск
Сообщений: 4982
Artem.1st,

тебе же уже сказали 21943699, остальное лишь детские фантазии
8 авг 19, 17:38    [21945016]     Ответить | Цитировать Сообщить модератору
 Re: Какова роль "Модуля" в архитектуре программы?  [new]
Artem.1st
Member

Откуда:
Сообщений: 109
kealon(Ruslan)
тебе же уже сказали 21943699, остальное лишь детские фантазии

а ...
тебе же уже ответили 21943709, может всеже не фантазии?
8 авг 19, 17:53    [21945025]     Ответить | Цитировать Сообщить модератору
 Re: Какова роль "Модуля" в архитектуре программы?  [new]
Artem.1st
Member

Откуда:
Сообщений: 109
kealon(Ruslan),
извиняюсь, за пред.мессагу. Не знаю, как удалить. Просто я расстроен всем этим троллингом, мне нужен форум(как источник полезной информации) ... а тут сранности творятся.
8 авг 19, 17:58    [21945028]     Ответить | Цитировать Сообщить модератору
 Re: Какова роль "Модуля" в архитектуре программы?  [new]
ziv-2014
Member

Откуда:
Сообщений: 376
Две формы описанные в одном модуле не возможно нормально редактировать.
А еще в каждом модуле можно делать глобальную переменную sisky и инициализировать самым фиерическим значением, просто так, потому что могу!
9 авг 19, 11:30    [21945445]     Ответить | Цитировать Сообщить модератору
 Re: Какова роль "Модуля" в архитектуре программы?  [new]
DimaBr
Member

Откуда:
Сообщений: 11201
ziv-2014
Две формы описанные в одном модуле не возможно нормально редактировать.

Использую множество "форм" на одной. Никаких проблем с редактированием. От самой формы редко что бывает нужно особенное.
9 авг 19, 11:40    [21945452]     Ответить | Цитировать Сообщить модератору
 Re: Какова роль "Модуля" в архитектуре программы?  [new]
makhaon
Member

Откуда: A galaxy far far away
Сообщений: 3298
Artem.1st,

лучший источник знаний - книга + код. к людям ищущим начальные знания на форумах обычно относятся как к лентяям, не смогшим прочесть ничего. поэтому если задаёшь такие вопросы - будь готов к таким ответам.
12 авг 19, 11:36    [21946951]     Ответить | Цитировать Сообщить модератору
 Re: Какова роль "Модуля" в архитектуре программы?  [new]
Gator
Member

Откуда: Москва
Сообщений: 14672
Artem.1st
На других сайтах оскорбления пресекаются. А чтоб регулярные оскорбления - такого вообще нет.
Так в чем причина оскорблений, мы узнаем?
Тебя сразу без наездов спросили и отправили в библиотеку,
А ты стал лениться и понтоваться. Стучать ещё задумал...
Отвечать на такую тему никто не будет - пальцы сотрёшь и клаву сломаешь...

Иди на другие сайты и не трогай дюдей.
12 авг 19, 13:06    [21947079]     Ответить | Цитировать Сообщить модератору
 Re: Какова роль "Модуля" в архитектуре программы?  [new]
X-Cite
Member

Откуда: Минск
Сообщений: 1515
Artem.1st,

Фишка в том, что на твой вопрос ответов много и все они правильные и корректные.

Кто-то считает 1 модуль 1 класс
Кто-то считает 1 модуль 1 неймспейс
Кто-то считает 1 модуль 1 логическая бизнес-единица
Кто-то считает 1 модуль как душе угодно

Все они верные и правильные и грамотные. Выбираешь для себя как тебе (или команде, если вы работаете в IT) удобно и вперед...
12 авг 19, 13:37    [21947119]     Ответить | Цитировать Сообщить модератору
 Re: Какова роль "Модуля" в архитектуре программы?  [new]
Victor Cookin
Member

Откуда: Самара
Сообщений: 683
Artem.1st,

В один модуль попадают "дружественные" классы. То есть те, которым открыт доступ к приватным методам друга. Пример - TTabSheet и TPageControl. Если их хранить раздельно, надо будет открывать доступ к методам, к которым открывать доступ не хочется. А не открывать - усложнять реализацию.
13 авг 19, 23:05    [21948683]     Ответить | Цитировать Сообщить модератору
 Re: Какова роль "Модуля" в архитектуре программы?  [new]
Leonid
Member

Откуда: From nowhere
Сообщений: 741
Artem.1st
Это вопрос архитектурный.
В отличие от других языков программирования, в Delphi есть понятие Модуль(unit). Поэтому, ожидается, что архитектура Delphi-программ - это не простая связь классов, и здесь Модули должны играть определенную роль. А какую?
Да почти такую же как и в Си-шные исходниках.
Т.е. для логического объединения текстов исходников (и вовсе необязательно классов).
Но поскольку паскалевский компилятор в отличии от си-шных однопроходной, то это накладывает ряд ограничений и заставляет порой весьма серьезно планировать размещение исходников и тем более классов по модулям.
На практике зачастую приводит к накидыванию достаточно большого количества классов в один юнит, особенно когда эти классы взаимно-зависимы (см. хотя бы исходники самого RTL или VCL/FMX).

А чтобы так уж не париться с построением идеального дерева классов или не городить простыни юнитов на десятки тысяч строк,
по уму уже давно бы можно было сделать компилятор многопроходным, а ссылки на юниты (дабы не было сотен в списке) опционно заменить на нэимспейсы.
Но это слишком уж радикально и рЭволюционно.
Да и олдскульные бородатые паскалисты изойдут от того на "коричневую субстанцию". Ибо сие не кошерно.
14 авг 19, 01:37    [21948742]     Ответить | Цитировать Сообщить модератору
 Re: Какова роль "Модуля" в архитектуре программы?  [new]
Artem.1st
Member

Откуда:
Сообщений: 109
Leonid, Victor Cookin ,
спасибо за ответ.

Получается, что delphi-модуль - это контейнер "дружественных" элементов программы(функций, типов, констант, классов,...)
Задача, которую я сейчас исследую - Как правильно распределять функционал по модулям. Предположительный критерий качества - это минимум связей между модулями, и в каждом модуле д.б. только дружественные программные элементы.
В этой теме сильно бы помог совет от системных архитекторов или Delphi-программистов, кто использует средства моделирования типа Rational Rose или подобное.

P.S.
все это я уже писал выше, но мои посты пропали, наверное показались “неудобными”. Вот пишу заново.
14 авг 19, 11:33    [21948951]     Ответить | Цитировать Сообщить модератору
 Re: Какова роль "Модуля" в архитектуре программы?  [new]
DimaBr
Member

Откуда:
Сообщений: 11201
Artem.1st
Получается, что delphi-модуль - это контейнер "дружественных" элементов программы(функций, типов, констант, классов,...)


Лучшие "Друзья"
unit Classes;

type
TStrings = class(TPersistent);
TStream = class(TObject);
TFiler = class(TObject);
TThread = class;
TDataModule = class(TComponent)
TBasicAction = class(TComponent);
14 авг 19, 11:42    [21948969]     Ответить | Цитировать Сообщить модератору
Топик располагается на нескольких страницах: [1] 2 3 4   вперед  Ctrl      все
Все форумы / Delphi Ответить