第四次博客作业-结对项目
一、结对的成员对
1班张哲——1班尘超然
二、博客任务完成清单
1. 结对成员的博客链接
张哲的博客链接地址:☞☞☞☞点击此处即可进入☜☜☜☜
2. 代码互审表
a. 张哲的代码审查表(由尘超然完成)
类别 | 审查项 | 完成情况 |
---|---|---|
概要部分 | 代码符合需求和规格说明么? | 符合 |
代码设计是否考虑周全? | 否 | |
代码可读性如何? | 相对比较清晰 | |
有冗余的或重复的代码吗? | 没有 | |
代码的每一行都执行并检查过了吗? | 是 | |
设计规范部分 | 设计是否遵从已知的设计模式或项目中常用的模式? | 是 |
有没有硬编码或字符串/数字等存在? | 有 | |
代码有没有依赖于某一平台? | 否 | |
有没有无用的代码可以清除? | 否 | |
代码规范部分 | 修改的部分符合代码标准和风格么? | 符合 |
具体代码部分 | 数据结构中有没有用不到的元素? | 否 |
对于调用的外部函数,是否检查了返回值 | 是 | |
效能 | 代码的效能如何? | 良好 |
循环中是否有明显可优化的部分? | 否 | |
可读性 | 代码可读性如何?有没有足够的注释? | 可读性不错,有注释 |
可测试性 | 是否需要更新或创建新的单元测试 | 需要 |
b. 尘超然的代码审查表(由张哲完成)
类别 | 审查项 | 完成情况 |
---|---|---|
概要部分 | 代码符合需求和规格说明么? | 基本符合 |
代码设计是否考虑周全? | 否 | |
代码可读性如何? | 良好 | |
有冗余的或重复的代码吗? | 没有 | |
代码的每一行都执行并检查过了吗? | 是 | |
设计规范部分 | 设计是否遵从已知的设计模式或项目中常用的模式? | 是 |
有没有硬编码或字符串/数字等存在? | 有 | |
代码有没有依赖于某一平台? | 否 | |
有没有无用的代码可以清除? | 否 | |
代码规范部分 | 修改的部分符合代码标准和风格么? | 基本符合 |
具体代码部分 | 数据结构中有没有用不到的元素? | 否 |
对于调用的外部函数,是否检查了返回值 | 是 | |
效能 | 代码的效能如何? | 良好 |
循环中是否有明显可优化的部分? | 否 | |
可读性 | 代码可读性如何?有没有足够的注释? | 可读性良好 |
可测试性 | 是否需要更新或创建新的单元测试 | 需要 |
三、选取其中一个成员的项目为基础,进行结对编程
1. 代码编写基本规范(两人共同遵守)
-
缩进:使用4个空格作为缩进单位,或将TAB键的占位符设置为4。
-
简单语句:每行最多包含一条语句。
-
复合语句:左大括号应该位于起始行的末尾,右大括号应另起一行并与复合语句首行对齐。
-
块语句:if,else,while,for语句必须有{},空格。{可以在if,else,while,for之后,}在一行之头。
-
类:以大写字母开头,如果有多个单词,每个单词头字母大写。
-
类变量命名:变量名首字母必须小写,如果该变量名有多个单词组成,后面的单词首字母大写,单词与单词之间不要使用_做连接。
-
常量命名:所有字母大写,如果有多个单词组成,单词与单词之间以_隔开。
-
方法命名:首字母必须小写,如果该变量名有多个单词组成,后面的单词首字母大写,单词与单词之间不要使用_做连接。单词不要使用名词。
-
注释规范:
-
一个.java文件最好不要超过1000行。
-
无用的空行和代码都要删除。
-
类的注释:类的注释必须写在该类的声明语法之前。在注释中要描述该类的基本作用,作者,日期,版本,com,版权声明。
/** *类功能描述:(大致描述类的功能) *@author:编写者名称 *@version: 类文件的版本号从1.0开始(自己确定版本号的增改情况), 修改情况(修改时间、作者、改动情况) */
-
变量、常量注释:
/** *变量功能描述:(大致描述变量的功能) */
-
方法注释:方法注释必须写在方法定义之前。
/** *方法功能说明 */
-
2. 描述结对编程的感受
a. 认真对待
我们认为,结对编程与个人编程一个最明显的不同就体现在心理差异上。因为结对编程是两个人的事情,不论是担任驾驶员还是领航员的角色,都需要对程序设计和实现有足够的准备,否则很容易变成一个人写代码,另一个人无所事事。以我们的经历为例,在未开发前,我们提前一天把以前写过的代码又读了一遍,以便能够充分掌握程序的编写思路,以便能够熟练对代码进行改进。因为是两个人共同完成,所以我们会比平时更严格地要求自己。
开发过程中,要打起十二分精神,两个人紧密配合,谁也不好意思开小差,能够集中注意力在代码上。
b. 提高效率
结对编程的形式使得代码处于不断地审查过程,每一段代码都由一个人编写,另一个人检查,最大程度上减少了出现bug的可能;两人互相交流,商讨实现方式,遇到问题时,能够做到互补,减少了搜索的时间,提高了效率。
在测试过程中,因为有两个人共同调试,所以能够更快的发现问题所在。
c. 互相学习
结对编程也是一个互相学习的过程。在结对编程过程中,两人会不断就实现方法、代码风格或命名方法等进行讨论,两个人的思路能够进行互补,在编写过程中能够学到对方解决问题的思路和方法,对于提高自己解决问题和编程能力有很大的帮助。
3. 结对场景照片
4. 项目设计说明
a. 功能设计
- 题目数量可任意定制
- 二则运算和四则运算可选
- 操作数范围可控
- 包含正负数可选
- 重复算式可过滤
- 负数加括号
- 答案是否需要打印
- 考虑数据异常处理问题
- 增大算式生成数的范围
b. 功能设计
- 本次程序设计只用到一个主类,其中包含了主方法和其他方法共同实现程序的相关功能。
- 判断是否需要负数的方法
- 判断是否需要包含乘除的方法
- 获取随机数的方法
- 获取算式得数的方法
- 负数加括号的方法
- 主方法