本周周三收了软件需求与分析的大作业——源码与需求规格说明书。源码要求做一些web安全措施。
因为本人的能力有限,只能尽可能防止SQL注入,现在一些框架已经配备了完整的SQL注入模式了,比如MyBatis。但是在项目开启之初我还没有学会MyBatis,因此对数据库的操作还是直接使用JDBC,拼接SQL语句去操作。当时写的时候并没有特地去考虑安全性问题,因此直接使用了Statement,极容易发生SQL注入。因此我花了大半天的时间把所有的Statement换成了PreparedStatement,有些地方不得不转换逻辑重写,而且系统的后台写得也是不尽人意,从设计模式上说直接就是不合格的水准,虽然能完整实现功能,但代码过于冗余,因此在修改PreparedStatement的时候我总计修改了27个类,这次大作业给我印象最深刻的两点中,这一点就是其中之一,在以后开发的时候要多加留意。
第二点就是规格说明书的编写。这次编写文档我将大二学习的UML知识重新捡了起来,老师经常说写文档更赚钱,现在我是深信不疑的,写文档的过程中确实耗费了不少心力,以前没有思考清楚的逻辑都要深究,否则文档就很难再写下去。在构图的时候我也接触到了很多好用的工具——StarUML,ProcessOn。虽然最后总归是把文档写完了,但个人感觉还是有些差的。
最后就是周四验收的企业族谱大作业了,这个作业完成得显然很差劲,老师都决定下周重新查,因此周末花时间将作业重新做了一下。
本周的总代码行数估计在600行以上,下一周就剩下最后一门毛概考试,要抓紧时间复习了。