一、简介
本博客为对邹同学的个人项目的代码评价。本次的个人项目是中小学自动出题程序的代码编写,采用的是MCV模式。
程序主要功能是用户预设账户登录后可以选择等级进行对应的小中高的数学卷子对应出题生成txt文本。
这个项目难点在于:
- 文件流的使用,包括文件夹的生成,试卷txt的生成
- 随机出题已经保证出的题目不会重复
- 题目的数学逻辑严谨性
二、代码分析
利用UML对其代码的逻辑结构进行分析表述
三、优缺点总结
优点:
1)多态应用优异,各层级逻辑严谨
代码中对多态的使用灵活,对工厂与接口的实现分层实现,十分清晰。
2)可拓展性强
代码目录结构清晰,对各类、功能与接口进行了明确细致地划分,十分有利于后期功能拓展与项目扩大。
3)代码写作十分规范
从代码中可以看出,邹同学十分重视缩进、注释、变量命名等方面的规范化。代码编码采用utf-8的标准,编程规范按照Google编码规范严格执行。类名与类方法采用大驼峰命名法,类变量采用小驼峰命名法,临时变量采用全小写。所有名称一律用英文,未出现汉语拼音。
4)代码健壮性强
文件路径使用相对路径;
在使用文件流IO时使用try catch捕捉异常。IO输入容易产生错误,因为可能会有文件路径出错,文件找不到等运行时错误,在编译阶段找不出这些问题。
缺点:
1)sin、cos、tan值,太过随机,高中学生无法完成。
2)导入库使用了通配符,不符合Google规范
3)在题目查重的时候,采用暴力循环遍历,效率较低。
四、代码功能测试
软件测试主要从两方面测试。
一:在输入的格式、内容不符合要求的情况下,软件是否会出现异常。
二:产生的习题是否存在形式和逻辑上的错误,习题是否有重复。经过大量测试(50轮),软件在这两个方面表现稳定。
有一些遗憾的是,程序会在每一步询问是否需要切换类型。这个在实际应用中比较冗余。
五、总结
总体来看,邹同学的代码整体结构清晰,代码书写规范,功能实现优异。同时使用了Java语言与数据库操作,并对其优点进行了运用。该同学整体代码编写十分值得本人去学习