还记得在一次验收的时候,米老师说的一句话:善良,决定你做多少事情,而胸怀决定你可以做多大的事情。(原话忘记了,大概是这个意思)。于是,这句话印在了我的心里,做项目的时候,渐渐的减少了抱怨,多了一些善良,一些宽容。这次项目经验收获最大的不是攻克了多少难题,而是Change the thought of thinking 。之前,我没做过项目,进度也特别慢,在此感谢米老师给了我这样的机会,即使还是只菜鸟,但比之前要成熟了许多。下面根据编码,验收,测试,运行维护来谈谈自己的收获。
我们是按照模块来划分的,NCRE学生端总共有6个模块,选择题,Windows题,word,Excel,PPT,IE。其余的就是配题,以及教师端的一些操控类。就拿学生端的题来说,每种类型的题(选择题除外)除了判分逻辑不一样外,其他的基本上都是一个模子刻出来的。这样的代码,增加了重复率,有一些坏味道。
解决办法:结合这点,我想到了今天刚研究的泛型,例如加载试题,都是从题库里去抽相匹配的题,只是传递的实体不一样而已,也就是相当于泛型中的类型参数。如果用泛型的话,正好解决了代码的重复性。
在刚开始的开发阶段,我们并没有使用SVN,那个时候,每次都得合代码,而一合代码准出问题。后来有了SVN,可能使用的不熟练吧,也是经常出现冲突的问题,有时候不想解决冲突了,直接重新当代码,我都不知道重新当过多少回了,而这样做造成的后果就是我们不知道哪个是最新的代码了,记得有一次,同样的一段代码添加过3次,这都是我们的管理不当,造成的不必要的麻烦。还有就是,学校和万达这边不是一个SVN,两边的版本不同步也是由于我们的管理造成的麻烦。
解决办法:以后不管做什么系统,只要超过2个人的都要使用SVN,并能够熟练的使用,知道如何解决冲突等问题。如果需要在两个地方进行开发的话,那就要确定一处更新代码,例如在去学校之前将代码上传到云盘进行备份。这样就能够保证学校的代码是最新的。
在我编写的判分逻辑代码中,只是简简单单的实现了功能,少考虑了很多问题。例如,在Windows判分时,一套题中有两个题的类型是一样的,都是查找文件夹,而我编写的代码中没有进行去重,导致每次去查找类型的时候都是出现两次,也就是最后的答题记录中多了两个值。这都是经验不足造成的。
解决办法:多敲代码,积累经验。
1、用户的时间是最宝贵的,我们应该在验收之前做好充足的准备,要保证程序是在生产环境上运行而不是开发环境。
2、演示,有头有尾,模拟考生真实做题流程。
3、不要把所有的功能都展示给学生,该隐藏的要隐藏,能少一点,绝不多一点,界面要简洁大方。
4、我们不要以设计人员的角度去思考问题,要多站在用户的角度思考问题,我们要去思考,用户最关注的是什么?
最近这些天一直在看人人都是产品经理里面的一些东西,有几点也想和大家分享一下:
1、删除按钮的弹出框提示,不应该写废话“您确定要删除吗?”而要将删除后造成的后果呈现给用户,以警示用户。
2、网站交互设计,是在打动用户,还是在伤害用户?例如验证码的设计,有趣的拼图验证着实打动了用户,而像12306那样的验证设计,那是深深的伤害啊!有时候输入好多次都是错的,其实她们这样做也是有他们的目的的:从产品角度分析12306图片验证码存在的意义(http://www.pcpop.com/doc/1/1355/1355468.shtml)。刚刚看到的一句话,说的特别好,这样的验证码无形之间增加了用户使用的困难,给用户带来了负担,但是对于那些习惯搞破坏的人来说,他们有足够的时间用来破解。
测试阶段当然少不了我们真实的用户了,廊坊师范学院的考试学生们,以及提高班的师弟师妹们。
1、测试准备工作不充分,没有提前安排好,这是每个人需要去反思的,没有做好备选方案。
2、测试前,没有问题,测试时,问题多多。例如人数多了,判分失败,上传失败等问题。这说明代码功能实现了,但是性能上还有待提高,需要我们一步步的去优化代码。
到了真正的考试阶段了,心惊胆战的,这还不同于测试,测试的时候,没有按照严格的时间来进行,做题也不都是认认真真的做的,而且考试的时候是上千人考试,这就更不一样了。出的问题也比较多,例如后台监控出来的死锁问题等。这个已经录屏了,师哥师姐们也研究了,等我总结完了我也要去研究研究。
在监考的过程中,老师也给我们提了几点建议,例如悬浮框中加入学生的姓名,这样老师在检查人的时候就方便很多了(因为有的学生不拿学生证,只拿身份证),还有一点就是在导出成绩的时候添加上一个字段,授课教师的名字。
以为考完试就可以放松了,可谁知,考完试还有更重要的任务等着我们呢,那就是给没成绩的学生进行判分。连续两天的判分,感觉累得不行不行的啦,回家睡觉说梦话全是判分啊判分啊!这同时也说明了一个问题,我们的软件还有很大的提升空间啊!