今天继续学习本书的提示十七:消除不相关事物之间的影响。
这一章主要围绕正交性去讲的。作者先从几何学的正交开始讲起,类比到计算科学中,正交象征着独立性或解耦性。接着作者从正反两面简单说明了正交主要的收益:提高生产力及降低风险,并详细阐述了这两点。最后作者又介绍了一些可以将正交性原则用于实际工作中的方法,可以在设计、工具包和程序库、编码、测试、文档等方面帮助我们与正交共处。
我理解的正交主要是代码的解耦。耦合太高的系统修改起来十分痛苦,甚至你改完一处代码以后根本不知道他会不会影响到其他原本正常的功能。这一点我们系统做的也不是很好,以前我会很大胆的refactor代码,但是在出过几次事故之后发现有时候上游很微小的改动会比想象中的影响更加深远,所以还是要慎重。当然我认为追求正交也是有代价的,恰好上一章刚刚讲的重复,想要解耦就会或多或少带来一定的重复,不过如果很少的重复可以帮助我们实现正交,还是很值得的。
另外关于作者说到的有关设计的正交,我也经常对自己的涉及不太满意,可能以后需要多加留意。而我们最近在做的升级nodejs版本等事情遇到的各种麻烦则和引入的包和库有很大关系,我们系统经常对同一个功能有两三种不同的方式来实现,这些都是以后需要多加关注的。
网友评论