web-dev-qa-db-fra.com

Conception du module et des composants

Quelle est la difference entre module et. conception des composants?

21
ms80

J'aimerais partager mon idée de cette différence.

Le composant et le module sont utilisés pour faire référence à un groupe de fonctions ou à une partie d'une fonction. Le module est plus logique, par exemple: module Finance, module HR, module Fabrication ... dans le système ERP. D'autre part, le composant est plus physique. Dans le logiciel, cela peut être une dll, ocx, exe, ...

Il n’existe aucun critère permettant de déterminer lequel est supérieur à l’autre. Un composant peut contenir une liste de modules et un module peut également contenir plusieurs composants. Les composants sont utilisés pour modéliser un système en vue technique, et le module est utilisé pour modéliser le système en vue fonctionnelle (fonctionnalités du système)

14
Tin

Il y a une référence dans OSGi en action qui, je crois, explique que les différences sont très bonnes. 

Modules vs. composants Ne semble-t-il pas que les modules et les composants ont beaucoup en commun? Ils se fournissent tous les deux Et se consomment. Ils sont également packagés En tant qu’unités de déploiement indépendantes. Ces deux personnes ne pourraient-elles pas être considérées comme un seul et même Ou du moins être combinées? Oui, ils le pourraient, mais les composants et les modules servent différents objectifs Et sont quelque peu orthogonaux (ils ne sont pas complètement orthogonaux, car Sont fabriqués à partir de code qui peut être ensuite intégré dans des modules). .____.] Les modules traitent du packaging du code et des dépendances entre codes. Les composants Traitent de la mise en œuvre de fonctionnalités de niveau supérieur et des dépendances Entre les composants. Les composants ont besoin que leurs dépendances de code soient gérées, mais Techniquement, ils n'ont pas besoin d'un système de modules pour le faire (ce sont souvent les programmeurs qui le font Via le chemin de classe). En résumé, vous pouvez penser que les modules traitent de code statique et de dépendances à la compilation, alors que les composants traitent d'instances et de dépendances d'exécution .

9
Moses

Les composants et les modules sont trop souvent confondus. Ils Ne sont cependant pas les mêmes et les implications de l’un ne valent pas nécessairement pour l’autre.

La modularité est le partitionnement du code en modules de fonctionnalité connexe . Dans de nombreux langages de programmation, un module est simplement un fichier source . Il est de pratique courante que si le fichier source grossit trop , Vous pouvez le scinder en deux ou plusieurs fichiers sources et placer ces dans un nouveau répertoire. bien qu'un répertoire ne s'appelle souvent pas un module, ce type de décomposition est toujours modulaire.

Un composant, en revanche, peut être composé de différentes manières avec Autres composants pour former différents programmes. C'est-à-dire qu'il y a une étape de composition séparée , Dans laquelle de vraies personnes décident quels composants Doivent être utilisés ensemble.

J'ai vu la conception de composants utilisée pour appliquer une notion de modularité difficile . Cette approche ne peut pas être recommandée en raison de la charge de composition relativement importante : La complexité de la composition augmente de Polynôme avec le nombre de composants. Et le nombre de composants Augmente linéairement avec le nombre de groupes de fonctionnalités, , Car une fois que vous avez commencé la modularité par décomposition de composant , Vous vous êtes obligé de créer un nouveau composant à chaque fois que sinon vous auriez simplement besoin d’un nouveau module, parce que ce nouveau module n’aurait autrement pas sa place. Avec 100 composants, les frais généraux de composition. Devenaient un travail à temps plein, et chaque itération de composition pouvait prendre jusqu'à quelques semaines, malgré de nombreux efforts d'automatisation. Cela entrave considérablement le développement.

Ma recommandation la plus simple est de rester à l’écart des composants, si possible ; sachant que des composants peuvent parfois être nécessaires. Par exemple, si plusieurs organisations indépendantes sont impliquées dans un projet , un composant pour chaque organisation semble acceptable.

C'est une question de goût, à quel point votre décomposition en modules de Doit être fine, bien que tout le monde s'accorde pour dire que la modularité est une bonne chose . 

Si je connais le nom d’une fonction, mon éditeur le trouvera assez tôt. Par contre, si pour une raison quelconque je ne connais pas le nom d’une fonction (Ou d’une classe à cet égard), la modularité devient plus importante . 

Je m'attendrais à ce que le dernier cas ne soit un problème que pour les fonctionnalités que Vous pouvez expérimenter en utilisant le programme. Essayez donc de faire en sorte que la décomposition de De votre programme en modules reflète un [.____ intuitif. .] décomposition du comportement de votre programme en zones de fonctionnalité .

Si vous voulez dire module dans le sens de la modularité, il existe une définition dans le Glossaire de terminologie de génie logiciel IEEE:

"La modularité est la mesure dans laquelle un système ou un programme informatique est composé de composants discrets, de sorte qu'une modification apportée à un composant a un impact minimal sur les autres composants."

Et Bertrand Meyer a énoncé cinq critères de modularité:

  • Décomposabilité du problème en sous-problèmes 
  • Composabilité des modules pour produire de nouveaux systèmes 
  • Compréhensibilité d'un module isolé
  • Continuité - de petits changements ont des effets localisés 
  • Protection - isolation des défauts
5
Simson

Pour le développement numérique et la prise en compte de l'interface utilisateur (HTML/CSS/JS), j'utilise cette approche pour m'assurer de rester organisé et de réfléchir avant de le faire. Il a été prouvé que le code créé était plus propre et plus organisé, ce qui se traduisait par plus avec moins. 

Dans une feuille de style typique, je suis en train de configurer comme ceci:

/* 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
*/
  • Modules en tant qu'unités indépendantes composées d'éléments: en-tête, pied de page, sections, articles, apartement, etc. Une maison est composée de nombreuses pièces, toutes dotées de styles et de fonctions spécifiques permettant de créer un tout indépendant.
  • Les composants constituent un groupe de code réutilisable contenant plusieurs éléments: listes non ordonnées, citations, cartes, tableaux, etc.

J'ai écrit une explication plus complète que vous pouvez lire ici .

J'espère que cela t'aides!

3
CR Rollyson

À mon avis, Module et Component ne sont que quelques fonctions et actifs. 

Et la différence entre eux est: 

Le composant a une logique métier et le module non.

Par exemple, cette zone de saisie de texte n’est qu’un module, mais lorsqu’une post-api est appelée, elle devient un composant. vous pouvez mettre un module partout et cela fonctionnera bien, mais Componet peut simplement être utilisé dans une page ou une vue spécifique (car il a un appel spécifique à l'API)

1
A.Chan

Le composant est une entité d'exécution (peut être composée de modules), unité exécutable indépendante

Le module est un système partitionné en unités de mise en œuvre, assignation de tâches indépendante. Les modules peuvent ou non être un composant

0
Bao Pham