一些可以用来保持正交的技术

Posted zhxuxu

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了一些可以用来保持正交的技术相关的知识,希望对你有一定的参考价值。

这是一篇翻译的文章

这里的正交是指你的设计实现解耦(decoupled):每一个部分都相互独立,一个部分的改变不会影响其他部分。

  保持你的代码解耦

  编写封闭的(shy)代码——是指一个模块不会向其他模块显露出任何不必要的东西,并且也不会依赖于其他模块的实现。如果你需要改变一个对象的状态(描述),那就让这个对象为你完成此操作。通过这个方法你的代码任然独立于其他代码的实现并且你的项目有很大几率保持正交。

  避免使用全局变量

  每当你的代码引用全局变量,它就会通过这个变量使得自己和其它部分联系起来。尽管你只是试图去读这个全局变量仍有可能导致错误(例如,如果你突然需要改变代码变成多线程)。总而言之,如果你明确地把要求的contex(语境)传入你的模块中,你的代码将很容易理解和维护。在面向对象的结构中,context(语境)经常会被作为参数传递给对象构造函数。在其他代码中,你能够创建一个包含context的结构并且把其他引用传递给他们。

  The Singleton pattern(单例模式)是确保对于一个特定的类只有一个对象实例与之对应。很多人使用这些singleton object(单例对象)作为一种全局变量(特别是像JAVA语言,要不就是不支持全局概念的语言 )。也要小心singletons——他们可能导致不必要的连锁。

  避免相似函数

  你经常会遇到一系列看起来相似的函数——也许他们在开头和结尾共用同一段代码,但是他们每一个的核心算法都不同。 重复代码是结构性问题的一种症状。看一看设计模式中的策略模式会是更好的补充。

养成一个经常批判性思维看待自己代码的习惯。寻找任何一个机会去重新组织代码,提高它的结构和不相关性。这个过程称为重构。


以上是关于一些可以用来保持正交的技术的主要内容,如果未能解决你的问题,请参考以下文章

机器学习9 主成分分析

sed 之 模式空间 & 保持空间

正交矩阵,酉矩阵,正规矩阵 概念

11个号中5保5旋转矩阵公式

OpenGL - 正交投影矩阵,glViewport

ConcurrentHashMap get方法保持同步的解释