初学菜鸟的总结——函数一些要点

近日读书收获的一些小东西:

    函数的第一规则是短小,短小的函数不仅有利于其他人细致理解,而且当开发者对编写的代码进行试错时更加的方便直观。if、else、while等语句,其中的代码块应该只有一行。该行大抵是一个函数调用语句。这样不仅能保持函数短小,而且,因为块内调用的拥有较据说明性的名称从而增加了文档上的价值。Dijkstra认为每个函数、函数中的每个代码块都应该只有一个入口一个出口。遵循这条规则,意味着每个函数中只应该有一个return语句,循环中不能有break或continue、goto语句,结构化编程值得提倡,但对于小函数,这些规则助力不大,只有在大函数中才有好处,因此函数的短小也使得其中偶尔出现的return、break、continue等语句没有坏处。

    这也意味着函数不应该大到足以容纳嵌套结构。所以,函数的缩进层级不该多余一层或两层,这样也更易于阅读和理解。

    函数应该净量减少传入的参数数量,参数带有太多的概念性,它与函数名处在不同的抽象层级,它要求读者了解目前并不特别重要的细节,并且从测试的角度参数越多,要编写确保参数各种组合运行正常的测试用例是很困难的事情,参数多于两个测试覆盖的所有可能值组合范围让人望而生微(虽然我不做测试)。

    函数中的算法在代码中不断重复,会使函数变得臃肿,而且增加了放过错误的可能性,一旦消除重复,代码的可读性也会得到提升。

    在编写代码时,应该想雕刻一样,先调出大概轮廓,再精雕细琢,所以开始写出冗长复杂的代码,之后进行函数分解、名称修改、重复消除、重新安置方法,之后组装好函数,完成代码的编写,这也是一种尝试编写的方法。

猜你喜欢

转载自sodler.iteye.com/blog/2355973