作业三 代码规范 代码复审 PSP
1.是否需要有代码规范(5分)
对于是否需要有代码规范,请考虑下列论点并反驳/支持:
1这些规范都是官僚制度下产生的浪费大家的编程时间、影响人们开发效率, 浪费时间的东西。
反对。我并不认为代码规范都是官僚制度下产生的,是大家公认的便于项目后期维护,方便大家理解的规范。一个项目有很大一部分时间是后期的维护,良好的代码有利于维护人员更好的理解代码,节约时间,提高效率。而且新手想要学习他的成果也能看得懂,至于说影响开发效率,我觉得良好的代码规范还有利于提高效率,毕竟代码写出来不只是给自己看,还要给同事看,不要让同事因为不想看你的代码而浪费时间。什么叫官僚制度,你不怎么样就会怎么样,而不是劝解,那才是官僚,没有说必须让你使用规范的代码,而是鼓励你使用规范的代码,会方便很多事情,什么是官僚制度,比如老师要让你必须弄一些无意义的东西,你不弄你就会没有分,然后老师给你排名,第几次作业多少分,不交作业扣多少分,晚交作业扣多少分,最后看你总分,差的毕业不了,然后没有毕业证,然后一辈子就完了,那叫官僚制度,循规蹈矩。
2我是个艺术家,手艺人,我有自己的规范和原则。
中立。我觉得作为程序开发人员,更重要的是要有团队精神。当然,个人能力也很重要。但是一个好的团队所能做到的事情不是一两个技术牛人就能完成的。如果你真有那种能力,没有你不可了,我认为这是无所谓的,按你的思想来呗,不要一棒子打死一批人,都已经牛到那个份了,人就是不想让别人看懂他的编程你也没辙。别人想学习一下也没辙,你也没辙、
3规范不能强求一律,应该允许很多例外。
凡事都有例外可以理解,虽然说规范要统一了才有意义,但是不排除某些公司内部使用自己的规范。我觉得规范存在的意义就是为了方便大家工作,提高效率的。如果公司统一规范,而且源码不会让公司以外的人接触到,我觉得也是可以的。
4我擅长制定编码规范,你们听我的就好了。
中立,还是那句话,你真要是一个人能干所有的事情,没有你不可了,那真的无所谓,你只要能按时漂亮的完成任务,怎么弄不是弄,而且有多少人规范编写代码是因为被逼无奈而不是因为本意想让所有人都能看懂。不要随便毁掉一种想法,一个人一个思想,只要不犯法我认为可以理解。
2.代码复审(10分)
这次我复审的是同学樊志豪的四则运算,使用VS2010,编程语言C++, 因为是随机出题器,所以会用到随机数,先定义两个随机数作为运算数,因为算法会用到+—*/所以再定义四个随机数,用于调用运算符,之后再进行运算。
1 #include<iostream> 2 #include<stdlib.h> 3 #include<iomanip> 4 #include<time.h> 5 using namespace std; 6 7 #define random() (rand()%100)//运用rand()函数随机生成100以内的整数。 8 9 void main() 10 { 11 int s1,s2,s3,s4; 12 13 srand((int)time(NULL));//运用srand函数设立随机种子,让种子和当前时间有关,避免每次生成的随机数相同 14 15 for(int i=0;i<30;i++)//运用for循环,共循环30次,生成30随机运算。 16 17 { 18 19 s1=random(); 20 21 s2=random(); 22 23 int k=(int)rand()%5;//运用rand()函数随机生成5以内的整数。 24 25 switch(k) 26 27 { 28 29 case 0:{cout<<s1<<"+"<<s2<<"="; 30 31 break;} //进行整数加法运算 32 33 case 1:{cout<<s1<<"-"<<s2<<"="; 34 35 break;} //进行整数减法运算 36 37 case 2:{cout<<s1<<"*"<<s2<<"="; 38 39 break;} //进行整数乘法运算 40 41 case 3:{ 42 43 while(s2==0) 44 45 s2=random(); 46 47 cout<<s1<<"/"<<s2<<"="; 48 49 break;} //进行整数除法运算 50 51 case 4: //真分数运算部分 52 53 { 54 55 while(s2==0||s1>=s2) 56 57 { 58 59 s1=random(); 60 61 s2=random(); 62 63 } 64 65 s3=random(); 66 67 s4=random(); 68 69 while(s4==0||s3>=s4) 70 71 { 72 73 s3=random(); 74 75 s4=random(); 76 77 } 78 79 int q=(int)rand()%4; 80 81 switch(q) 82 83 { 84 85 case 0: 86 87 cout<<"("<<s1<<"/"<<s2<<")"<<"+"<<"("<<s3<<"/"<<s4<<")"<<"="; 88 89 90 91 break; 92 93 case 1: 94 95 cout<<"("<<s1<<"/"<<s2<<")"<<"-"<<"("<<s3<<"/"<<s4<<")"<<"="; 96 97 break; 98 99 case 2: 100 101 cout<<"("<<s1<<"/"<<s2<<")"<<"*"<<"("<<s3<<"/"<<s4<<")"<<"="; 102 103 104 105 break; 106 107 case 3: 108 109 cout<<"("<<s1<<"/"<<s2<<")"<<"/"<<"("<<s3<<"/"<<s4<<")"<<"="; 110 111 break; 112 113 } 114 115 } 116 117 } 118 119 cout<<endl; 120 121 } 122 system("pause"); 123 }
经过运行发现,这个程序能运行,而且比较完美,符合要求,对于别人来说我不管,但对我来说这是完美的。没有毛病。
3.PSP记录个人项目耗时情况
PSP2.1 | Personal Software Process Stage | Time |
Planing | 计划 | 20分钟 |
Estimate | 估计这个任务需要多长时间 | 20分钟 |
Developing | 开发 | 20分钟 |
Analysis | 需求分析 | 15分钟 |
CodingStandard | 代码规范 | 5分钟 |
Coding | 具体编码 | 5分钟 |
CodeReview | 代码复审 | 5分钟 |
Test | 测试 | 5分钟 |
Reporting | 报告 | 10分钟 |
Postmortem&Report | 总结和报告 | 10分钟 |