终极设计:所有业务系统中都只有两个集合

anycmd 发布于 2015/04/13 09:04
阅读 605
收藏 2
业务系统中只有两个集合
梁山权限引擎最终的设计只有Catalog集和Privilege(Catalog元素二元组集)集这两个集合。Role、Account、Menu、AppSystem、Function等都是Catalog目录森林上的事物。人们之前在存储层反映它们的时候把它们分别放进不同的逻辑表中存储,可是对于数据库来说它们虽然是不同的逻辑表但是数据库进程中也是有个逻辑的Catalog目录树统一了它们。

现在由于99%的权限数据都已经常驻了内存,管理这些权限数据的义务完全落到了权限引擎身上,权限引擎可能需要像数据库那样去考虑问题,磨平Role、Account、Menu、AppSystem、Function等类型的不同,全部纳入Catalog集合,在每一个Catalog元素上留下一个CatalogType字典值(取值、Role、Account、Function、Field等)就可以了。

Catalog集合和由Catalog集合中的元素组成的二元组集合(记为Privilege集合)是所有问题的中心。所有其它模型都是外围的辅助模型。如果最终只留下这两个集合的话,那份代码就可以跨平台跨语言了。因为最终的代码中可能只有Dictionary<string, object>(或者称HashTable)这一种类型,无论是.NET还是Java或者C++或ruby或rust或golang都有这种类型或者自己去实现个这样的类型就可以了。.NET、Java、C++、Rust、Golang等都是技术,而梁山权限引擎是它们之上的业务,把.NET、Java、C++、Rust、Golang仅当作CPU来用的一份代码就是跨平台的了。

Catalog集合相对稳定,由Catalog集合中的元素组成的二元组集合(记为Privilege集合)相对躁动。有静有动就是完备的,丢失不了来自上层或下层的信息。但是麻烦的是如何让安全管理员直观的面向这两个集合呢?权限引擎管理系统得提供一个怎样的图形界面?

主体分神进入三维立体的业务系统中去行走
三维立体的空间结构,安全管理员分神进入系统空间在空间中行走,整个空间是分形的,宏观上到处都一样的。一份安全策略有没有漏洞要能明显的反映出来,如同安全管理员来到一个房间发现房间的墙上有个大洞一样。有那么大一个小偷可以钻进来的洞当然是不安全的。
所有的安全策略都能通过空间的隔离和在空间中的运动来表达。不只是安全策略可以表达成跟现实世界完全一样,所有的业务系统所有的计算机系统也都是可以表达成和显式世界完全一样的。只有隔离的空间和在空间中受控的运动。运动是时间,只有空间和时间,整个世界都是这样的,这样的世界我们熟悉了几百万年,所以我们应该还以同样的模式去熟悉计算机世界。

前端很重要
xml + css描述的那个平面是可以立体起来的,以后它们可能突然间被变现为立体空间,然后人分神进入那些空间中,在里面行走。
前端工程师掌握的那些技术是过时不了的,无论是平面的还是立体的,他们掌握的那些技术不会有什么大的不同。整个计算机世界可能真的跟建筑行业没有什么区别。只不过是烧砖和垒砖的区别,烧砖的并不比垒砖的高级。

前端工程师的工作既抽象又形象,他们左右脑平衡使用和发展;而后端工程师的工作太抽象,太依赖左脑,他们不平衡的发展,到最后可能后端会被这个世界淘汰掉。最终留下的不是后端,而是抽象与形象和谐发展的前端人们。

左脑处理问题时是很费时间的,而右脑处理已知问题的速度是严重的高于左脑的。我们大都是左脑型的人,这也是为什么我们现在能胜任计算机工作的原因,但是我们太依赖左脑,被左脑支配了,这会导致我们在现实世界中运行的很慢,世界中未知的抽象问题会越来越少越来越少,我们的作用必将会越来越小越来越小。

我们过时了
我们的成果已经进入了90后00后10后的世界,环境变了,他们中难以出现对0 1抽象的世界特别感兴趣的人,他们就应该去对更美好的上层世界感兴趣,远离0 1抽象世界。群体考虑问题时的出发点从来跟个体不太一样,我们这些人动用左脑的力量去处理底层0 1抽象世界的问题,等我们把底层问题规整好了,到头来可能是我们自己亲手淘汰了自己。人类群体这个超级生物体造就了我们这一半善于左脑思考的人,让我们去开拓抽象的世界,等我们开拓完了,人类就该淘汰我们了,是我们亲手淘汰了我们。我们的下一代得左右并重起来,再也不要去纠正他要用右手夹菜了。

业务系统中只有两个集合中的那两个集合所对应的分别是空间和时间。
加载中
2
气质舞王尼古拉斯赵四
气质舞王尼古拉斯赵四

主体分神进入三维立体的业务系统中去行走
1
花和尚鲁智深
花和尚鲁智深
同意!代码中的变量是立体空间图形,调用、赋值等是运动,问题大都出在我们如何良好的管理这些空间和空间的运动。程序世界中有管线、有管道,有流体……,代码文件中的代码对应的世界跟现实世界是完全一样的。程序员的编程工作就是搬弄一些砖砖瓦瓦、瓶瓶罐罐、管管道道、土土木木、花花草草,筑路架桥、开山凿洞、凿渠引水……

但是我们的计算机比自然计算机中的模型更抽象,更高效,去除了可以去除的干扰,得到一个理想的数学模型。如果我们的计算机计算球拍击球后球的落地点的话,它是根据动量守恒和抛物线自由落体计算的,当球拍击球的当时甚至击之前我们就能计算或预测球的落点。可是自然计算机不这样,它无法排除任何信息,球拍击球的时候球和球拍凹陷,撞击发生了震动,震动波在空气中传播,球飞了出去,球飞行中遇到的每一个空气份子,每一个微小颗粒,甚至重力在1毫米距离的差异……这些东西那个自然计算机都没有办法绕开。
0
jQer
jQer
xml就是shit
anycmd
anycmd
xml、json、object、记录和关系等都是承载信息的形式,它们只是形式上的不同。
anycmd
anycmd
我本来想写html,怕你说html shit于是改成范围更广的xml,可是你还是说xml shit。我晕呢
0
花和尚鲁智深
花和尚鲁智深
梁山山贼报道
0
Leaybc
Leaybc
思考的蛮深入的,挺喜欢看你的文章,加油
anycmd
anycmd
多谢支持。anycmd标签下有个严重问题:内容不应该是1个人制造的。欢迎大家一起发言。名字叫anycmd的这个帐号会越来越不活跃。
返回顶部
顶部