模块化是什么:
In software design, modularity refers to a logical partitioning of the "software design" that allows complex software to be manageable for the purpose of implementation and maintenance. The logic of partitioning may be based on related functions, implementation considerations, data links, or other criteria.
模块化编程的好处:
Modular programming improve maintainability by enforcing logical boundaries between components
模块化还可以促进开发团队的拆分:
Theoretically, a modularized software project will be more easily assembled by large teams, since no team members are creating the whole system, or even need to know about the system as a whole. They can focus just on the assigned smaller task
Several programmers can work on individual programs at the same time, thus, making development of program faster. It easer to debug, update and modify. It leads to a structured approach as a complex problem can be broken into simpler tasks.
基于组件的开发是模块化思想的一种具体实践
组件应该是“面向服务”的:
The Software engineers regard components as part of the starting platform for service-orientation.
组件化跟面向对象是两种不同的paradigm:
OOP and the related disciplines of object-oriented analysis and object-oriented design focus on modeling real-world[citation needed] interactions and attempting to create "nouns" and "verbs" that can be used in more human-readable ways, ideally by end users as well as by programmers coding for those end users.
Component-based software engineering, by contrast, makes no such assumptions, and instead states that developers should construct software by gluing together prefabricated components – much like in the fields of electronics or mechanics. Some peers[who?] will even talk of modularizing systems as software components as a new programming paradigm.