(1)提供你的结对成员的博客链接
王婷的博客链接地址是:
https://www.cnblogs.com/wangting999/
(2)结对成员对四则运算项目代码进行代码互审,并给出代码审查结果表
内容 |
王婷 |
宋清雪 |
|
概要部分 |
代码是否符合需求和规格 |
符合 |
符合 |
代码设计是否考虑周全 |
是 |
是 |
|
代码可读性如何 |
易读懂 |
可读性高 |
|
代码容易维护么 |
易维护 |
易维护 |
|
代码的每一行都执行并检查过了吗 |
是 |
是 |
|
设计规范部分 |
设计是否遵从已知的设计模式或项目中常用的模式 |
是 |
是 |
有没有硬编码或字符串/数字等存在 |
有 |
有 |
|
代码有没有依赖于某一平台,是否会影响将来的移植 |
否 |
否 |
|
开发者新写的代码能否用已有的Library/SDK/Framework中的功能实现?在本项目中是否存在类似的功能可以调用而不用全部重新实现? |
否 否 |
否 否 |
|
有没有无用的代码可以清除? |
没有 |
没有 |
|
代码规范部分 |
修改的部分符合代码标准和风格么? |
符合 |
符合 |
具体代码部分 |
有没有对错误进行处理?对于调用的外部函数,是否检查了返回值或处理了异常? |
已处理 已检查 |
对错误进行处理,检查了异常 |
参数传递有无错误,字符串的长度的字节的长度还是字符的长度,是以0开始计数还是还是以1开始计数? |
无错误 从0开始 |
无错误 从0开始 |
|
边界条件是如何处理的?switch语句的default分支是如何处理的?循环有没有可能出现死循环? |
首先指定边界,没有死循环,符合条件继续执行,不符合直接defalut |
先指定的边界,先执行分支语句不符合跳出,没有死循环 |
|
有没有使用断言(Assert)来保证我i们认为不变的条件真的得到满足? |
没有 |
没有 |
|
对资源的利用,是在哪里申请,在哪里释放的?有无可能存在资源泄漏(内存,文件,各种GUI资源,数据库访问的连接,等等)?有没有优化的空间? |
在程序开始申请全局变量,执行后释放,不会有资源泄露的情况出现 |
申请的全局变量在程序运行完释放,没有资源泄露的情况出现 |
|
数据结构结构中有没有用到的元素? |
没有 |
没有 |
|
效能 |
代码的效能如何?最坏的情况是怎样? |
效能还可以 |
效能一般 |
代码中,特别是循环中是否有明显可优化的部分 |
否 |
是 |
|
对于系统和网络的调用是否会超时?如何处理 |
否 |
否 |
|
可读性 |
代码可读性如何?有没有足够的注释? |
可读性好,注释清晰明了 |
可读性好,有注释 |
可测试性 |
代码是否需要更新或创建新的单元测试?针对特定领域的开发,可以整理专门的 |
否 |
否 |
(3)选取其中一个成员的项目为基础,进行结对编程。结对项目撰写的博客要求:
(a)结合课堂讲授内容,制定一份2人共同遵守的代码编写基本规范(至少包括注释规范与变量名规范)
1. 每行只能有一个声明。两个方法之间使用空行。当表达式无法容纳在一行内的时候,可以用{}换行,在逗号或操作符前面断开,新的一行应该与同级的表达式对齐。
2. 方法名与其参数列表之前的左括号间不要有空格。左大括号位于声明语句的同行末尾。方法与方法之间以空行分隔。
3. 左大括号应该位于起始行的末尾,右大括号应另起一行并与复合语句首行对齐。即使是单行的if-else语句或for语句,也应该加上大括号,这样可以有效防止因为添加语句后而忘了加大括号的行
4. 注释规范:在每一个源文件的开头注明该CLASS的作用, 作简要说明,复杂的注释应该放在函数头。在每个方法的前部用块注释的方法描述此方法的作用,以及传入,传出参数的类型和作用。
5. Class 的名字必须由大写字母开头而其它字母都小写的单词组成
变量的名字必须用一个小写字母开头。后面的单词用大写字母开头。
Static Final 变量的名字应该都大写,并且指出完整含义。
参数的名字必须和变量的命名规范一致
(b)描述结对编程的感受
1.两个人在一起合作,可以提高完成任务的速度
2.对自己不是很了解的内容可以和队友深入探讨,
3.对于自己代码不规范的,有漏洞的地方难找出,在队友的帮助下两个人可以更快的进步
4.通过两个人的学习,发现对方擅长的地方,弥补自己的不足之处,提高自己学习的能力,养成更良好的习惯。
(c)结对场景照片
(4)结对项目编程要求:
对结对项目首先完成代码规范和设计规范的修改,其次完成项目增加的需求,最后将完成的项目提交到github上,给出github的连接地址
地址为:https://github.com/sqx1/songqingxue/tree/master
增加的需求:
(a)考虑数据异常处理问题,如在输入题目生成范围的数据时,输入了“abc“等字符数据,程序如何处理。
(b)增大算式生成数的范围(如整数存不下的数),程序如何处理。