结对项目-java生成四则运算

杀马特。学长 韩版系。学妹 提交于 2019-12-02 03:08:55

一、博客链接

结对成员博客链接:192401班陈传诚

https://www.cnblogs.com/meethigher/

二、GitHub链接

RandomFormula:https://github.com/Chenchuancheng/RandomFormula

三、代码复审

192401班陈传诚的代码复审表

代码复核审查表
概要部分 代码符合需求和规格说明么? 符合
代码设计是否考虑周全?
代码可读性如何? 通俗易懂,直白如话
代码容易维护么? 不太容易
代码的每一行都执行并检查过了吗? 是,编译0错误,0警告
设计规范部分 设计是否遵从已知的设计模式或项目中常用的模式? 没有,单类实现的功能
有没有硬编码或字符串/数字等存在? 没有,数值都是通过变量或者方法获取的
代码有没有依赖于某一平台,是否会影响将来的移植? 只要有java环境,处处运行
开发者新写的代码能否用已有的Library/SDK/Framework中的功能实现?在本项目中是否存在类似的功能可以调用而不用全部重新实现? 有。是
有没有无用的代码可以清除? 没有,已经精简过了
代码规范部分 修改的部分符合代码标准和风格吗? 变量、方法命名规则是驼峰命名法。编程风格采用的是Kernighan风格
具体代码部分 有没有对错误进行处理?对于调用的外部函数,是否检查了返回值或处理了异常? 有。是
参数传递有无错误,字符串的长度是字节的长度还是字符的长度,是以0开始计数还是以1开始计数? 没有错误。字符串的长度是字符的长度,以0开始计数
边界条件是如何处理的?switch语句的default分支是如何处理的?循环有没有可能出现死循环? 边界条件,比方说栈底,为防止栈底为空,报错,在栈底存储了一个#。
有没有使用断言(Assert)来保证我们认为不变的条件真的得到满足? 暂时没有
对资源的利用,是在哪里申请,在哪里释放的?有无可能存在资源泄漏?有没有优化的空间? ooxxooxx
数据结构中有没有用不到的元素? 有,栈底中存储的#
效能 代码效能如何?最坏的情况是怎样的? 最坏的时间复杂度T=O(n)
代码中,特别是循环中是否有明显可优化的部分 没有
对于系统和网络的调用是否会超时?如何处理? 不会,没用到系统或者网络的调用
可读性 代码可读性如何?有没有足够的注释? 通俗易懂直白如话。注释比代码多
可测试性 代码是否需要更新或者创建新的单元测试? 不需要

192401班申佳栋的代码复审表

代码复核审查表
概要部分 代码符合需求和规格说明么? 符合
代码设计是否考虑周全?
代码可读性如何? 可读性好
代码容易维护么? 容易
代码的每一行都执行并检查过了吗? 是,编译0错误,0警告
设计规范部分 设计是否遵从已知的设计模式或项目中常用的模式? 没有
有没有硬编码或字符串/数字等存在? 没有,数值都是通过变量或者方法获取的
代码有没有依赖于某一平台,是否会影响将来的移植? 只要有java环境,处处运行
开发者新写的代码能否用已有的Library/SDK/Framework中的功能实现?在本项目中是否存在类似的功能可以调用而不用全部重新实现? 有。是
有没有无用的代码可以清除? 没有
代码规范部分 修改的部分符合代码标准和风格吗? 变量、方法命名规则是驼峰命名法。编程风格采用的是Kernighan风格
具体代码部分 有没有对错误进行处理?对于调用的外部函数,是否检查了返回值或处理了异常? 有。是
参数传递有无错误,字符串的长度是字节的长度还是字符的长度,是以0开始计数还是以1开始计数? 没有错误。字符串的长度是字符的长度,以0开始计数
边界条件是如何处理的?switch语句的default分支是如何处理的?循环有没有可能出现死循环? 没有死循环
有没有使用断言(Assert)来保证我们认为不变的条件真的得到满足? 暂时没有
对资源的利用,是在哪里申请,在哪里释放的?有无可能存在资源泄漏?有没有优化的空间? ooxxooxx
数据结构中有没有用不到的元素? 没有
效能 代码效能如何?最坏的情况是怎样的? 最坏的时间复杂度T=O(n)
代码中,特别是循环中是否有明显可优化的部分 没有
对于系统和网络的调用是否会超时?如何处理? 不会,没用到系统或者网络的调用
可读性 代码可读性如何?有没有足够的注释? 可读性好,有
可测试性 代码是否需要更新或者创建新的单元测试? 不需要

四、结对编程

1. 代码编写基本规范

  1. 代码中的命名均不能以特殊字符(如下划线、$#符号)开始或结束 。
  2. 代码中的命名严禁使用拼音与英文混合的方式,更不允许直接使用中文的方式。
  3. 类名使用UpperCamelCase风格,必须遵从驼峰形式。
  4. 方法名、参数名、成员变量、局部变量都统一使用lowerCamelCase风格,必须遵从驼峰形式。
  5. 常量命名全部大写,单词间用下划线隔开,力求语义表达完整清楚,不要嫌名字长。
  6. 抽象类命名使用Abstract或Base开头;异常类命名使用Exception结尾;测试类命名以它要测试的类的名称开始,以Test结尾。

2. 结对编程的感受

  • 一个人编写代码,总是有种灯下黑的现象。可能你自己犯的很微小的错误,你花了大把大把的时间,还是搞不出来。而另一个人只需要看一下就能指出,这提高了复审效率。
  • 可以不断从别人那里学习,提高自己的水平。这次结对编程,我们互相学到了很多,比如良好的代码风格,清晰的编码思路,以及熟练的调试技巧等
  • 通过两个人的讨论,更好的解决问题等。

3. 结对场景照片

左陈传诚 右申佳栋

五、实现新增需求

增加的需求:

  1. 考虑数据异常处理问题,如在输入题目生成范围的数据时,输入了“abc“等字符数据,程序如何处理。
  2. 增大算式生成数的范围(如整数存不下的数),程序如何处理。

对于1,2两个需求,如果不满足输入的条件,捕获异常之后,重新进行输入。

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!