背景
因为高考被提前批师范专业而非一志愿西安电子科技大学计算机系录取,内心一直觉得而非常遗憾。所以大学时候花了很多时间去学习计算机相关知识。不过大多浅尝辄止,没有深入,也导致了自己眼高手低似是而非。
开发
大四下学期,工作的单位的一个同事让自己开发运动会报名系统,但是一直没有完成,期间有时候采取flex+amfphp+php技术,有时候采取html+js+php技术,总之做了好几版,最后都放弃了。
系统的设计存在很多问题,以前看到一句话说,做一个系统不只是把功能实现了就ok,更重要的是很多辅助的功能,监测的功能和系统的稳定性。同样是自己开发的程序,别的学校就没有出现我这样类似的问题。
bug1 关于分数线
最后一天的时候,本来自己没事了,学校的服务器在众多家长的轰炸下崩溃了,然后自高奋勇把名单放到的阿里云上,这本来是很好的。可是校长要求成绩可查,于是就蛋疼了,因为是偷懒直接在笔试成绩上修改的,所以没有修改笔试成绩的分数线,导致所有的人都是通过的,这可是个大问题。
教训
不要急于求成。在程序设计上,很多重要的参数不要急于求成。excel要从前台导入而非直接导入到数据库。在测试数据的选择上涉及到判断的,多尝试几种情况就很容发现错误的问题所在。对于招生这种,应该按照系统不同的功能,自动实现,比如笔试成绩查询和面试成绩查询分别应该在不同的功能模块实现,这样就不容易出现问题。不同的阶段给出不同的参数跳转到不同的地址,或者可以配置当前阶段,根据需要跳转到不同的模块。
像分数线应该是首先配置的,或者必须配置,必须提示设置分数线,这样就不会出错了。虽然这将会原来只是增删改查的功能复杂化,但是可以减少出错的机会。
不要偷懒,每次都要去改源代码,这实在是太low了。
总体设计
系统的总体设计其实并不是很完善,因为之前想做一个完整的信息化系统,将招生和原来的系统混为一谈,导致处理数据很容易发生问题。
报名流程优化
出于惯性,总是习惯于设置用户名和密码,很显然国考也是这么做的。但是很多学校采取了直接提交身份证和学籍号等信息,然后直接用身份证和学籍号登录,修改系统信息,这样也是可以的。虽然安全性略低,容易被恶意注入数据。验证码的存在可以减少这类问题的发生。
也可以先提交学籍号和身份证号,然后再登录填写相关信息。
笔试成绩查询
笔试成绩查询可以在报名的基础上直接用身份证和学籍号查询,或者身份证号的后几位进行查询。
综合成绩查询
像综合成绩查询以及笔试成绩查询,应该允许用户以更友好的方式设置相关的提示信息,甚至是动态的配置字段,比如分数等等。或者将自己作为用户。让整个系统更加的人性化。
日志
很多时候写的功能并没有实现日志功能,不能够记录系统某个操作发生的时间点,从而导致结果无法追溯,这样是错误的。
关于系统开放的时间
系统开放的时间我最开始是通过原始的判断时间,后来觉得这样硬编码真的不好,应该是在后台提供手动设置的功能,允许设置系统开放的时间,查询的时间以及相关时间点。这就是网上搜集到的公司开发的报名系统如此复杂的原因。在这次开发中,学校固然有好处,但是实际上我自己的收获更大。实际开发应用和自己用真的有很大的差别。
关于编码
其实自己对于php网络编程掌握的没有想象中的那么扎实,很多基本的功能模块都无法实现,mysql掌握的不够熟练,无法精通的使用时间戳来记录系统操作的时间。在使用用户姓名作为登录名这点上设置的也比较失败,因为没有考虑重名的问题,而且系统没有采用ajax的方式实现,也是比较失败的实践体验。