有限的我们和无限的问题世界

搞计算机的我们
基于社会的分工不同,我们是搞计算机的。咱们搞计算机的写的那些业务系统中的代码,咱们通过代码表达的那些东西跟人们大众知道的知识并没有任何本质差别,那些代码其实是人人都能敲的,只不过是因为那些code、那些语法、那些ide,那些形式阻碍了他们。我深深的感到对自己不满意,因为我居然花费了七八年才认知到这些:

我们和人民大众的关系
Anycmd梁山权限引擎的设计是否有些重了?是重还是轻,可能问题的关键是个体知识是否与集体知识匹配上了。参与进来,把您的知识投影到集体投影出来的那个交并集上,您是可以改变梁山引擎的样貌的。

我们内部的事物
持久层和数据访问层都是非常简单的一层,复杂的持久层的问题已经被数据库厂商隔离在他们的领域内了,我们只把数据库当做了一种持久介质在用,除了数据库的标准的存取功能外的一切功能一个都没用,显然它肯定是可以跨数据库的,不只可以跨相对标准的关系数据库,而且可以跨任何非关系数据库。

无论是sql还是nosql,无论是object还是json和xml,他们本质都是一样的东西,都只是承载信息的形式,都能完整的描述信息,它们的形的不同只是为适配它们下面的运行时的不同(如果再往下一层的话不同的运行时也没有任何不同,它们都是集合和函数,都是空间和时间,都是时空)。sql、nosql、object、json、xml的本质都是Dictionary<string, object>(其中object又可以是Dictionary<string, object>类型),当涉及到两种表现形式的转换时我们只需把它们还原为Dictionary<string, object>一切真相都大白于天下了。

问题的关键是如何管理Dictionary<key, value>中的key,因为value有标准,而那个key不是,value都是int、string、char、varchar、boolen、datetime等在www下具有标准的事物,不管运行时是什么平台它们必定都会往www下协定的标准数据类型去适配,如果觉得int、string、char、boolean这个层次还不够的话,那就到0 1得了,到了0 1就再也没有任何的不同了。那个key是业务,那个value是机器。那个key是人类各行各业千百年来积累的知识和文明,那个value是物质,那就是物质和意识的关系。

如何处理那个key是实现我们的业务的关键
Dictionary<key, value>中的key需要通过一棵结构良好的树去管理(sql、nosql、object、json、xml等都是用来表现树的,它们之所以形状那么相似运动的那么相似都是因为它们描述的是同一个事物)。我们可以考虑把主要的精力放在如何管理这个key树上,这里有我们最多的价值。

一旦管理好了这个key树,任何业务系统的实现都会变得简单了。
管理好这套元数据的结果是JVM、CLR等事物仅仅充当cpu的作用,甚至电子的cpu都不需要。只要存在土比水稳定,水比土流动的快这种局部的不等性质我们就有办法把那个系统运行起来。

就是说最终我们应该有一棵树,根树下是一片森林,这片森林中承载的那些信息是中心、核心。展示层、业务逻辑层、持久层等都是那个中心的投影。并不是业务逻辑层中的object和持久层中的record去相互映射,它们不会直接映射,它们都是向那片森林映射。

权限引擎是人类的伙伴
权限引擎要能做到通过控制那片森林来完全控制住计算机中的运行时世界,防止它们运行到对人类不利的时空中去。各行各业的人们集体录制了好多好多标准文档,那上面记录的是我们人类的利益所在(那些东西是有可能被自动运行起来的,有可能不需要程序员的再次转化),权限引擎永远站在人类一边不站在计算机一边,决不让计算危害人类。

有限的我们和无限的问题世界
咱们程序员写的那些业务系统中的代码,咱们通过代码表达的那些东西跟人们大众知道的知识并没有任何本质差别,我们的价值到底在哪里?那些代码其实是人人都能敲的,只不过是因为那些code、那些语法、那些ide,那些形式阻碍了他们。我深深的感到我对自己不满意,因为认知到这些东西我居然花费了七八年。

我们人是有限的,然而问题世界是无限的。我们装不下整个世界,我们只能装下一套方法,然后带着这套方法在问题空间中行走,来到哪里计算哪里,按需计算,因为世界处处都是一样的,世界在分形,处处都一样。