“ 使软件更易理解的秘密:米勒法则”
小游戏
学习之前先一起玩一个小游戏。
3秒钟时间,看看下面的图片中有多少个小块?
3秒到了,数出来了吗?22个。
没数出来也没关系,我也没数出来o(╥﹏╥)o
现在,我对上面的小方块施一下魔法,重新再来一遍,还是3秒。
准备,开始!
这次怎么样?数出22这个数字了吗?还是6、10、6这几个数字?
神奇吗?
其实这就是米勒法则的魔力。
今日知识
依靠魔法数字7约束元素数量,可以使软件更易理解(降低认知成本、降低维护成本、增加可扩展性)。
开发中常见的元素有:
- 包(父元素为项目)
- 类(父元素为包)
- 属性(父元素为类)
- 方法(父元素为类)
- 参数(父元素为方法)
- 一行代码(父元素为方法)
- ……
以方法为例,类中的方法数量也应该遵循米勒法则(即方法数量小于等于7个)。如果超出此数量,可以通过重构来优化软件结构(使用数字7约束,找到相似点分类)。
但需要注意的是,这样虽然可以降低代码的认知难度,但却也要付出不少其他成本(开发成本、风险成本等),实际操作时应权衡各个质量属性后进行综合决策。
后记
画图的时候,右图明明是我复制左图后一个个小块移动分组的,但写文章时怕数的不对,又重新数了很多遍,甚至还有几次数出23个(汗)。
但右图却很有信心,一定是6+10+6个,从没再数过。是不是又证明了文中提到的方法确实有效呢?还是挺有趣的吧
内容还感兴趣吗?公众号中会有更多相关内容持续更新哦