设计原则的猜想 -- 一个系统只能REST两个系统

这是篇讲哲学的,如果你是那种“理论都是没用的“ 人,很抱歉,点进来会浪费时间的。


设计原则的猜想 -- 一个系统只能REST两个系统


为什么会有这样的猜想

先说一个有趣的现象,如果有一个随意放大缩小的放大镜的话,我们看地球和月亮的时候,会看到一个小点的球体绕着一个大球体旋转。把放大镜缩小到能看到原子的时候,也会看到同样的画面。

这种现象叫自我相似性。大自然里经常出现元素的模式和元素组成物的模式完全相同的现象。用软件设计的行话说,组成物的设计模式重用了组件的设计模式。(仿佛自然神也是个拥有“懒惰”气质的程序猿^_^)

之前看过一个专门研究自我相似性的视频,其中有段让人印象深刻。说的是一些自我相似性粉丝们去野外测量整个森林吸收二氧化碳量的故事,一开始觉的挺无聊的,但让人吃惊的是他们花了一天时间测量了几棵树就把这样一个浩大的工程完成了。怎么做的呢? 首先测量一颗大树的分叉比例,又测了这树上一颗树叶的二氧化碳吸收量。接着找到森林里最大的树和最小的树。根据自我相似性,大树和相对小一级树的比例应该和分叉比例是一样的。这样只要数一下森林最大的树有几颗,就可以把森林里所有大小树的分布全部演算出来,之后的事仅仅是和树叶吸收量做乘法。


话说到软件上,REST系统集成模式起源于亚马逊的系统设计,亚马逊的CTO在访谈时说了这样一句话 —— 系统的功能应该和这个系统的数据库封装在一起。当时我就想,这不就是对象的设计理念么,把数据和作用在它上面的功能封装在一起(对象的属性和方法)。看来REST说白了就是面向系统级对象。

之前还看过ThoughtWorks文集里的一篇讲提高代码OO设计水平的文章,讲了一些原则,其中一条是一个对象最多有两个属性。为什么要这样呢,让我们把放大镜对准计算机,然后缩到最小。你会看到一个Object,它只有两个状态,一个是0,一个是1,它的功能就是切换这两个状态。


一个系统只能REST两个系统,为什么呢? 根据自我相似性... ... 好吧,我想你应该早猜到原因了。


题外话:我听一个朋友说过,如果发现一个东西有用的话,你应该把它用到体无完肤,摇摇欲坠为止。那我就过一下瘾了,为什么要制造计算机硬件和软件?人是大自然设计的产物,根据自我相似性,人应该设计一个东西,对应着人的身体和灵魂。那在这个东西的灵魂上(软件)为什么要选OO设计呢?根据自我相似性 ,我们小时候认知世界的方式是苹果,猫,爸爸,妈妈这样的。为什么我们像爸爸妈妈,根据自我相似性... ...(有点跑题了)


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值