原则2.1 一个函数仅完成一件功能。 说明:一个函数实现多个功能给开发、使用、维护都带来很大的困难。 原则2.2 重复代码应该尽可能提炼成函数。 说明:重复代码提炼成函数可以带来维护成本的降低。 规则2.1 避免函数过长,新增函数不超过50行(非空非注释行)。 说明:本规则仅对新增函数做要求,对已有函数修改时,建议不增加代码行。 规则2.2 避免函数的代码块嵌套过深,新增函数的代码块嵌套不超过4层。 说明:本规则仅对新增函数做要求,对已有的代码建议不增加嵌套层次。 规则2.3 可重入函数应避免使用共享变量;若需要使用,则应通过互斥手段(关中断、信号量)对其加以保护。 规则2.4 对参数的合法性检查,由调用者负责还是由接口函数负责,应在项目组/模块内应统一规定。缺省由调用者负责。 规则2.5 对函数的错误返回码要全面处理。 规则2.6 设计高扇入,合理扇出(小于7)的函数。 说明:扇出是指一个函数直接调用(控制)其它函数的数目,而扇入是指有多少上级函数调用它 规则2.7 废弃代码(没有被调用的函数和变量)要及时清除。 建议2.1 函数不变参数使用const。 说明:不变的值更易于理解/跟踪和分析,把const作为默认选项,在编译时会对其进行检查,使代码更牢固/更安全。 建议2.2 函数应避免使用全局变量、静态局部变量和I/O操作,不可避免的地方应集中使用。 建议2.3 检查函数所有非参数输入的有效性,如数据文件、公共变量等。 说明:函数的输入主要有两种:一种是参数输入;另一种是全局变量、数据文件的输入,即非参数输入。函数在使用输入参数之前,应进行有效性检查。 建议2.4 函数的参数个数不超过5个。 建议2.5 除打印类函数外,不要使用可变长参函数。 建议2.6 在源文件范围内声明和定义的所有函数,除非外部可见,否则应该增加static关键字。
|