程序员修炼之道——正交性

如果你想要制作易于设计、构建、测试及扩展的系统,正交性是一个十分关键的概念,但是,正交性的概念很少被直接讲授,而常常是你学习的各种其他方法和技术的隐含特性。这是一个错误。一旦你学会了直接应用正交性原则,你将发现,你制作的系统的质量立刻就得到了提高。

什么是正交性

“正交性”是从几何学中借来的术语。如果两条直线相交成直角,它们就是正交的,比如图中的坐标轴。
用向量术语说,这两条直线互不依赖。沿着某一条直线移动,你投影到另一条直线上的位置不变。

在计算技术中,该术语用于表示某种不相依赖性或是解耦性。如果两个或更多事物中的一个发生变化,
不会影响其他事物,这些事物就是正交的。在设计良好的系统中,数据库代码与用户界面是正交的:
你可以改动界面,而不影响数据库;更换数据库,而不用改动界面。


Eliminate Effects Between Unrelated Things
消除无关事物之间的影响

我们想要设计自足(self-contained)的组件:独立,具有单一、良好定义的目的(Yourdon和Constantine称之为内聚(cohesion)[YC86])。
如果组件是相互隔离的,你就知道你能够改变其中之一,而不用担心其余组件。
只要你不改变组件的外部接口,你就可以放心:你不会造成波及整个系统的问题。

如果你编写正交的系统,你得到两个主要好处:提高生产率与降低风险。

你可能感兴趣的:(程序员)