软件的粒度

http://www.jdon.com/42212/15

中国汉字含义太丰富,多元的解释都可能合理。

假如世界是一个“混沌”,那么我们切分这个“混沌”的原子单位是什么?

化学中是“分子”,物理中是“原子”,生物中是“细胞”,那么软件中是“什么”呢?

或者换一个说法,软件对这个“混沌”切分的基本“粒度”是什么或者应该是什么?

拿欧氏几何作一个类比。

点:事实 VS 事物
线:场景 (表示为一组事实或一组相关的事物参与的活动)
面:领域
体:系统

边界是一个“圈”,“圈”可大可小,可以是点、线、面、体等等。现在的问题是,软件中的“点”是什么?“边界观”或者“辩证法”并没有告诉我们这一点,他们是方法论,还不是世界观。


OO切分的基本粒度是“对象或事物”;FP切分的基本粒度是“函数或过程”;逻辑式编程切分的基本粒度是“事实”或“命题”。

如果说软件是关于“如何表达思考”的学科,那么思考的“粒度”(概念细胞)肯定不会有统一标准?

OO语言,适合将这个“混沌”切分为各个“对象”(如PPT,DESC,Role, MI等)。

FP语言,适合将这个“混沌”切分为各个“函数”。

当然,可以认函数是个对象,或者对象是个函数。也就是说FP和OO甚至可以认为没什么不同。

逻辑式,适合将这个“混沌”切分为各个“事实或命题”,而后进行推理。

逻辑式的命题与推理,与FP的函数与参数或OO的对象与消息,是有区别的。粒度的选择,取决于业务目标与需求,也受现有的语言描述能力的制约,更受我们思维习惯的制约。试问,我们习惯于逻辑式的思考方式吗?


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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值