前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >道与术 - 谈谈我对数学和软件产品之间关系的理解

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

作者头像
老码农
发布2019-12-24 14:57:25
5640
发布2019-12-24 14:57:25
举报
文章被收录于专栏:老码农专栏老码农专栏

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 在设计顶层架构时使用的思维方式". 这个题目很大, 可能需要另外开坑讨论. 不过这里我可以很明确地说, 我根本就没有做过任何顶层架构设计. 我也是属于不太相信所谓架构师的那一派. 对我来讲, 好的结构是演化出来的, 不是设计出来的.

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档