La modularisation est évidemment importante dans les projets logiciels, mais je souhaite connaître les opinions des gens sur comment em> important et pour ce que raisons em> il est important. J'ai évidemment eu mes propres idées depuis que je pose cela, mais je pense à cela comme une "réflexion commune" des raisons pour lesquelles on devrait modulariser ses projets logiciels ... P>
5 Réponses :
Mes principales raisons pour mettre le code dans différents modules: p>
Je pense que l'un des principaux aspects est Aussi, Enfin, lorsque les choses sont plus petites,
Nous, les humains sont limités lorsqu'il s'agit de saisir des problèmes complexes à la fois. Cependant, nous sommes doués dans la capacité de décomposer un problème complexe dans un nombre (éventuellement très grand) de problèmes individuels qui ne sont pas trop complexes afin de lutter contre le gros problème. P>
Ceci est fondamentalement ce qui entraîne des réponses comme "réutilisation", "séparation des préoccupations", "maintenance plus facile". P>
Toutes ces raisons sont vraies s'il s'agit d'une personne qui décompose un problème complexe pour lutter contre la pièce à pièces, ou s'il s'agit d'une équipe de personnes qui le brisent pour répartir la complexité. P>
Belle explication de "Diviser et conquérir" ... :) +1
Pour moi, c'est l'importance primordiale de la modularisation (et de l'encapsulation, à cette affaire). C'est la capacité de réduire l'ensemble de travail nécessaire pour apporter des modifications en fonction de la portée dans une partie étroite de la solution, sans avoir à penser (trop) sur le système plus vaste. Avec de grands systèmes, je sais que Je suis i> pas assez intelligent pour le garder tout dans ma tête!
La modularisation et le découplage sont importants pour de nombreuses raisons, certaines sont: p>
Il peut également être considéré comme une activité de base de Architecture d'application qui: p>
C'est pourquoi un "calcul du portefeuille financier" sera réellement divisé en: p>
Plus plusieurs transversales: p>
Traiter ce type d'exigence fonctionnelle car un grand module monolithique forcerait le développement à mettre en œuvre toutes les sous-routines de la séquence de tous.
Alors qu'avec une architecture d'application claire, vous pouvez commencer à travailler sur les modules plus généraux et transversaux tout en affinant les autres modules plus axés sur les entreprises. P>
Il vous oblige également à définir plus d'interfaces et à analyser les problèmes inter-communications que vos différents modules devront résoudre (typologie N-TO-N directe? Bus?, ...) P>
devrait être un wiki communautaire