代码走查感悟

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/wangyunzhao007/article/details/87552751

1.命名规范且有意义

除了掌握语言的命名规范之外,我们对名称的定义一定要有意义,打个比方,flag大家肯定很熟悉,一般我们用来接收一个标记,做一个bool判断,但是一个程序中这样的判断不会只做一次,如果在同一个程序中有多个这样的bool判断,你的命名如果是flag1,flag2,flag3类似的,只能证明这是一个 标记,至于标记了什么,这个是体现不出来的,有的人说了,我的注释也能体现出来啊,对你的注释也能体现,但是这样做是一个高级开发人员必备的素质,表明你是专业的,你这样做,你的代码的可读性会很好,方便后来的人进行维护。

2.不能嵌套太多

这个问题说的是if...else嵌套太多,逻辑不清楚,代码的可读性以及可维护性不会高。下面说说我的想法,大家在评论中可以说说自己的想法。

1.并列关系

当你的if..else不是嵌套,是并列关系,这时候很多的话,可以用switch语句,但是有很多问题。switch只判断到找到答案为止,一旦找到结果就停止了。而如果使用并列的if的话,可以进行多次判断直到运行完所有的判断。switch里面,必须是单个变量,而不能是表达式。准确来说,if的应用比switch广泛,可以用switch的,都可以用if,但反之,不行 。

2.嵌套关系

(1)但是嵌套关系时,多用if{ return; }...if{ return; }...结构,或者while(true) { if { break; }...if { break; }...break; }结构(用于不方便退出整个方法的时候,但有死循环风险,代码习惯好的可以用),分支条件清晰,多层嵌套if...else...最容易犯错误。

(2)枚举可以有自己的方法,而且每个方法的实现可以不同,也能解决一部分问题.

(3)用职责链的设计模式,进行分级处理,还可以用策略模式,对不同的判断采用不用的处理方式,但是职责链好像更适合。

如果你觉得麻烦,忘掉代码本身,而回顾你的分析和设计时所用的逻辑,可能能够轻松地重构。如果纠结编程语句,反而乱了,小范围的进行代码微调是好的,但是只纠结代码本身是不合理的,如果真的从代码角度真的不能简化,就要考虑我们的设计是否合理,重新设计可能会更好。

3.面向对象的思想要体现,继承,封装和多态,代码的可维护性和可读性,以及健壮性必须要好。

4.注释详细,尝试用英语写注释

注释一定要有,且详细,不能因为你觉得简单就不写,一定要做到面面俱到,还有要尝试用英语开始写代码,从现在开始锻炼自己。

5.代码编写要注意好节省代码和可读性好之间的度,做到两者兼得。

bool flag = studentBLL.selectinfo(student);//查询学生全部信息

if(flag == true)
{
    //执行其他操作
}
//判断是否查到学生信息
if(studentBLL.selectinfo(student))
{
    //执行其他操作
}

请大家对比着两个代码,第一个变第二个,很多人都有的问题,这里想说一下,大家共勉。

1.flag名称不是很好,没有具体的定义,我们要有实际的意义 。

2.if判断中flag已经是bool值,不用加这个“是否等于”,代码冗余了。

3.直接把方法放到if判断中,节省代码,但是代码可读性和可维护性会降低。

所以我们要做到两者兼得,在不降低可读性和可维护性的前提下,进行代码优化。当然也不能一味的不降低可读性,导致代码长,冗余,必要的时候也可以牺牲一些可读性来提供代码性能。

猜你喜欢

转载自blog.csdn.net/wangyunzhao007/article/details/87552751
今日推荐