您的位置:首页 > 编程语言

代码整洁之道读书笔记--函数

2015-11-01 14:42 337 查看


好函数的需要满足:

1. 短小:

经过漫长的试错,经验告诉我,函数就该小。

一个强制性的原则是,代码长度最好20行封顶。

2.代码块和缩进:

if、else、while语句等,其中的语句只有一个,就是一个函数调用语句;

函数的缩进层级不该多于1层或2层。

3.只做一件事:

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

判断函数是否只做了一件事,有如下2种判断方法:

1.函数是否只是做了该函数名下同一抽象层上的步骤;

2.看是否能再拆出一个函数,该函数不仅只是单纯地重新诠释其实现。

4.自顶向下读代码–向下规则:

让代码拥有自顶向下的阅读顺序,让每个函数后面都跟着位于下一抽象层级的函数。这样一来,在查看函数列表的时候,就能循抽象层级向下阅读了,这叫向下规则。示例如下:



5.函数参数:

最理想的参数数量是零,其次是一,再次是二,应尽量避免三,有足够特殊的理由才能用三个以上参数。includeSetupPage()要比includeSetupPageInto(newPage-Content)易于理解。参数与函数名处在不同的抽象层级,它要求你了解目前并不特别重要的细节。参数在测试时更加叫人为难。

6.无副作用

函数承诺只做一件事,但还是会做其他被藏起来的事。有时,它会对自己类中的变量做出未能预期的改动;有时,它会把把变量搞成向函数传递的参数或是系统全局变量。无论哪一种情况,都是具有破坏性的,会导致古怪的时序性耦合以及顺序依赖。有副作用的示例代码如下:



副作用就在于对Session.initialize()的调用,函数名checkPassword顾名思义就是用来检查密码的,并未暗示它会初始化该次对话。所以该函数有抹除现有会话的风险。

7.如何写出这样的函数:

写代码和写别的东西很像。在写论文或文章时,你先想什么就写什么,然后再打磨它。初稿也许粗陋无序,你就斟酌推敲,直至达到你心目中的样子。

起初写函数时,往往都冗长而复杂,有太多的缩进和嵌套循环,有过长的参数列表,名称是随意起的,也会有重复的代码。然后再打磨这些代码,分解函数、修改名称、消除重复、缩短和重新安置方法,有时还要拆散类,同时保持测试通过,最后组装这些函数。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: