第四次博客作业-结对项目

链接

结对成员的博客连接:
20194592胡晓松。
连接:https://www.cnblogs.com/huguoguo/p/11730079.html
github连接
https://github.com/maxilong258/NM-L

代码复审

代码复审核查表 由一班高健完成
1.概要部分
1)代码符合需求和规格说明吗符合?
2)代码设计是否考虑周全? 周全 功能和要求相符
3)代码可读性如何? 清晰
4)代码容易维护么?
5)代码每一行都检查过了吗?
2.设计规范部分
1)设计是否遵循从已知的设计模式或项目中常用的模式?
2)有没有硬编码或字符串/数字等存在?
3)代码有没有依赖于某平台,是否会影响将来的移植?
4)4.开发者新写的代码能否用已有Library/SDK/Framework中的功能实现?在本项目中是否存在类似的功能可以调用而不用全部重新实现?
5)5.有没有无用的代码可以清除?
3.代码规范部分
1)修改的部分符合代码标准和风格嘛?
4.具体代码部分
1)有没有对错误进行处理?对于调用外部函数,是否检查了返回值或处理了异常?
2)参数传递有无错误,字符串的长度是字节的长度还是字符(可能是单/双字节)的长度,是以0开始计数还是以1开始计数? 0
3)边界条件如何处理的?switch语句的default分支是如何处理的?循环有没有可能出现死循环? 在分支中填入break
4)有没有使用断言(Assert)来保证我们认为不变的条件真的满足?
5)对资源的利用,是在哪里申请,在哪里释放的?有没有可能导致资源泄露(内存,文件,各种GUI资源,数据库访问的连接,等等)?有没有可能优化? 有些泄露的可能,但是没有必要过度的处理,因为这是生成一次性数据的程序
6)数据结构中有没有用不到的元素? 所定义的使用的数据均为实用数据不存在闲置的数据
5.效能
1)代码的效能如何?最坏的情况是怎样的? 数据控制在一定的范围内,按照固定模式执行,不存在好坏情况
2)代码中特别是循环中是否有明显可优化的部分(C++中反复创建类,c#中string的操作是否能用StringBuilder来优化)?
6.可读性
1)代码可读性如何?有没有足够的注释? 代码的可读性不好,由于从c平台移植到Java所有的功能均在主类中实现
7.可测试性
1)1.代码是否需要更新或创建新的单元测试?针对特定领域的开发(如数据库,网页,多线程等),可以整理专门的核查表。 代码可以创建新的测试单元但是没有必要,代码的功能单一,无需过多的测试
代码复审核查表 由一班胡晓松完成
1.概要部分
1)代码符合需求和规格说明吗符合?
2)代码设计是否考虑周全? 周全 功能和要求相符
3)代码可读性如何? 一般
4)代码容易维护么? 容易
5)代码每一行都检查过了吗?
2.设计规范部分
1)设计是否遵循从已知的设计模式或项目中常用的模式?
2)有没有硬编码或字符串/数字等存在?
3)代码有没有依赖于某平台,是否会影响将来的移植?
4)4.开发者新写的代码能否用已有Library/SDK/Framework中的功能实现?在本项目中是否存在类似的功能可以调用而不用全部重新实现?
5)5.有没有无用的代码可以清除?
3.代码规范部分
1)修改的部分符合代码标准和风格嘛?
4.具体代码部分
1)有没有对错误进行处理?对于调用外部函数,是否检查了返回值或处理了异常?
2)参数传递有无错误,字符串的长度是字节的长度还是字符(可能是单/双字节)的长度,是以0开始计数还是以1开始计数? 0
3)边界条件如何处理的?switch语句的default分支是如何处理的?循环有没有可能出现死循环? 在分支中填入跳转语句
4)有没有使用断言(Assert)来保证我们认为不变的条件真的满足?
5)对资源的利用,是在哪里申请,在哪里释放的?有没有可能导致资源泄露(内存,文件,各种GUI资源,数据库访问的连接,等等)?有没有可能优化? 有些泄露的可能,但是没有必要过度的处理,因为这是生成一次性数据的程序
6)数据结构中有没有用不到的元素? 所定义的使用的数据均为实用数据不存在闲置的数据
5.效能
1)代码的效能如何?最坏的情况是怎样的? 程序按照固定模式执行,不存在好坏情况
2)代码中特别是循环中是否有明显可优化的部分(C++中反复创建类,c#中string的操作是否能用StringBuilder来优化)?
6.可读性
1)代码可读性如何?有没有足够的注释? 代码的可读性不好,注释足够,能读懂代码的含义
7.可测试性
1)1.代码是否需要更新或创建新的单元测试?针对特定领域的开发(如数据库,网页,多线程等),可以整理专门的核查表。 代码可以创建新的测试单元但是没有必要,代码的功能单一,无需过多的测试

结对编程

代码编写基本规范

源代码文件以文件内容中的最顶层的Java类命名,而且大小写敏感,文件扩展名为 .java,同时,文件的编码格式统一为UTF-8
类的命名遵循大驼峰命名法UpperCamelCase,而方法名和变量名的命名遵循小驼峰命名法lowerCamelCase。常量名使用大写字母表示,单词之间以下划线分隔.jsp的文件名全部小写
一个程序文件最好不要超过2000行
不用的代码和引用删除
请合理运用空行。空行可以用来隔开相对独立的代码块,有利于阅读和理解
为不容易理解类变量注释。注释代码段,注释逻辑选择
对成员方法,不要轻易采用public的成员变量。主要的修饰符有public, private, protected。避免过多的参数列表,尽量控制在5个以内
原则上关系密切的行应对齐,对齐包括类型、修饰、名称、参数等各部分对齐。另每一行的长度不应超过屏幕太多,必要时适当换行,换行时尽可能在","处或运算符处,换行后最好以运算符打头
常量命名全部大写,单词间用下划线隔开,力求语义表达完整清楚,不要嫌名字长。
抽象类命名使用Abstract或Base开头;异常类命名使用Exception结尾;测试类命名以它要测试的类的名称开始,以Test结尾。

结对编程感受

与一个人编程相比较,结对编程有很多优点。比如我自己写代码时不太注意编程规范,所以代码风格不是很优秀,再次读自己写的代码时就像看天书一样,可读性很差,但是两人结对编程的话两人可以互相商量变量命名等事宜,一个人也可以提醒代码规范的问题。结对编程时还能减少bug,“驾驶员”长期盯着屏幕,很容易疲劳而犯一些小错误,这时“领航员”便可轻松的指出错误以减少bug的产生,同样的,调试bug的速度也变快了。
总之结对编程虽然降低了一些效率,但是写出的代码错误率更低,代码质量更高,也未尝不是一种补偿。但是结对编程并不是适合所有人,有的人就是喜欢一个人编程,两人结对编程的效率一部分取决于两个程序员的熟悉程度,所以两个人刚开始结对编程时需要一段时间来适应。
可以不断从别人那里学习,提高自己的水平。这次结对编程,我们互相学到了很多,比如良好的代码风格,清晰的编码思路,以及熟练的调试技巧等
通过两个人的讨论,更好的解决问题。

结对场景照片

新增的需求

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

异常处理,当输入非法字符时,报错,并告知用户,输入非法,然后将打印默认数据。
如果算术式增大范围,整数存不下,报错,并告知用户输入范围有误,然后改为最大范围

posted on 2019-10-23 22:09  马喜龙  阅读(115)  评论(0编辑  收藏  举报