软件之禅(十一) 消息

黄国强 2024/03/30

        图灵机三个部分:纸带,读写头,控制器之间是通过消息来交互的。消息有多种形式,举一个最常见的一个例子,我们调用一个函数或过程,这可以认为是向这个函数或过程发了一个消息。
        从耦合的角度,我认为消息分为以下三种:
        * 情形1,只发送,不关心是否收到,即广播消息,类似于网络通讯的IP协议和Redis的频道消息
        * 情形2,发送消息并确保客户端一定收到
        * 情形3,发送消息并确保客户端收到并执行指定的任务,典型的就是函数调用
        显然,情形1耦合度最低,情形3耦合度最高。如果一个系统中都是情形1的模块,那么开发和维护这种系统是非常轻松的。当然整个系统都是情形1这种情况是极小概率的事情,大多数系统这三种情形都会存在。
        大型软件架构的顶层设计,一定是设计成情形1。其他情形扩展性会有问题,而且复杂度会很高。从心理学的角度来看,人类处理信息的能力是有限度的。根据米勒(Miller,1956)的分析,人脑处理信息有一个魔法数字7(正负2)的限制,也就是说,人的大脑最多同时处理5到9个信息(chunks)。原因是短期记忆储存空间的限制,超过9个信息团,将会使得大脑出现错误的概率大大提高。
        所以基于米勒法则的考虑,我们要从设计的角度尽量减少“调用且需要跟踪结果”的这种情形3的情况。一个公司为什么尽量用规章制度管理,而不是人治,背后的道理也是相通的。我之前的blog“集中决策和分散决策”系列文章讲了两个具体设计的优劣。读者有兴趣可以看看。

[参考链接]
米勒法则
集中决策和分散决策(1) (2)(3)
软件之禅(十)数据库
 

  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

acloud_csu

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值