软件的正交性原则

栏目: 编程工具 · 发布时间: 5年前

内容简介:在《程序员修炼之道——从小工到专家》中提到了软件系统设计中的正交性原则,“正交性”对我而言是一个新鲜词汇,原来是来自几何学中的术语。那切换到软件系统领域,正交性就是互不依赖、解藕,即各个子系统、模块之间相互独立,互不影响,或者尽量减少耦合性。在实际过程中,很多情况下很难做到模块的正交性,或多或少地需要与其他模块、子系统打交道。比如在维护旧版本的同时开发新功能时,尤其是项目工期紧张、代码版本管理混乱的时候,没人顾得上这些了。

在《程序员修炼之道——从小工到专家》中提到了软件系统设计中的正交性原则,“正交性”对我而言是一个新鲜词汇,原来是来自几何学中的术语。

正交性

如果两条直线相交成直角,它们就是正交的,用向量术语说,这两条直线互不依赖,沿着某一条直线移动,投影到另一条直线上的位置不变。

那切换到软件系统领域,正交性就是互不依赖、解藕,即各个子系统、模块之间相互独立,互不影响,或者尽量减少耦合性。

在实际过程中,很多情况下很难做到模块的正交性,或多或少地需要与其他模块、子系统打交道。比如在维护旧版本的同时开发新功能时,尤其是项目工期紧张、代码版本管理混乱的时候,没人顾得上这些了。

正交性应该适用于软件系统的设计、开发、测试的各个环节,初始的设计决定了功能/业务/系统/模块的位置,处在中间层的子系统承上启下成为了关键点,与上下关联系统的耦合性最大;开发过程中也需要留意,统一好接口后尽量保持不变,这样减少了开发人员之间的沟通成本,也方便自己做单元测试和每次单元测试的累积以及最后的自动化测试;而最终的测试环节,需要验证每个功能的独立性,方便确认问题的来源。

Advertisements


以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持 码农网

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

Learning PHP, MySQL, JavaScript, and CSS

Learning PHP, MySQL, JavaScript, and CSS

Robin Nixon / O'Reilly Media / 2012-9-3 / USD 39.99

If you're familiar with HTML, you can quickly learn how to build interactive, data-driven websites with the powerful combination of PHP, MySQL, and JavaScript - the top technologies for creating moder......一起来看看 《Learning PHP, MySQL, JavaScript, and CSS》 这本书的介绍吧!

JSON 在线解析
JSON 在线解析

在线 JSON 格式化工具

随机密码生成器
随机密码生成器

多种字符组合密码

XML 在线格式化
XML 在线格式化

在线 XML 格式化压缩工具