和我结对的彭博达同学,通过对他的个人项目进行赏析,我学习到了很多:

 

项目结构

使用纯Java开发,代码简练,结构清晰,项目体积小;

 

代码规范

优点:

1)User类属性采用了规范的setter/getter;

2)必要处有清晰的注释;

3)变量及方法命名采用小驼峰且含义简洁明了;

4)Test类方法的访问权限控制较好,保证了对外接口的透明。

缺点:

1)User及Test类属性未采用private限制访问,因此setter/getter没有发挥应有作用(限制读写方式),同时影响数据安全性;

2)类属性和方法之间没有任何空行(建议属性和方法之间空两行,方法与方法之间空行,同一方法中不同的段落空行);

3)userLogin方法体行数过多

 

需求实现

User类维护用户信息,Test类为主程序,使用Random随机生成题目内容,通过文件流-读来排除重复题目可能,文件流-写来生成试卷。

 

算法效率

优点:

1)随机生成题目的算法简练高效O(n);

2)文件流读写效率较高;

缺点:

使用List<User>维护用户数据,一旦用户量大每次需要大量不必要的运行时内存(其他用户),建议采用文件流或数据库维护用户数据;

 

交互方式

命令行操作,每步操作都有相应的提示信息,反馈明确,简单易用。

 

后期迭代

1)方法体过于庞大,不利于功能实现的微调/补充/修改;

2)User类实现凝练,便于拓展其他用户信息(如手机号、邮箱、QQ等)