#个人博客作业week2——结对编程伙伴代码复审
General
1.程序能够顺利地运行。程序通过命令行输入,能够向对应的文件中输出符合要求的题目和答案。程序能够根据用户的不同选择,进行题目的生产或答案的校验,生成出的题目符合参数要求和项目的查重等各种要求,答案校验准确迅速。
2.代码逻辑清晰,没有令人难以理解的部分。
3.他的编码风格与我相似,大括号的使用让我能很清楚地划分模块。变量名很函数名的命名做到了”望文生义“。
4.阅读过程中没有发现冗余重复多余的代码,项目中没有任何一个部分注释掉代码。
5.代码模块化十分清晰,主要分为了表达式,分数和计算模块,定义在头文件中,整个项目看上去结构十分清晰。
6.循环的退出条件合理,没有发现数组越界的情况。
7.一些重要的逻辑部分缺少必要的注释,自己需要仔细阅读才看能把握,希望能在一些重要的逻辑部分加上一些帮助理解的注释。
Security
1.对于命令行输入的格式检查完整。测试-n的参数小于等于0,或者-r的参数小于等于0的特殊情况时输出”command is not correct!“;测试cmd数据不合法的特殊情况时输出”command is not correct!“。
2.函数普遍没有检查是否为合法输入。不过在函数调用的部分都输入了合法的输入,所以没有出现异常。
3.无效的输出值会输出”command is not correct!“。
Documentation
1.缺少对程序的整体说明和解释,是伙伴口头解释给我听。
2.部分代码有注释但整体不完整,我认为的一些逻辑较为复杂的部分需要添加利于让人读懂和维护的注释。
3.数据结构的命名”望文生义“,但是建议最好还是需要添加一些解释注释,部分重要的变量缺少注释会让人难以理解。
4.没有检查出不完整的代码。
Testing
- 没有使用unit test进行正确性测试。
- 但作者记录了如下的人工测试日志:
1.测试速度,是否能生成超过10000的题,表示形式是否正确,是否出现超过3个运算符的算式
(1)输入:Myapp.exe -n 10000 -r 10
测试:看Exercises.txt, Answers.txt是否有10000项;看Exercise.txt中算式是否符合要求;看Answers.txt是否正确形式的答案
(2)输入:Myapp.exe -e Exercises.txt -a Answers.txt
测试:看Grade.txt的Correct项是否包含所有的序号,Wrong项包含的0个序号
2.测试-n的参数小于等于0,或者-r的参数小于等于0的特殊情况
(1)输入:Myapp.exe -n 0 -r 10
输出:“command is not correct!”
(2)输入:Myapp.exe -n -5 -r 10
输出:“command is not correct!”
(3)输入:Myapp.exe -n 10 -r 0
输出:“command is not correct!”
(4)输入:Myapp.exe -n 10 -r -5
输出:“command is not correct!”
3.测试是否产生相同的题目,是否有运算式中间产生负数,测试-n,-r调换顺序的情况
(1)输入:Myapp.exe -n 100 -r 10
测试:看这100个运算式是否存在相同的题目,当然也要看中间是否产生了负数的算式
(2)输入:Myapp.exe -r 10 -n 100
测试:首先看这是否能生成符合形式的算式和答案,再看这100个运算式是否存在相同的题目,当然也要看中间是否产生了负数的算式
4.测试是否能够正确地判断答案是否正确。
(1)对于评测的输入问题,我们要求的是输入的题目和答案都是从1开始顺序编号的,不能缺也不能多;否则,请提示输入有错误。
(2)由于我们的题目都是按规范生成的,为简单起见,可以认为输入的题目都是按照顺序编号的符合规范的题目。
(3)(但是答案缺少的话请报错并给出提示。)我把这一条忽略,如果缺少的话就算它是错的。
(4)所有题号必须是按照顺序递增的,而且题数一致。
为了比较这个,我把有10算式的正确答案中的部分改错,删掉其中一个答案(题号不删除),最后得到的答案符合要求。
5.为了符合题目要求,我需要测试cmd数据不对的情况。
(1)输入:Myapp.exe -n 10
输出:“command is not correct!”
(2)输入:Myapp.exe -n 10 -e Exercises.txt
输出:“command is not correct!”
#个人博客作业week2——结对编程伙伴代码复审的更多相关文章
- #个人作业Week2——结对编程对象代码复审
General 代码能够正确运行,能够正确生成指定数量的题目和答案,并且能够对给出的题目和答案文件进行比对,输出结果. 代码没有非常复杂的逻辑,比较容易理解,但是在缺少注释的情况下有部分代码需要较长时 ...
- 个人博客作业Week2(代码规范,代码复审)
Q:是否需要有代码规范 首先我们来搞清楚什么是“代码规范”,它和“代码风格”又有什么关系.依据个人的审美角度,我可能更喜欢在函数与函数之间空出一行,可能在命名习惯和代码注释上更加的internatio ...
- 个人博客作业week2——代码复审
1.代码规范 这些规范都是官僚制度下产生的浪费大家的编程时间.影响人们开发效率, 浪费时间的东西. 代码规范并不是从官僚制度下产生,它是为了提高项目团队开发效率而产生的一种工具,能够极大的增强代码可读 ...
- 个人博客作业-Week2 (代码规范, 代码复审)
代码规范: 1.这些规范都是官僚制度下产生的浪费大家的编程时间.影响人们开发效率, 浪费时间的东西. 编码规范它包含了代码格式,还包括了编码风格和其他规范,通常涉及:缩进.空格使用.Tab使用 注释. ...
- 个人博客作业Week2
一.是否需要有代码规范 这些规范都是官僚制度下产生的浪费大家的编程时间.影响人们开发效率, 浪费时间的东西. 我反驳这个观点,这些规范是成千上万的程序员在开发程序中总结出来的代码规范,他有助于我们的开 ...
- 软工个人作业-博客作业-WEEK2
1.是否需要代码规范: (1)这些规范都是官僚制度下产生的浪费大家的编程时间.影响人们开发效率, 浪费时间的东西. 首先来说,从短期上和个体上来看,一个团队的代码风格必然会在一定程 ...
- 个人博客作业Week2(9月30日)
一.是否需要有代码规范 1.这些规范都是官僚制度下产生的浪费大家的编程时间.影响人们开发效率, 浪费时间的东西. 这些规范并不是一开始就有的,也不是由某个人规定的,代码规范是程序员们在不断地编程实践过 ...
- 个人博客作业Week2 是否需要有代码规范
问题:是否需要有代码规范 对于是否需要有代码规范,请考虑下列论点并反驳/支持: 1.这些规范都是官僚制度下产生的浪费大家的编程时间.影响人们开发效率, 浪费时间的东西. 2.我是个艺术家,手艺人,我有 ...
- #个人博客作业week2——关于代码规范的个人观点
对于这一讨论的前提我们首先要知道什么是代码规范. 在这个问题上我同意一篇参考文章的观点——代码规范不仅只编码风格.编码风格仅是代码规范的一个方面,除了编码风格,代码规范还包括函数返回值等其他方面.在我 ...
随机推荐
- Beta阶段总结博客(麻瓜制造者)
Beta冲刺过程中各个成员的贡献百分比: 成员 贡献值 邓弘立 15% 符天愉 14% 江郑 14% 刘双玉 14% 肖小强 13% 李佳铭 11% 汪志彬 11% 伍杰麟 8% 项目的发布说明 本版 ...
- python3编写网络爬虫13-Ajax数据爬取
一.Ajax数据爬取 1. 简介:Ajax 全称Asynchronous JavaScript and XML 异步的Javascript和XML. 它不是一门编程语言,而是利用JavaScript在 ...
- 变量计算——强制类型转换的js面试题
console.log(1+"2"+"2"); console.log(1++"2"+"2"); console.log ...
- JAVA基础-栈与堆,static、final修饰符、内部类和Java内存分配
Java栈与堆 堆:顺序随意 栈:后进先出(Last-in/First-Out). Java的堆是一个运行时数据区,类的对象从中分配空间.这些对象通过new.newarray.anewarray和mu ...
- redis命令大全参考手册
redis功能强大,支持数据类型丰富,以下是redis操作命令大全,基本上涵盖了redis所有的命令,并附有解释说明,大家可以收藏.参考,你一定要知道的是:redis的key名要区分大小写,在redi ...
- CSS三栏布局
一.绝对定位 <!DOCTYPE html> <html> <head> <meta charset="utf-8" /> < ...
- SkylineGlobe 如何实现绘制圆形Polygon和对图层的圆形范围选择查询
//结束绘制圆形之前,得到Polygon var pos = gPolyObj.Position; var bufferR = gPolyObj.Radius; var cVerticesArray ...
- Linux上vim编辑器缩进的设置(方便如书写python代码)
因为刚刚安装了Ubuntu虚拟机,知乎大神推荐用VIM编辑器,然后发现在Python缩进上不方便,查了点资料,整理出来,以便自己以后忘了还可以再看看. 第一步: 打开终端,在终端上输入 vim ~/. ...
- LVDS原理及设计指南--以及衍生的B-LVDS-M-LVDS--CML-LVPECL电平等
LVDS是一种低摆幅的差分信号技术,它使得信号能在差分PCB 线对或平衡电缆上以几百Mbps的速率传输,其低压幅和低电流驱动输出实现了低噪声和低功耗. IEEE 在两个标准中对LVDS 信号 ...
- Luogu2993 FJOI2014 最短路径树问题 最短路树、长链剖分
传送门 强行二合一最为致命 第一问直接最短路+$DFS$解决 考虑第二问,与深度相关,可以考虑长链剖分. 设$f_{i,j}$表示长度为$i$,经过边数为$j$时的最大边权和,考虑到每一次从重儿子转移 ...