从易经角度看软件开发之道

从易经角度看软件开发之道

看到这个标题,有没有人会想到易经与软件开发有什么关系呢?计算机技术是近代才出现的一门科学技术,源于国外。而《易经》伴随着我们中华民族的整个发展史,有几千年的历史了。能有什么关系呢?

一、易经是什么?

从易经角度看软件开发之道

首先让我对《易经》做一个简单的介绍,易经起源于上古蛮荒时代,伏羲画出的八卦,然后是中古时代的文王演周易,就是周文王在伏羲八卦的基础上添加了卦爻辞,最后是孔子做了《十易》,孔子他会删《书经》、《诗经》里边的内容,但他没有删易经,他觉得易经很了不起,不用删,肃然起敬,给易经做了十翼,比喻为给易经安上了翅膀,让它飞起来。所以说易经不是一人创作的,是属于集体创作。他是我们民族古代智慧的结晶。

“易”字,从字形上分析,上为日下为月,表示日月变化,专业点讲,易是表示阴阳变化的学问:阳极为阴、阴极为阳。天下万事万物相互转化,互为基础。整个易经讲的就是变化,从日月之变化,引申到阴阳之变化,再引申到万物之变化,封装变化,然后通过极其隐晦的语言封装变化,这样做的好处就是无论谁,都可以对现实世界的变化做出自己的解读。

易经是群经之首,更是大道之源,它是我们中华文化的总源头,诸子百家的学说都是起源于易经,易经是我们中华文化的接口。易经能存在着世间那么久,从上古伏羲到现在有七、八千年,足以说明易经所说的近似真理。

从易经角度看软件开发之道

二、从阴阳八卦看设计模式

对于设计模式,初学软件开发和初学易经的小伙伴们,应该有同样困惑,干嘛弄这么复杂,直接点不好吗?

易经被称为无字天书,那为什么会被称为无字天书呢?伏羲认为只有图像,没有条条框框的限制,不是具体的东西,才可以通宇宙,通天下,文字说明很难去抽象一类事物。我们很多的汉字也是根据八卦创造出来的。

我们都知道计算机之父是叫冯诺伊曼,也许我们换个角度想,计算机之父是否可以叫做伏羲呢?在计算机的世界中所有的东西都是用0和1按不同的长度和不同的排列编码组成,我们所看到图片音频、视频和网络等等都用很多很多的0和1组成的。而易经的思想是阴阳,阴可以代表是0,阳可以代表是1,宇宙世间万物都是阴阳组成。

从易经角度看软件开发之道

前辈们根据编程实践,整理出了23条设计模式,形式上讲,和《易经》的64卦是一个思想,都是对特定情况下的行为和结果做的总结,并且不限制应用场合。

比如在实际的应用中,没学过设计模式,不等于没用过设计模式。很多时候都是遇到一个问题的时候,自己那么做了,回过头去看设计模式,原来我用的就是这个模式,就会很容易记住。比如遇到很多个算法分支,自然会想到把每个算法分支封装到一个类里,再做个公共的父类,使用switch case语句做分支选择,不管你实际是怎么实现的,这就是策略模式了。

记得有个虚工厂模式,当时刚看到时候觉得莫名其妙。直到一个项目把架构层和应用层严格分开,并且还允许应用层修改/替换底层算法的时候,发现最终的实现方式恰恰就是虚工厂模式。

从易经角度看软件开发之道

易传中孔子曰:“百姓日用而不知”,说的也是此理呀!当一个人突然飞黄腾达之后,一般人很容易自认为自己就是天下第一的时候,此时最容易遭遇失败,突然遭遇某一重大变故,心理接受不了,此时如果看看易经,也许会悔悟,一定会对乾卦的飞龙在天之后的亢龙有悔有着很深的理解;也会瞬间领悟既济卦和未济卦的深层次表达含义;

三、为什么要看易经六十四卦,不看可不可以?为什么要做软件架构,不做可不可以?

从易经角度看软件开发之道

刚接触软件架构,我们应该都有这样的疑问,为什么要做架构,把简单的事情弄复杂? 直接new对象不可以吗,弄一个类封装起来再new是几个意思?直接拍桌子决策不好吗,还用易经这么高大上的学问?

在Java,c++等面向对象编程语言中有一种类叫接口(interface),在接口中定义的方法都是抽象方法,只有接口和抽象方法才能代表一类事物和一类属性。这种编程思想和伏羲的思想是不谋而合的。

在易经中,易经64卦卦象只是对某种现象的总结,并不指定场合,这就是易经的高明之处。

易经中的六十四卦,就是六十四个高级接口类,里面的各个“爻”描述了这个接口的基本功能,是非常抽象的,至于如何实现则是各位看官的事。这就出现了对易经有许许多多的解读的事儿,那就是对易经这个架构不同的实现而已。

易经64卦看似弄得这么复杂,非常难懂,但数千年了历久弥新,依然没有过时。

从易经角度看软件开发之道

软件架构设计的目的也是封装变化,为了应对软件未来扩展升级的需要。如果软件开发只需要应对目前的功能,完全没有将来升级的需要,设计软件架构的复杂性则完全是给自己找麻烦。

所以,易经描述、封装万事万物之变化,架构描述、封装应用需求之变化,他们是在一定程度是保持一致的。

一个好的架构应该是在很高的层次上进行抽象,一个模块就是一个卦象,要封装/描述尽可能多的变化,并且可以实现为不同的应用框架。

所以,回答开头提出的那个问题,易经与计算机是否有关系,我想是很有关系的,甚至可以毫不夸张的说:易经也包含了计算机科学技术。从软件开发者角度去看易经,其实就是一个高层级的软件架构。老祖宗留下的东西,隔行不隔理,仔细想想,大道至简,天下万物本质殊途而同归!

我希望有更多的人能去了解易经,我们不需要刻意的方式去记住或者背诵,看多少是多少,懂多少是多少,或许这就是最为自然的方式去读易经,把它当作宝典。易经广大精微,无所不包,无所不含,所谓其大无外,其小无内;

我希望我们IT工作者在学习编程技术的时候,可以多去了解我们的文化,并传承我们自己优秀的文化。也许易经可以带给我们不一样的编程方面的思想启发呢?有待我们去挖掘!

从易经角度看软件开发之道

来源:德谦国学易经研究

声明:本站部分文章及图片转载于互联网,内容版权归原作者所有,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!

上一篇 2022年2月16日
下一篇 2022年2月16日

相关推荐