第二次博客作业

一、是否需要有代码规范

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

  其实好的代码风格自然而然就形成了,比如等号两边的空格和大括号的位置,形成习惯之后并不会浪费时间,反而是写的乱七八糟的话之后的复查会浪费时间。

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

  额...再艺术也是个程序员吧...如果说你写的代码只由你来维护的话就算写成梵高的画也没关系,但是代码是永存的,人是会被拍在沙滩上的,还是能让大家读懂的好。

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

  一堆例外的话,还怎么规范啊...虽然没有什么“程序员法”来规定代码必须按怎么样的样式写,但一个大家都已经默认的规范打破他也没有什么好处。

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

  如果真的是那样的话其实也不错啊...如果真的有比现在更好的代码规范那我愿意使用。

二、代码复审

1.Does the code work? Does it perform its intended function, the logic is correct etc.

  能够正常输出表达式到文件,也支持答案对比检测功能。

2.Is all the code easily understood?

  如果从中国程序员的角度真的很好理解(因为用了拼音表示变量)...但是最好还是用英语来表示变量吧。截取代码片段如下:

 1 //除法
 2 Digital Digital::DivDigital(Digital anDigital)
 3 {
 4     long long miFenzi;
 5     long long miFenmu;
 6     long long anFenzi;
 7     long long anFenmu;
 8
 9     if (fenzi == 0)
10     {
11         miFenzi = num;
12         miFenmu = 1;
13     }
14     else
15     {
16         miFenzi = fenzi + num * fenmu;
17         miFenmu = fenmu;
18     }
19
20     if (anDigital.fenzi == 0)
21     {
22         anFenzi = 1;
23         anFenmu = anDigital.num;
24     }
25     else
26     {
27         anFenzi = anDigital.fenmu;
28         anFenmu = anDigital.fenzi + anDigital.num * anDigital.fenmu;
29     }
30
31     long long sumFenzi = miFenzi * anFenzi;
32     long long sumFenmu = miFenmu * anFenmu;
33
34     if (sumFenzi == 0 || sumFenmu == 0)
35     {
36         num = 0;
37         fenzi = 0;
38         fenmu = 0;
39     }
40     else
41     {
42         num = sumFenzi / sumFenmu;
43
44         fenzi = sumFenzi % sumFenmu;
45
46         fenmu = sumFenmu;
47         Simplify();
48     }
49     return *this;
50 }

3.Does it conform to your agreed coding conventions? These will usually cover location of braces, variable and function names, line length, indentations, formatting, and comments.

  额,代码的形式风格还是很相似的(也许是因为vs的强制规范风格),但是我的变量名用的是英文表示,较长的英文则取单词的前三至四个字母表示。他在每个函数/方法前简要的注释了一下,我也是如此。

4.Is there any redundant or duplicate code?

  该代码冗余较低,计算方法和数的存储都比较简洁。

5.Is the code as modular as possible?

  还不是十分的模块化。

6.Can any global variables be replaced?

  并没有全局变量。

7.Do loops have a set length and correct termination conditions?

  是的。截取以下代码为例:

 1 long long getLong(char * str)
 2 {
 3     long long l = 0;
 4     int i = 0;
 5     while (str[i] != ‘\0‘)
 6     {
 7         l = l * 10 + str[i] - ‘0‘;
 8         i++;
 9     }
10     return l;
11 }

8.Are all data inputs checked (for the correct type, length, format, and range) and encoded?

  测试了一些边界数据均有相应的处理。

9.Where third-party utilities are used, are returning errors being caught?

  并没有使用第三方程序

总结

  第一次作业我使用的是c#语言编写的,而我的结对伙伴是使用的c++语言,我对c++语言了解较少,所以很多地方都是通过结对伙伴的讲解才了解到的,因此我从此次结对项目中获得了很多。

时间: 2024-08-06 11:55:28

第二次博客作业的相关文章

OO第二次博客作业

一.第五次作业--多线程电梯 (1)分析: 因为时间比较紧迫,所以采用了伪多线程的方式,即计算还是单线程,但是输出是三个多线程.不过最后被判无效了,GG. 现在分析一下觉得还是挺清晰的,电梯开三个线程,在分派任务的时候wait,notify一下就行了. 算法分析: 1.每个电梯有一个list队列,在新任务来的时候决定加入哪个list 2.有变动的list更新(用上一次的代码,从头算到尾,得到应该输出的真实时间) 3.三个线程死循环,遍历对应的list,如果有请求的应输出时间小于当前时间,输出,标

OO第二次博客作业(2018春)

写在前面 多线程 搞死人 第五次作业 类图: 这次作业的调度器(als_3_controller)继承了上一次的调度器(smart_controller),并且分解了之前的schduel方法,内容分布在run()和新建的类ELE_thread的isCarry()和run()里.在程序运行启动了类ELE_thread 的三个线程,分别代表三部电梯的控制系统,分别操作三部电梯. 度量分析: 问题都出在ELE_thread 的run()里,包括圈复杂度和嵌套深度.主要是因为把上一次的大部分代码都集中放

文件服务相关博客作业

nfs和sameba博客作业 博客实践作业: (1) nfs server导出/data/目录: (2) nfs client挂载/data/至本地的/mydata目录:本地的mysqld或mariadb服务的数据目录设置为/mydata, 要求服务能正常启动,且可正常 存储数据 (3) 客户端(lamp)部署wordpress,并让其正常访问:要确保能正常发文章,上传图片: (4) 客户端2(lamp),挂载nfs server导出的文件系统至/var/www/html:验正其wordpres

第二版博客首页安装代码

css: #profile_block{text-align:center;position:absolute; top:60px; right:10px;} #blog-calendar{border-radius: 7px;background:#fff;} #p_b_follow{padding-top:10px;} #p_b_follow a{display:block;width:70px;height:35px; line-height:35px;mrgin-top:10px; te

https的博客作业

博客作业:分别使用httpd-2.2和httpd-2.4实现 1.建立httpd服务,要求: (1) 提供两个基于名称的虚拟主机www1, www2:有单独的错误日志和访问日志: (2) 通过www1的/server-status提供状态信息,且仅允许tom用户访问: (3) www2不允许192.168.0.0/24网络中任意主机访问: 2.为上面的第2个虚拟主机提供https服务: 前提准备: 172.16.1.1测试httpd-2.4,这是centos7系统 172.16.1.2测试htt

C语言博客作业--一二维数组

一.PTA实验作业 题目1:7-2 求整数序列中出现次数最多的数 1. 本题PTA提交列表 2. 设计思路 定义变量n,i,j,max等于0,a[]10用于存放输入的值,b[10]用于存放a[]中各个数有多少个; 输入n的值 i从0开始,每次加1,输入a[i]的值,直到i==n结束循环 i从0开始,判断i是否<n,,进入下一步,每次加一,直到条件不满足 j从0开始,判断j是否<n,,进入下一步,每次加一,直到条件不满足 如果a[i]==a[j],b[i]加一 i从0开始,判断i是否 输出a[j

博客作业1--抽象数据类型

一.作业题目 实验题目 试仿照三元组或复数的抽象数据类型写出有理数抽象数据类型的描述 (有理数是其分子.分母均为整数且分母不为零的分数). 有理数基本运算如下所示: 1.构造有理数R,元素x1,x2分别被赋以分子.分母值 2.销毁有理数R 3.用e(引用类型参数)返回有理数T的分子或分母,当入参i为1时返回分子, i为2是返回分母. 4.将有理数R的分子或分母更改为e,入参i为1时改变分子, i为2是改变分母 5.有理数R1,R2相加,结果存入有理数R3 6.有理数R1,R2相减,结果存入有理数

第零次博客作业

第一部分:结缘计算机 1. 你为什么选择计算机专业?你认为你的条件如何?和这些博主比呢?(必答) 当年高考前在专业这件事上纠结了好久,因为我对于大学各个专业具体学什么都不甚了解,于是就迟迟没有明确的目标,可以说整个高三自己一直都是迷茫的状态,就这样一直保持到了高考.我当年高考是先出成绩,后填报志愿,等到成绩出来之后发现意外地比期望要高,而北航应该是最适合我的学校了.身为一个比较"宅"的理科男,我当时打算将专业锁定在"数学"."计算机"."

个人博客作业Week7(心得体会)

Alpha阶段结束了,内心可以说是五味杂陈.不是说我们的产品拿不上台面那般差劲,复杂的心绪主要来源于和别的队的比较,别的队才刚刚发布没多久访问量和注册量就破百了,并且还发起了找bug送红包的活动.可能是觉得付出了相同的努力,却没办法换回相同的效果,看来还是得审视自己的问题. 本周的个人作业是阅读关于软件开发本质和开发方法的博客/文章,结合自己在个人项目/结对编程/团队项目的经历,谈谈自己的理解或心得.借这个机会找一下我们的不足吧. 阅读材料目录: