首页 > 业内资讯 > 提高代码质量:如何编写函数

提高代码质量:如何编写函数

时间:2016-02-23 | 来源:developerWorks | 阅读:117

话题: developerWorks

这段代码分别依次判断了四种情况,如果再增加一种情况,我们就要再新增一个if分支,这样就可能造成潜在的问题,如何去优化这段代码呢?我们可以采用一个Map或Dictionary来将每一种情况和相应值一一对应。

var map = { "case1":1, "case2":2, "case3":3, "case4":4 } return map[condition];

通过map优化后,整个代码不仅更加简洁,修改起来也更方便而且不易出错了。
当然,很多时候我们的条件判断语句并不是这么简单的,可能会涉及到复杂的逻辑运算,大家可以查看《代码大全》第18章,其中有详细的介绍。

3、提取内层嵌套为一个函数进行调用
多层嵌套的时候,我们还可以将内层嵌套提取到一个新的函数中,然后调用该函数,这样代码也就更清晰了。

for循环嵌套优化

for循环嵌套相比于if嵌套来说更加复杂,阅读起来会更麻烦,下面说说几点要注意的东西:
1、最多只能两层for循环嵌套
2、提取内层循环到新函数中
3、多层循环时,不要简单地位索引变量命名为i,j,k等,容易造成混淆,要有具体的意思

提取复杂逻辑,语义化

有的时候,我们会写出一些比较复杂的逻辑,阅读代码的人看到后可能搞不清楚要做什么,这个时候,就应该提取出这段复杂的逻辑代码。

if (age > 18 && gender == "man") { //doSth }

这段代码表示当年龄大于18并且是男性的话,可以doSth,但是还是不够清晰,可以将其提取出来

var canDoSth = function (age, gender){ return age > 18 && gender == "man"; } ... ... ... if(canDoSth(age, gender)){ //doSth }

虽说多了一个函数,但是代码更加清晰和语义化了。

总结

本文从函数命名,函数参数和函数的代码编写三个方面谈了关于如何编写好一个函数的感受和想法。文中提到了很多具体的情况,当然日常编码中肯定会遇到更多复杂的情况可能我暂时没有想到。我简单的归纳了几点:
1、准确地对变量、函数命名
2、不要有重复逻辑的代码
3、函数的行数不要超过20行,这里的20行只是个大概,并不一定是这个数字
4、减少嵌套


湘ICP备2022002427号-10湘公网安备:43070202000427号
© 2013~2019 haote.com 好特网