和我结对的彭博达同学,通过对他的个人项目进行赏析,我学习到了很多:
项目结构
使用纯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等)