软件设计中的数字:7

“ 使软件更易理解的秘密:米勒法则”

小游戏

学习之前先一起玩一个小游戏。

3秒钟时间,看看下面的图片中有多少个小块?

在这里插入图片描述
3秒到了,数出来了吗?22个。

没数出来也没关系,我也没数出来o(╥﹏╥)o

现在,我对上面的小方块施一下魔法,重新再来一遍,还是3秒。

准备,开始!在这里插入图片描述
这次怎么样?数出22这个数字了吗?还是6、10、6这几个数字?

神奇吗?

其实这就是米勒法则的魔力。

今日知识

依靠魔法数字7约束元素数量,可以使软件更易理解(降低认知成本、降低维护成本、增加可扩展性)。

开发中常见的元素有:

  • 包(父元素为项目)
  • 类(父元素为包)
  • 属性(父元素为类)
  • 方法(父元素为类)
  • 参数(父元素为方法)
  • 一行代码(父元素为方法)
  • ……

以方法为例,类中的方法数量也应该遵循米勒法则(即方法数量小于等于7个)。如果超出此数量,可以通过重构来优化软件结构(使用数字7约束,找到相似点分类)。

但需要注意的是,这样虽然可以降低代码的认知难度,但却也要付出不少其他成本(开发成本、风险成本等),实际操作时应权衡各个质量属性后进行综合决策。

后记

在这里插入图片描述
画图的时候,右图明明是我复制左图后一个个小块移动分组的,但写文章时怕数的不对,又重新数了很多遍,甚至还有几次数出23个(汗)。


但右图却很有信心,一定是6+10+6个,从没再数过。是不是又证明了文中提到的方法确实有效呢?还是挺有趣的吧

内容还感兴趣吗?公众号中会有更多相关内容持续更新哦
在这里插入图片描述

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值