模块化编程:概念、度量与实践
1. 模块化概述
在软件开发领域,模块化是一个被频繁提及却又难以精准定义的概念。不同的平台为代码提供了不同的复用机制,但都支持将相关代码组合成模块。尽管模块化在软件架构中普遍存在,但由于缺乏公认的定义,我们需要给出自己的界定。
理解模块化及其在开发平台中的多种表现形式,对架构师至关重要。许多用于分析架构的工具,如度量指标、适应度函数和可视化工具,都依赖于模块化的概念。模块化是一种组织原则,如果架构师在设计系统时不关注各个部分的连接方式,就会导致系统出现诸多问题。软件系统如同物理系统,倾向于走向无序(熵增),架构师需要不断投入精力来确保系统结构的稳定性。
1.1 模块化的定义
字典将模块定义为“一组标准化部件或独立单元中的每一个,可用于构建更复杂的结构”。在软件开发中,模块化描述的是相关代码的逻辑分组,这些代码可以是面向对象语言中的类,也可以是结构化或函数式语言中的函数。大多数语言都提供了模块化机制,如 Java 中的包(package)、.NET 中的命名空间(namespace)等。
例如,在 Java 中, com.mycompany.customer 包应包含与客户相关的内容。如今,各种语言提供了丰富的打包机制,这给开发者的选择带来了困难。在许多现代语言中,开发者可以在函数/方法、类、包/命名空间中定义行为,每种方式都有不同的可见性和作用域规则。有些语言还通过引入元对象协议等编程结构,为开发者提供了更多的扩展机制。
架构师需要关注开发者的代码打包方式,因为这对架构有重要影响。例如,如果多个包之间耦合紧密,那么复用其中一个包进行相关工作就会变得困难。 <
超级会员免费看
订阅专栏 解锁全文
1102

被折叠的 条评论
为什么被折叠?



