作业三: 代码规范代码复审PSP

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了作业三: 代码规范代码复审PSP相关的知识,希望对你有一定的参考价值。

1. 是否需要有代码规范

对于是否需要有代码规范,请考虑下列论点并反驳/支持:

这些规范都是官僚制度下产生的浪费大家的编程时间、影响人们开发效率, 浪费时间的东西。

  不对。代码规范是为了方便程序员群体的交流与审查。毕竟一个项目大多是以团队的形式。

我是个艺术家,手艺人,我有自己的规范和原则。

  不对,编码风格不是编码规范,编码规范同时包括了编码风格和其它规范,不仅仅指代码格式。例如,像“返回成功/失败的函数应该用一个整数作为返回值”,这样的规则不属于编码风格。有自己的风格可以,但不能因为自己的风格违反编码规范。

规范不能强求一律,应该允许很多例外。

  不对,规范之所以叫规范,就是一个行业的行为准则,如果允许例外的话就不能称之为规范了。

我擅长制定编码规范,你们听我的就好了。

  不对,规范的制定不应该由一个人自作主张,而是应该由大多数人决定,并且经得起检验才能叫规范。

2. 代码复审

 我审查的是王乃宽同学,他说是我的室友。源代码如下:

#include<stdio.h>

#include<stdlib.h>
#include<time.h>
main()
{
int a,b,op,os;

aq1:    printf("选择您想挑战的运算法则\n");
printf("1.加法 2.减法 3.乘法 4.除法\n");
scanf("%d",&op);
switch(op)
{
aq: case 1:
srand((unsigned)time(NULL));
a=rand()%100+1;b=rand()%100+1;
printf("题目为:%d + %d = ?\n\n",a,b);
printf("1.查看答案 2.做下一题\n");
scanf("%d",&os);
if(os==1)
{printf("%d + %d =%d\n\n\n",a,b,a+b);
goto aq1;
}
else
goto aq;
break;
at:    case 2:a=rand()%100+1;b=rand()%100+1;
printf("题目为:%d - %d = ?\n\n",a,b);
printf("1.查看答案 2.做下一题\n");
scanf("%d",&os);
if(os==1)
{printf("%d - %d =%d\n\n\n",a,b,a-b);
goto aq1;
}
else
goto at;
break;
aq2:    case 3:
a=rand()%100+1;b=rand()%100+1;
printf("题目为:%d * %d = ?\n\n",a,b);
printf("1.查看答案 2.做下一题\n");
scanf("%d",&os);
if(os==1)
{printf("%d * %d =%d\n\n\n",a,b,a*b);
goto aq1;
}
else
goto aq2;
aq3:    case 4:
a=rand()%100+1;b=rand()%100+1;
printf("题目为:%d / %d = ?\n\n",a,b);
printf("1.查看答案 2.做下一题\n");
scanf("%d",&os);
if(os==1)
{printf("%d / %d =%d\n\n\n",a,b,a/b);
goto aq1;
}
else
goto aq3;
break;
}
}

代码工作吗?

工作

代码符合需求和规格说明么?

是的

代码设计是否考虑周全?

缺少考虑分母为零的情况。

所有的代码容易理解?

并不是,个人水平有限,并不能理解全部,但是大部分还是可以理解的

有冗余的或重复的代码么?

没有

尽可能模块化的代码么?

是的

任何全局变量可以替换吗?

是的

代码是可以测试的么?

是的

有没有无用的代码可以清除?

没有。

我审核了一下王乃宽的代码,发现比我的精细许多,能从中学习到一些思想,他的代码考虑了单一一种运算的情况,适合想强化加减乘除单一计算能力的学生。值得借鉴。

 

以上是关于作业三: 代码规范代码复审PSP的主要内容,如果未能解决你的问题,请参考以下文章

作业三: 代码规范代码复审PSP

作业三: 代码规范代码复审PSP

代码规范代码复审PSP

作业三: 代码规范,代码复审

第十五周个人作业

作业三:代码复审