代码函数的短小化

《Clean Code》是一本令人印象深刻的好书,道出了整洁代码的真谛:整洁代码就是容易理解的代码,即整洁代码是理解成本最小的代码。那么怎么最小化代码的理解成本呢?作者给出的答案是好的命名代码最小化好的命名指使用含义准确的名字揭示代码意图,建立代码与思维概念的直接对应关系,这是理解代码的基础。而代码最小化指将代码的每个代码单元都做到目的最小化实现最小化,使得每个代码元素能被零成本理解。代码最小化意味着函数最小化,类最小化,书中对函数最小化的讨论非常经典。
函数最小化
首先,函数的目的是实现一个功能,在函数名声明中表露。因此,函数目的的最小化通过函数功能的最小化实现,也就是说一个函数只做一件事

注:对于如何判定一个函数是否是“只做一件事”,这是一个思维问题,不同的思维习惯会产生不同的理解和判断。基于整洁代码的宗旨为理解成本最小,因此“只做一件事”的判断标准也应当是最普遍的思维,让绝大多数人容易理解,不会感到奇怪为判断标准。

其次,函数的实现是通过组合低抽象层次的函数调用为高抽象层次的函数。函数的实现的最小化通过只实现一个抽象层次实现。函数抽象把多个相对低抽象层次的函数抽象为一个相对高抽象层次的函数,每经过一个抽象层次,函数调用次数变得更少,当函数体的所在的抽象层次恰好比函数功能低一个抽象层次,也就是说该函数的实现只实现了一个抽象层次,这时函数的实施量最小。举个例子,我们需要实现将大象放进冰箱的功能,以下是一个示例:

void 将大象放进冰箱(){
    打开冰箱门();
    将大象头塞进去();
    将大象屁股塞进去();
    关上冰箱门();
}

然而,该示例中”将大象头塞进去”和“将大象屁股塞进去”可以进一步抽象出“将大象塞进去”这个函数,因此我们可以说函数体的某些部分的抽象层次相对功能所在的抽象层次低了不止一个抽象层次,并没有达到函数实现最小化。经过这个抽象得到一个更简单的函数:

void 将大象放进冰箱(){
    打开冰箱门();
    将大象塞进去();
    关上冰箱门();
}

该函数无法再抽象出新的抽象层次,因此该函数实现最小。
综上所述,函数最小化就是只做一件事只实现一个抽象层次
各位有什么看法呢?欢迎给出您的看法~

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值