练习1:
同学们用本小组项目中实际的例子来重现如下问题:
1、代码覆盖率对于“应该写但是没有写的代码”无能为力。
(例如代码申请了内存 或其他资源,但并没有释放。又如,代码中并没有处理错误情况。或者没有处理 和文件、网络相关的一些异常情况,例如文件不存在、权限有问题,等等。)
2、代码中有效能问题,虽然代码执行了,并且也正确地返回了,但是代码效率非常低。
(有些情况下,可以针对代码效率写一个单元测试。)
3、多线程环境中的同步问题
(这个问题和代码执行的时序、共享资源的锁定有关)
我的答案:
A1:应该写但是没有写的代码
异常处理和资源管理
在数据库操作、文件操作或网络通信等代码中,通常需要考虑异常处理和资源管理。例如,在StuScoresService和SysUserService等服务层代码中,如果涉及到数据库操作,应确保在操作失败时能够正确处理异常,并且及时释放数据库连接等资源。
异常处理:代码中应该有更明确的异常处理逻辑,比如使用try-catch块捕获可能的异常,并进行适当的处理,如记录日志、回滚事务等。
资源管理:对于数据库连接、文件流等资源,应确保在使用完毕后能够及时关闭,避免资源泄露。Java 7 引入的try-with-resources语句提供了自动管理资源的便捷方式。
A2:效能问题
数据库操作的性能考虑
批量操作:在处理批量数据时(如批量删除、批量插入),应确保使用数据库的批处理能力,减少数据库访问次数。例如