В чем разница между дизайном модулей и компонентов?Модуль по сравнению с конструкцией компонентов
Спасибо
В чем разница между дизайном модулей и компонентов?Модуль по сравнению с конструкцией компонентов
Спасибо
Я хотел бы поделиться своим мнением об этой разнице.
Оба компонента и модуль используются для обозначения группы функций или части функции. Модуль более логичен, например: модуль Finance, модуль HR, модуль Manufacturing ... в системе ERP. С другой стороны, компонент более физический. В программном обеспечении это может быть dll, ocx, exe, ...
Нет критериев для измерения того, какой из них больше другого. Один компонент может содержать список модулей, а один модуль также может содержать много компонентов. Компоненты используются для моделирования системы в техническом представлении, а модуль используется для моделирования системы в представлении функции (функциональные возможности системы)
Это, безусловно, неправильный ответ. Цитата из https://support.microsoft.com/en-us/kb/815065: «Использование DLL помогает продвигать модульность кода, повторное использование кода, [...]» - вы не можете сказать, что «компонент более физический», , DLL - все о модульности, и вы не можете получить больше физической, чем это. – arpadf
То же самое для пакетов OSGI https://www.osgi.org/developer/architecture/: «Поэтому модульность является основой спецификаций OSGi и воплощена в комплекте bundleconcept. В Java-терминах пакет представляет собой простой старый JAR-файл "- снова модули являются физическими. – arpadf
В OSGi есть ссылка, в которой я полагал, что она объясняет различия очень хорошими ,
Модули и компоненты Разве это не похоже на то, что модули и компоненты имеют много общего? Они оба обеспечивают друг другу и потребляют вещи друг от друга. Они также упакованы в качестве самостоятельных блоков развертывания. Разве эти два не могли считаться одним и тем же или хотя бы быть объединены? Да, они могли, но компоненты и модули обслуживают разные цели и несколько ортогональны (они не полностью ортогональны, поскольку компоненты сделаны из кода, который в конечном итоге может быть упакован в модули). Модули имеют дело с упаковкой кода и зависимостями между кодом. Компоненты связаны с внедрением функций более высокого уровня и зависимостей между компонентами . Компонентам необходимо управлять своими зависимостями в коде, но они не нуждаются в модульной системе (часто это программисты, которые делают это через путь класса). Хорошее резюме состоит в том, что вы можете думать о модулях как о статическом коде и зависимостях времени компиляции, тогда как компоненты имеют дело с экземплярами и временем выполнения зависимостей.
Согласен; Я просто хочу укрепить эту точку зрения. Ключом к пониманию разницы между модулями и компонентами является то, как мы рассматриваем систему: статический вид, в котором модули и зависимости между ними производятся непосредственно из кода и представления экземпляра, где компоненты и зависимости/ссылки между ними результат обработки времени выполнения и/или отдельный этап настройки перед выполнением. – arpadf
Если вы имеете в виду модуль в смысле модульности есть определение в стандарте IEEE Глоссарий Software Engineering Терминология:
«Модульность является степень, в которой системная программа или компьютер состоит из дискретных компонентов так что изменение одного компонента оказывает минимальное влияние на другие компоненты ».
И Dr. Bertrand Meyer заявил пять критериев модульности:
Если вы укажете официальный источник, было бы желательно получить правильную цитату: «Степень, в которой система или компьютерная программа состоит из дискретных компонентов, так что изменение одного компонента оказывает минимальное влияние на другие компоненты ' – Gerrat
Компоненты и модули слишком часто смешиваются друг с другом.Они , однако, не то же самое, и последствия одного, не обязательно для другого.
Модульность - это разбиение кода на модули связанных функций . Во многих языках программирования модуль является просто исходным файлом . Общепринятой практикой является то, что если исходный файл слишком сильно растет , вы можете разбить его на два или более исходных файла и поместить эти в новый каталог; в то время как каталог часто не называется модулем, этот вид разложения по-прежнему является модульным.
Компонент, с другой стороны, может быть составлен по-разному с другими компонентами для создания различных программ. То есть существует отдельный этап композиции , где реальные люди решают, какие компоненты следует использовать вместе.
Я видел компонентную конструкцию, используемую для приведения в исполнение некоторых понятий жесткого модульности. Этот подход не может быть рекомендован из-за довольно значительных накладных расходов композиции: сложность композиции растет полином с количеством компонентов. И число компонентов растет линейно с количеством функциональных групп, , потому что, как только вы начнете с модульности по компоненту , разложение, вы вынуждаете себя создавать новый компонент, когда вам в противном случае просто нужен новый модуль, потому что новый модуль иначе не принадлежал бы нигде. На 100 компонентах накладные расходы стали полной занятостью, и каждая композиция продолжалась до нескольких недель, несмотря на многочисленные усилия по автоматизации . Это значительно затрудняло развитие.
Моя самая простая рекомендация должна заключаться в том, чтобы держаться подальше от компонентов, если вообще возможно ; зная, что компоненты иногда могут быть необходимостью. Например, если в проекте задействовано несколько независимых организаций, один компонент для каждой организации представляется приемлемым.
Это вопрос вкуса, как мелкозернистый разложение на модули должны быть, хотя все согласны с тем, что модульность - это хорошая вещь .
Если мне известно имя функции, мой редактор найдет ее достаточно скоро. С другой стороны, если по какой-то причине я не знаю названия функции (или класса, если на то пошло), модульность становится больше .
Я ожидаю, что позже дело, только быть проблемой для функциональных возможностей, которые вы можете испытать с помощью программы, поэтому постарайтесь сделать разложения вашей программы на модули отражает интуитивное разложения поведения вашего программа в области функциональности .
Для цифровой разработки и рассмотрения пользовательского интерфейса (HTML/CSS/JS) я использую этот подход для обеспечения того, чтобы я оставался организованным и думал, прежде чем делать. Доказано, что он создает более чистый, более организованный код, который прекрасно переносит работу с меньшими затратами.
В типичной таблицы стилей, я в настоящее время настройки, как это:
/* Style Guide – Mobile First
1. =Setup
2. =Modules as independent units made up of components
3. =Components as group of reusable code containing more than one element
4. =Classes
5. =Responsive as enhancement
*/
Я написал более полное объяснение вы можете прочитать here.
Надеюсь, это поможет!
компонент является сущностью среды выполнения (может быть составлены из модулей), независимый блок работоспособной
Модуля секционированной системы в единицы реализации, независимое присвоение задач. Модули могут быть или не быть компонентом
На мой взгляд, Module
и Component
- это всего лишь несколько функций и активов.
И различались между ними:
Компонент имеет бизнес логический модуль и нет.
Например, эта область ввода текста является всего лишь модулем, но когда была вызвана какая-то пост-апи, она становится Компонентом. вы можете поместить модуль повсюду, и он будет работать нормально, но Компонент просто может использоваться на определенной странице или в представлении (например, у него есть специальный вызов api)
Это зависит от языка/среды, о которой вы говорите (например, .Net - это нечто совершенно иное, чем модуль perl). Что вас интересует? – Foxfire
Единственный контекст, который я могу придумать, имеет смысл для этого вопроса - это Joomla !, но пока мы не получим разъяснений, я не собираюсь отвечать на них. – cHao
с точки зрения каркасов. Можете ли вы привести пример фреймворка PHP, который является модулем или компонентом? – ms80