接着上一篇,这篇主要是函数的规则。
一、函数
系统是由程序、子程序、函数组成的,如今只有函数存活了下来,那么我们应该如何写好函数呢?
- 首先是要短小,第二是还要更短小,每行都不应有150个字符,函数不该有100行那么长,20行封顶最佳。
- 函数应该做一件事。做好这件事。只做这件事。 功能要单一,对准一点。
- 每个函数一个抽象层级。基础概念和细节不应混杂到一块。
- switch语句,写得比较短比较难。我们无法避免switch语句,确保switch埋藏在较低的抽象层级,而且永远不重复。
- 使用描述性的名称。名称尽量描述函数需要完成的事情。
- 函数参数。最理想的参数数量是零,其次是一,再次是二、尽量避免三。参数与函数名处于不同的抽象层级,所以能少则少吧。超过三个要考虑封装为类了。
- 无副作用。函数承诺只做一件事,所以不要加入一些未按照预期的改动。
- 分割指令与询问。函数要么做什么事,要么回答什么事,二者不可兼得。
- 使用异常代替返回错误码。try{}catch{}
- 别重复自己。重复是软件中一切邪恶的根源。
- 结构化编程。Dijkstra认为,每个函数、函数中的每个代码块都应该有一个入口、一个出口。意味着每个函数中只该有一个return语句。
- 如何写出这样的函数。不断打磨,精雕细琢。