代码整洁之道(二)-------------函数

函数是所有程序的第一组代码,是我们写代码处理逻辑的基础。

1)短小

函数的第一规则是要短小,第二条规则还是要短小。那到底要有多短小呢,

我来看一个被重构之后的函数:

Public static String renderPageWithSetupsAndTeardowns(PageData  pagedata,boolean  isSuite)throws  Exception{

     If(isTestPage(pageData)) 

        includeSetupAndTeardownPages(pagedata,isSuite);

  Return pagedata.getHtml()

}

   原来的代码有接近两百多行,你想不出原来的函数是有多冗余,他把所有的事儿都放在这个函数里,可能你能半天也不知道他要干什么。

  If语句、else语句、while语句等,其中的代码块应该只有一行,这一行最好是函数调用语句。这样不仅能使函数变得短小,而且,因为块内调用的函数拥有较具说明性的名称,从而增加了文档上的价值。

(2)只做一件事

    函数应该只做一件事,做好一件事,只做一件事。如何判断函数是否只做一件事,有一个办法就是看是否能在拆出一个函数。

(3)每个函数一个抽象层

函数中混合不同的抽象层次,往往让人迷惑。一旦把基础概念与细节混杂,那么代码就像稀稀拉拉,布满破洞的棉被一样,毫无整洁可言。

自顶向下读代码:向下规则

我们写代码的时候,最好要让每个函数后面都跟着位于下一抽象层的函数,这样一来,我们读程序的时候将毫不费力。

总之,保持函数短小、确保只做一件事的要诀。让代码读起来像是一系列自顶向下的段落是保持抽象层协议一致的有效技巧。

(4)是有描述性的名称

    前面提到命名的要义,函数名称也遵循同样的规则,别害怕长的名称,长而具有描述性的名称,要比描述性的长注释要好。

(5)函数参数

  最理想的参数量是零(零参函数),其次是一个参数(单参函数),再次是二,应避免三个参数,要有足够特殊的理由才能用三个以上的参数。

   对于有些标识参数,最好避免。如:

   方法rander(true)对于读者来说摸不着头脑,快捷键找过去,稍许有一点帮助,但这样还不够。我们应该将此函数一分为二,reanderForSuite(),renderForSingleTest().

(6)抛弃重复

   重复是冗余的开始,让程序变得臃肿,是软件一切邪恶的根源,许多原则与实践规则都是为控制与消除重复而建的,面向对象编程,面向组件编程,多态,封装等等这些概念多少都是消除重复的一种策略。

 

    每个系统都是使用某种领域特定的语言的搭建的,而这种语言是程序员设计来描述那个系统的。函数是语言的动词,类是名词。编程艺术是且一直是语言设计的艺术。

    大师级的程序员把系统当做故事来讲,而不是程序来写。编程的时候要感觉在讲一个故事,而你编写的函数必须干净利落的拼装到一起。形成一种精确的清晰地语言,帮你讲故事。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值