道与术 - 谈谈我对数学和软件产品之间关系的理解

Posted 1994jinnan

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了道与术 - 谈谈我对数学和软件产品之间关系的理解相关的知识,希望对你有一定的参考价值。

JFinal 波总和我在 谈谈我对 JFinal Marketing 的一些看法 博文的评论中谈到了数学和软件之间的关系. 这篇文章中我再详细说说我的理解.

纵观人类知识的积累, 大致可以分为 "道" 与 "术". 所谓"道", 即天道, 也就是自然规律. 而"术", 即技术, 是人类对已发现自然规律的应用. 自先秦而降中国文化即重道而轻术, 这当然有其历史局限性, 但道在术先也是毋庸置疑的.

波总在 JFinal 4.8 发布 新闻中引用了欧拉恒等式:

技术图片

在我看来欧拉恒等式属于"道"的范畴, 它简洁优美地表达了几个基本量之间的关系, 这是我们这个宇宙的自然规律, 是被发现的, 而不是被发明的.

波总在对我的回复中讲到:

就因为要素 + 关系是很普适很好用的建模因子,所以才会像你所说的与很多东西存在同构。这里的关键、难点在于:你将什么东西提取并抽象成为要素与关系,一百个人可以有一百种提取方式。数学大师欧拉提取了e、i、pi、0、1、+、= 这五个要素与两个关系,请问为什么不是另一个普通人提取出来,就因为这个提取过程极难、极难,需要对本质有深刻洞察。提取抽象出要素与关系只是建模的第一步,你得验证要素与关系之间是不是逻辑自洽、续洽、他洽,否则你建立的这个模型就是错误的。光是这一步就是极难的事情。好了,下一步是将要素、关系的数量最少化,也就是说你从你建立的模型中无法再删除任何一个要素或者关系,否则模型就是错误的,这个达成不能再继续删去要素或者关系的状态 jfinal 称之为极简。对应到 jfinal 顶层设计是五个要素Handler、Interceptor、Controller、Render、Plugin,无法再删除任何一个,否则很多功能实现不了。你认为是哲学,是玄学,但这个却是我的日常。你没有这种思维方式,不代表别人有了就是错误的,你有你自己的思维方式,或许别人也不是很赞同

我认为这个类比并不恰当. 欧拉恒等式是一条关于自然规律的表达,是真理,是被发现的; 而你不可能把 JFinal 的设计归结于自然规律和真理的范畴, 它是被设计和开发出来的, 而不是被发现的. 而其中提到的五要素也完全没有道理和欧拉恒等式中的几个数学常量相提并论. 我也基本上可以肯定欧拉恒等式的发现过程和 JFinal 的开发设计过程没有任何可比性. 欧拉也没有像波总在上面讲的 将 e、i、pi、0、1、+、= 这五个要素与两个关系提取出来成为一个恒等式. 欧拉恒等式是欧拉公式在 x=pi 时候的特例, 而欧拉公式是人类在数学复分析领域的成果, 其发现过程除了欧拉也有其他数学家的贡献.

另一方面, 波总提到的 JFinal 五要素 Handler、Interceptor、Controller、Render、Plugin, 这些概念应该早在 JFinal 之前已经出现. PlayFrameowrk1.x 在 2009 年的时候就已经采用相同的概念来构造, 而我知道 Play 并不是一开始就是那个样子, 最早的 Play 是基于 Servlet 的架构, 只是在后来的迭代中演进成当初的架构的. 波总也在评论中让我 "谈谈 actframework 在设计顶层架构时使用的思维方式". 这个题目很大, 可能需要另外开坑讨论. 不过这里我可以很明确地说, 我根本就没有做过任何顶层架构设计. 我也是属于不太相信所谓架构师的那一派. 对我来讲, 好的结构是演化出来的, 不是设计出来的.

来源:大庆网站优化

以上是关于道与术 - 谈谈我对数学和软件产品之间关系的理解的主要内容,如果未能解决你的问题,请参考以下文章

2.软件架构设计:大型网站技术架构与业务架构融合之道 --- 架构的道与术

迎接双11,深度剖析高并发数据库Sharding的道与术

人生不过是那些所谓的道与术

人生的道与术

程序人生 ---- 道与术的一点杂谈

程序人生 ---- 道与术的一点杂谈