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

  1. 没有使用unit test进行正确性测试。
  2. 但作者记录了如下的人工测试日志:

  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——结对编程伙伴代码复审的更多相关文章

  1. #个人作业Week2——结对编程对象代码复审

    General 代码能够正确运行,能够正确生成指定数量的题目和答案,并且能够对给出的题目和答案文件进行比对,输出结果. 代码没有非常复杂的逻辑,比较容易理解,但是在缺少注释的情况下有部分代码需要较长时 ...

  2. 个人博客作业Week2(代码规范,代码复审)

    Q:是否需要有代码规范 首先我们来搞清楚什么是“代码规范”,它和“代码风格”又有什么关系.依据个人的审美角度,我可能更喜欢在函数与函数之间空出一行,可能在命名习惯和代码注释上更加的internatio ...

  3. 个人博客作业week2——代码复审

    1.代码规范 这些规范都是官僚制度下产生的浪费大家的编程时间.影响人们开发效率, 浪费时间的东西. 代码规范并不是从官僚制度下产生,它是为了提高项目团队开发效率而产生的一种工具,能够极大的增强代码可读 ...

  4. 个人博客作业-Week2 (代码规范, 代码复审)

    代码规范: 1.这些规范都是官僚制度下产生的浪费大家的编程时间.影响人们开发效率, 浪费时间的东西. 编码规范它包含了代码格式,还包括了编码风格和其他规范,通常涉及:缩进.空格使用.Tab使用 注释. ...

  5. 个人博客作业Week2

    一.是否需要有代码规范 这些规范都是官僚制度下产生的浪费大家的编程时间.影响人们开发效率, 浪费时间的东西. 我反驳这个观点,这些规范是成千上万的程序员在开发程序中总结出来的代码规范,他有助于我们的开 ...

  6. 软工个人作业-博客作业-WEEK2

    1.是否需要代码规范:    (1)这些规范都是官僚制度下产生的浪费大家的编程时间.影响人们开发效率, 浪费时间的东西.        首先来说,从短期上和个体上来看,一个团队的代码风格必然会在一定程 ...

  7. 个人博客作业Week2(9月30日)

    一.是否需要有代码规范 1.这些规范都是官僚制度下产生的浪费大家的编程时间.影响人们开发效率, 浪费时间的东西. 这些规范并不是一开始就有的,也不是由某个人规定的,代码规范是程序员们在不断地编程实践过 ...

  8. 个人博客作业Week2 是否需要有代码规范

    问题:是否需要有代码规范 对于是否需要有代码规范,请考虑下列论点并反驳/支持: 1.这些规范都是官僚制度下产生的浪费大家的编程时间.影响人们开发效率, 浪费时间的东西. 2.我是个艺术家,手艺人,我有 ...

  9. #个人博客作业week2——关于代码规范的个人观点

    对于这一讨论的前提我们首先要知道什么是代码规范. 在这个问题上我同意一篇参考文章的观点——代码规范不仅只编码风格.编码风格仅是代码规范的一个方面,除了编码风格,代码规范还包括函数返回值等其他方面.在我 ...

随机推荐

  1. CentOS7安装搭建.Net Core 2.0环境-详细步骤

    一.构建.Net core 2的应用程web发布 因为是用来测试centos上的core 环境,先直接用vs17自带的core实例. 二.部署CentOS7的core环境 1.连接并启动之前安装的虚拟 ...

  2. 洛谷P2057 【SHOI2007】善意的投票

    洛谷P2057 [SHOI2007]善意的投票 题目链接 这道题是最小割的一个经典应用:划分集合. 题目的意思就是就是将所有的小朋友分为两个集合:同意睡觉和不同意睡觉的.不同的集合之间的边都要断开. ...

  3. console.time和console.timeEnd用法

    console.time和console.timeEnd这两个方法可以用来让WEB开发人员测量一个javascript脚本程序执行消耗的时间.随着WEB应用越来越重要,JavaScript的执行性能也 ...

  4. maven 打包生成doc和源码插件

    <!--配置生成Javadoc包--> <plugin> <groupId>org.apache.maven.plugins</groupId> < ...

  5. Spark算子讲解(二)

    1:glom def glom(): RDD[Array[T]] 将原RDD的元素收集到一个数组,创建一个数组类型的RDD 2:getNumPartitions final def getNumPar ...

  6. python +百度语音识别+图灵对话

    https://github.com/Dongvdong/python_Smartvoice 上电后,只要周围声音超过 2000,开始录音5S 录音上传百度识别,并返回结果文字输出 继续等待,周围声音 ...

  7. go标准库的学习-io/ioutil

    参考https://studygolang.com/pkgdoc 导入方式: import "io/ioutil" 包ioutil实现了一些I/O实用程序函数. 1.var 变量 ...

  8. VsCode源码编译运行

    参考链接官方文档:https://github.com/Microsoft/vscode/wiki/How-to-Contribute 一.准备环境 Git Node.js(64位,>= 8.1 ...

  9. 类似Visual Studio一样,使用Qt Creator管理多个项目,创建子项目

    1. 简介 QtCreator是一个十分好用的跨平台IDE,由于最近需要在Windows和Mac同时写一个C++的代码,使用VS和XCode不能实现项目的统一管理(可以使用cmake来组织源码,但是每 ...

  10. <计算机网络>计算机网络和应用层

    1.端系统通过通信链路和分组交换机连接在一起,构成网络.网络和网络之间通过路由器相连,组成了因特网. 2.ISP(Internet Service Provider)因特网服务提供商.端系统通过ISP ...