代码整洁之道精华——第三章 函数

阅读本文有两种原因:第一,你是个程序员;第二,你想成为更好的程序员。你如果想成为更好的程序员,那就请细细品味文章内容,它绝不会让你失望。
代码整洁之道教给大家如何编写整洁的代码,而不仅仅是能运行的代码,这对于编程者而言很重要。我在读这本书的第一遍时没什么感觉,但在读第二遍时觉得它确实挺不错的,如果有机会的话我会读第三遍。下面是我在读书过程中摘录的精华内容,希望大家认真对待。各位看官如果读完本文觉得书中的精华内容挺合自己的胃口,那就可以抽出时间认真地读一下这本书。

1、函数应该做一件事。只做这件事。做好这件事。

public static string renderPageWithSetupsAndTeardowns(PageData pageData,bool isSuite){
    if(isTestPage(pageData)){
        includeSetupAndTeardownPages(pageData,isSuite);
    }
    return pageData.getHtml();
}

问题在于很难知道那件该做的事是什么。上述代码只做了一件事吗?其实也可以看作三件事:
(1)检测页面是否为测试页
(2)如果是测试页,就把设置和分拆步骤容纳近来
(3)无论是否为测试页,最终都渲染成HTML
注意:
这三件事都是实现渲染功能的具体步骤,他们都在该函数名下的同一抽象层级上,因此函数还是只做了一件事。
2、如果每个例程都让你感到深合己意,那就是整洁代码。
3、向函数传入布尔值简直就是骇人听闻的做法。这样做方法签名会立刻变得复杂起来,大声宣布本函数不止做一件事。如果标识为true将会这样做,如果标识为false则会那样做。我们应该把标识为true和false这两种情况写到两个函数中,这样逻辑更清晰。
4、如果函数需要两个、三个或三个以上参数,就说明其中一些参数应该被封装为类了。
5、给函数取个好名字,能较好地解释函数的意图,以及参数的顺序和意图。对于一元函数,函数和参数应当形成一种良好的动词/名词形式。例如,write(name)就相当令人认同。protected UserInfo Initialize()函数和返回值也可以形成良好的动词/名词形式。
6、函数应该只做一件事,错误处理就是一件事。因此,处理错误的函数不应该做其他事。这意味着如果关键字try在某个函数中存在,它就该是这个函数的第一个单词,而且catch/finally代码块之后不该有其他逻辑的内容。

抛开所有细节不谈,代码整洁之道总体来说可以分为以下7点:

  • 运行所有测试
  • 减少重复代码
  • 提高表达力
  • 提早构建简单抽象
  • 类和方法都只做好一件事
  • 尽量减少类和方法的数量
  • 努力,让营地比你来时更干净。努力,让世界比你来时更干净。努力,让代码比你签出时更干净。
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

changuncle

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

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

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

打赏作者

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

抵扣说明:

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

余额充值