第四次博客作业--结对项目
第四次博客作业--结对项目
任务一:
在学习通上注明结对的成员对: 三班郭文杰-----三班王言冬
任务二:
结对的成员共同完成本次作业,撰写博客并将结对项目的程序发布到github上
链接:https://github.com/mango67/wj
博客的内容安排如下:
- 提供你的结对成员的博客链接地址
郭文杰的博客园链接地址:https://www.cnblogs.com/gywx/
王言冬的博客园链接地址:https://www.cnblogs.com/wyd123/
2.结对成员对四则运算项目进行代码互审,并给出代码审查表
根据课上所学和教材上的内容,可基本列出以下审查表:
A.郭文杰的代码复查由王言冬完成
B.王言冬的代码复查由郭文杰完成
|
复查内容 |
郭文杰的代码复查 |
王言冬的代码复查 |
概要部分 |
代码符合需求和规格说明么? |
没有完成剔除重复算式的功能 |
没有实现算式的查重和是否包含乘除的操作 |
代码设计是否考虑周全? |
在正负数上欠考虑,其他考虑较为齐全 |
总体来说比较周全 |
|
代码可读性如何? |
较好 |
较好 |
|
代码容易维护吗? |
容易,唯一不足就是用C编写,适用面有限 |
容易,代码清晰易懂,易维护 |
|
代码的每一行都执行并检查过了吗? |
均已检查 |
均已检查 |
|
设计规范部分 |
设计是否遵循已知的设计模式或项目中常用的模式? |
遵循 |
遵循 |
有没有硬编码或字符串/数字的存在? |
没有 |
没有 |
|
代码有没有依赖于某一平台,是否会影响将来的移植(如Win32到win64)? |
无,不存在移植问题 |
无,不存在移植问题 |
|
开发者新写的代码能否用已有的Library/SDK/Framework中的功能实现?在本项目中存在类似的功能可以调用二不用全部重现实现? |
没有 |
没有 |
|
有没有无用的代码可以清除? |
无 |
无 |
|
代码规范部分 |
修改的部分符合代码标准和风格吗? |
符合 |
符合 |
具体代码部分 |
有没有对错误进行处理?对于调用的外部函数,是否检查了返回值或处理了异常? |
无错误 |
无错误 |
参数传递有没有错误,字符串的长度是字节的长度还是字符(可能是单/双字节)的长度,是以0开始计数还是以1开始计数? |
无误,字符串的长度是字符长度,以0开始计数 |
无误,字符串的长度是字符长度,以0开始计数 |
|
switch语句的default分支是如何处理的?循环有没有可能出现死循环? |
无default语句,无死循环 |
无default语句,无死循环 |
|
数据结构中有没有用不到的元素? |
没有 |
没有 |
|
效能 |
代码的效能(Performance)如何?最坏的情况是什么样的? |
代码效能较好 |
代码效能较好 |
代码中是否有明显可优化的部分? |
有可优化的地方 |
有可优化的地方 |
|
对于系统或网络的调用是否会超时?如何处理? |
不存在该问题 |
不存在该问题 |
|
可读性 |
代码可读性如何?有没有足够的注释? |
可读性较好,有一部分注释 |
代码可读性较好,有注释 |
可测试性 |
代码是否需要更新或创建新的单元测试? |
需要 |
不需要 |
3.选取其中一个成员的项目为基础,进行结对编程。结对项目撰写的博客要求:
(1)结合课堂讲授内容,制订一份2人共同遵守的代码编写基本规范(至少包括注释规范与变量名规范)
注释规范:
- 单行注释使用符号//,多行或段落注释使用/* */,块级用/** **/注释
- 较为复杂的注释要放在函数头处,比如参数类型的注释
- 注释应使用ASCII字符,不用中文或其他特殊字符
变量名规范
- 统一用数字、字母、下划线、$组成,且首字符不可以是数字
- 要见名知意,方便理解代码
- 在变量名前面不加不必要的修饰符
- 使用英文字母作为变量名
- 首字母大写,不超过10个字符长度
缩进
- 统一缩进使用Tab键缩进
行宽
- 不超过100字符
分行
- 不把多条语句放在同一行
- 变量类型定义在不同行
(2)描述结对编程的感受
从一开始我们就感觉编程是一个人的事情,各自负责自己的板块,最后秩序将这些合成为一个完整的程序。本来一个人就可以完成的模块,现在用两个人完成,感觉很麻烦,两个人还需要磨合,会浪费更多的时间。但是在这几天的结对编程中,我们俩分享各自的想法,共同改进代码,合作解决编程过程中的问题,这样不仅使编程效率提高了,而且从另一方面来说,我们互相激励,在争论中巩固自己的知识体系,极大地增添了我们俩人的自信心,最终很愉快,高效率地完成了任务。
(3)结对场景照片
4.结对项目编程要求
我们针对代码审查表,对原有代码做了如下改变:
(1)添加了方法check实现对重复算式的检查,避免出现重复的算式,提高了出题的质量
(2)增大了操作数的范围,实现可以随机输入出题数量,减少了出题数量的限制
(3)对操作的过程进行了更明确的解释,通过简单地数字输入来实现不同功能