函数

简介

    函数是代码的灵魂,函数的好坏直接体现代码的质量,决定代码的可读性。

应遵循的规则

函数编写应该遵循一些基本的规则。

短小

       冗长的函数会增加代码阅读的复杂性,极大降低代码的阅读速度。函数编写最主要的规则是短小。上世纪的共识是函数的长度不应该长于一屏,而如今随着显示技术的发展,一些优秀的工程师建议函数长度不应该超过100行,20行封顶为最佳。在代码的逻辑中,时常包含诸如if,else等逻辑判断代码以及while等循环逻辑代码, 合理的建议是这些判断和循环逻辑中的代码块应该只包含一行语句,这行语句一般就是一个函数调用,如此不但可以保持函数短小,还可以通过代码块中调用函数的名称增强文档的价值。函数不应该大到足以容纳所有的嵌套结构,函数的缩进层级不应该多于一层或者两层,这样可以便于代码的阅读以及理解。

只做一件事

       强烈建议一个函数应该只是完成一件事,做好一件事,只做一件事。函数内的逻辑应该清晰明了,降低代码间的耦合度,一个合理的函数应该是“原子”的,也就是不可以再拆分成多个函数。

合理的抽象层级

       要想保证函数只是做好一件事,那么函数中的语句应该都在一个抽象层级上。混杂不同抽象层级的函数很容易会让读者产生困扰,读者很可能无法判断某个表达式是基础概念还是细节,而一旦细节与基础概念混杂,更多的细节就会在函数中纠结起来。我们总是以自顶向下的顺序阅读代码的。编写代码时应该时时注意向下规则,在当前函数中只是描述当前抽象层级,并且引用下一层级。

使用描述性的名称

      在上一章《有意义的命名》中详细讲过函数的命名,在这里再次强调函数命名要使用描述性的名称。如果我们坚持了上述只做一件事的规则,那么我们的函数就短小、功能集中,函数越短小,功能越集中,函数名称越好取。花时间取个好名字是值得的,这有助于理清模块的设计思路。

函数参数

     函数的参数应该越少越好,零参是最理想的情况,除非有充足的理由,要不然不要轻易使用三个以上的参数。函数的参数越多,要覆盖所有情况的测试用例组合就越多,这将极大的增加测试的复杂性。

减少重复性

    代码编写最忌讳重复造轮子,我们一定要将重复的代码抽象出来组成新函数以供调用。

你可能感兴趣的:(函数)