结对编程--个人项目代码分析
结对编程--个人项目代码分析
1. 简介
本博客用于结队编程项目中对"夸夸公子"的个人项目代码分析。
2. 程序功能分析
- 命令行输入用户和密码,实现登录功能
- 输入题目数量,根据年级生成题目,实现了生成试卷的功能
- 出题后自动生成以时间YY-MM-DD-HH-MM-SS命名的txt文件,试卷信息保存在这里,实现了存储试卷的功能
- 能够在命令行输入切换信息进行相应出题年级切换,实现了更改出题难度的功能。
功能展示:
登录、出题:
保存试卷:
切换年级:
登录安全机制:
亮点:良好的用户交互体验,加入了多次密码错误系统关闭的安全机制。
缺点:没有考虑用户历史题目重复的情况,虽然在该项目中这种概率几乎不可能,但是要满足需求。
3. 代码逻辑分析
整个项目一共拥有三个类:
1、handle类:用于处理操作,类方法用来实现主要功能如用户登录、生成题目、保存试卷等。
2、login类:类中包含用户登录输入和用户登录查询两个方法来实现用户登录系统的功能,并实现了多次登陆失败系统关闭的功能,类成员为登陆失败的次数。
用户登录输入方法:
用户登录查询方法:
3、main类:项目程序入口,包含主方法。
亮点:主类main中只有一个主方法,且只有一行代码,简洁。登录和功能处理函数放在不同类中,便于管理查看。
缺点:该项目队友采用的是面向过程的设计方法,在做后期项目开发的时候拓展性低、函数容易混乱,不利于项目的开发。
为了实现生成不同年级的题目,handle类中包含了一个ProducePaper(String text,String password,String type,int nums)函数和三个不同年级的题目操作数的生成方法PrimaryPaperNumber()、MiddlePaperNumber()、HignPaperNumber()。
相比我自己设计了三个代码重复率较高的函数来实现三个题目的生成,队友这个设计比较巧妙。但是在后期试卷系统项目开发中,将不同类型题目生成用不同函数来实现是必须的。
4. 代码规范分析
根据Google java 代码规范参考,队友的代码采用小驼峰法命名,缩进等符合规范。
代码不规范的地方:
1、 类命名不规范,首字母应大写
2、 程序包含多个空的main方法,应该删去
3、 switch格式缩进不符合Google规范
5. 总结##
总体来说,队友采用面向过程的方法进行编写代码,逻辑性高,队友的代码十分简洁,总共两百行左右,里边的一些编程技巧让我收获很多,抛去一些个人习惯。虽然很多人不太喜欢阅读他人的代码,但是我认为在阅读代码的同时也是和队友的一个交流过程,和队友结对编程,我们要将彼此的逻辑耦合在一起,争取能做出一个好的项目出来。
# 结对编程--个人项目代码分析 #
## 1. 简介 ##
本博客用于结队编程项目中对"夸夸公子"的个人项目代码分析。
## 2. 程序功能分析 ##
1. 命令行输入用户和密码,实现登录功能
2. 输入题目数量,根据年级生成题目,实现了生成试卷的功能
3. 出题后自动生成以时间YY-MM-DD-HH-MM-SS命名的txt文件,试卷信息保存在这里,实现了存储试卷的功能
4. 能够在命令行输入切换信息进行相应出题年级切换,实现了更改出题难度的功能。
5.
功能展示:
**登录、出题:**

**保存试卷:**

**切换年级:**

**登录安全机制:**

**亮点:良好的用户交互体验,加入了多次密码错误系统关闭的安全机制。**
**缺点:没有考虑用户历史题目重复的情况,虽然在该项目中这种概率几乎不可能,但是要满足需求。**
## 3. 代码逻辑分析 ##
整个项目一共拥有三个类:
1、handle类:用于处理操作,类方法用来实现主要功能如用户登录、生成题目、保存试卷等。

2、login类:类中包含用户登录输入和用户登录查询两个方法来实现用户登录系统的功能,并实现了多次登陆失败系统关闭的功能,类成员为登陆失败的次数。

用户登录输入方法:

用户登录查询方法:

3、main类:项目程序入口,包含主方法。

**亮点:主类main中只有一个主方法,且只有一行代码,简洁。登录和功能处理函数放在不同类中,便于管理查看。**
**缺点:该项目队友采用的是面向过程的设计方法,在做后期项目开发的时候拓展性低、函数容易混乱,不利于项目的开发。**
为了实现生成不同年级的题目,handle类中包含了一个ProducePaper(String text,String password,String type,int nums)函数和三个不同年级的题目操作数的生成方法PrimaryPaperNumber()、MiddlePaperNumber()、HignPaperNumber()。
相比我自己设计了三个代码重复率较高的函数来实现三个题目的生成,队友这个设计比较巧妙。但是在后期试卷系统项目开发中,将不同类型题目生成用不同函数来实现是必须的。
## 4. 代码规范分析 ##
根据Google java 代码规范参考,队友的代码采用小驼峰法命名,缩进等符合规范。
代码不规范的地方:
1、 类命名不规范,首字母应大写

2、 程序包含多个空的main方法,应该删去

3、 switch格式缩进不符合Google规范

## 5. 总结##
总体来说,队友采用面向过程的方法进行编写代码,逻辑性高,队友的代码十分简洁,总共两百行左右,里边的一些编程技巧让我收获很多,抛去一些个人习惯。虽然很多人不太喜欢阅读他人的代码,但是我认为在阅读代码的同时也是和队友的一个交流过程,和队友结对编程,我们要将彼此的逻辑耦合在一起,争取能做出一个好的项目出来。