家园工作室

复盘 :云家园迎新系统

2018-08-12  本文已影响0人  Exqlnet

时间飞快,转眼间就变成了学长,带着学弟学妹们进入校园。

云家园系统对新生的开放

预定的开放时间是8月10号的晚上7点钟,在开放之前,几乎所有的新生都满怀期待,甚至还有的学弟学妹想着要准时开抢空调预约(虽然大家都能预约到),瞬间觉得他们好可爱。看到新生的热情,我对这件事也满怀期待,于是非常想自己动手“解封”,绝对准时。
离晚上7点钟还差2.5秒钟的时候我重启了云家园后端,所有新生开始可以访问云家园系统。这一刻几乎所有新生群消息都在刷屏,我能感受到那一瞬间的云家园的影响力,也感受到自己的责任所在。

迎新系统多处出现问题

没有想到,短短几分钟,各种迎新群已经基本上变成了问题反馈群,各种问题(无法登陆,预约空调失败、学籍无法查看、照片无法上传等等)蜂拥而至。我一瞬间不知道该怎么办,只是一直在给同学们解答问题,诸如学号不存在(最后确认是她记错了学号)、有没有成功预约空调(手机号码/宽带)、账号被锁住了等等,有的问题我甚至是直接改数据库解决的(我觉得这是一个非常不明智的选择)。
无可奈何,因为在此之前的云家园迎新方面我没有涉及,却又很想去看代码,到底哪里出了问题?为什么各种奇怪的bug?难道没有测试过吗?

原以为解决问题

为此当天,家园工作室研发组的成员们都忙了起来,很晚才解决部分问题,此时我还没有涉及开发,只是在数据库之间穿梭。我以为问题很快就会修好了,便放心地睡觉了,甚至想好了第二天上午把自己的一个小项目写完。然而第二天我10点多才醒来,一醒来就发现新生群还在讨论云家园,就知道问题根本没有解决。
我这时才开始看代码,对云家园这次事故倍感着急,想着能为这次事故做点什么。刚好,研发组群里在讨论安定新生的事, 本来说发公告的,成成学长提到说不如直接发短信,预约和没预约的发一下,告知他们那些预约了,那些没预约,我毫不犹豫就接下了。写好脚本便马上跟运营小熊说了一下短信目的,让她编一下短信内容。快下午1点钟,短信才发出去。(并且还发现python的"""加换行算了空格 导致短信前缀有几个空格)

开始解决现有问题

应前端要求,增加delete请求

在写脚本期间,钟伟杰说手机号“不预约”那个选项没有对应的值post到后端,最后确定就是手机号预约需要加一个delete请求方式来取消预约,想了想自己对那些代码已经有些了解,就接下了。然后开了一个分支写完提交到了gitlab,发现合并不了master分支(最后确定是权限问题),便叫了鲸鱼合并。这下提交并没有解决问题所在,delete这个请求还是没有完全符合前端的要求,反复改了几次提交了几次合并了几次(这一步我要好好反思),甚至跟鲸鱼说完全没问题了,提交上去的代码还是出现了一点点错误。

手机号预约数据出现大量重复

这个问题是鲸鱼发现的,因为后端根本没有限制手机号预约的数量,前端在前一天也是出现诸多问题,发送一些重复的奇怪的请求也就很自然了,所以出现了数据库里一个人拥有了多个手机号。我觉得这个问题不是很大,但是如果不解决会挺严重,毕竟与电信移动合作。于是开始写脚本去重,选择了一个手机号的不管,选了多个手机号的只取查询结果的第一个手机号,其余全部删除。鲸鱼写了一个脚本,但似乎不起作用,想到自己没有外部调用flask的model,就写了几个sql语句来去重,思路是一样的,但是成功了。

反复和前端沟通

此时后端基本上没有问题了,但还可能存在脏的数据。目前应该需要解决前端的逻辑问题,钟伟杰也是一直在问后端这边接口的意义。这回应该工作都聚集到了他身上,个人觉得还是蛮辛苦,虽然一个大家都觉得简单的界面,但实现起来还要没有bug真的需要技术支持。过了几个小时前端结束了工作。

反复测试,确保没有任何问题

代码都已经写完了,至少写代码的人已经发现不了问题了。直接发布?简直荒唐!写完代码不测试是一件非常蠢的事情,怎么也要把前端部署到本地测试一波。我、钟伟杰、彭翰林、刘致君等人开始拿新生账号测试。

测试过程中发现了2个问题

1、预约手机号码后取消预约重新进入,即使不选手机号也不会报错。
2、预约时缺少填写时没有明确的提示(诸如填写尚未完善等)
钟伟杰做前端还是很厉害的,这两个问题已经是非常小的问题了,虽然对用户体验有影响,却不会产生错误。
问题很快得到了解决,学弟学妹们期待已久的预约系统终于上线。

审查整个过程

留校结束前:匆忙

且谈留校结束前,知道留校提前结束这个消息貌似许多人都挺开心的,确实,这是一件令人轻松的事情。但要求是在两三天内把云家园迎新方面的内容给做出来。
显然时间有点匆忙,留校的人当中并没有很多人在写云家园,后端基本上是刘致君学长在负责,不太清楚前端。当时我在写其他项目,所以没把心思放在这(也没有写过云家园的代码)。
总而言之,我觉得在这种匆忙的环境下,代码会乱很多。

迎新系统开放前:粗心

我很奇怪的一点是为什么在这一段时间许多人对云家园迎新上线有些忽略(包括我自己),我知道的只有罗鲸鱼在忙着导新生数据,彭翰林简单的测试了一下系统。我知道的就这两件事。看了一下commit,还有胡悦3天前修过bug,不过那已经是开放前夕了。

居然没有完整的测试?

可以说这回问题最大的地方应该是测试。我想这是程序开发很关键的一步,面对8000多新生,居然只是“简单”地测试了一下。测试是程序发布之前的最后一步了,直接影响到程序的稳定性和错误率。或许大家都能想到这一点,但是在系统开放前夕被大家忽略了。我也是以为系统没有任何问题了,因为在此之前我对这个项目也不了解。自信地开放了新生通道。
这个过程原因我把它归结为“粗心”。因为并不是大家对测试不了解,也并不是技术上的问题,而是测试没有得到足够重视。(或许大家都想着要回家了?心思没放在这上面)

问题对新生的影响

1、新生对家园工作室的评价。
在系统开放前新生应该都逐渐了解到了家园工作室,并且认为这是一个很厉害的群体,有一套非常完整的系统。然而在系统开放之前却令新生们“刮目相看”——足够多的BUG。
2、新生们产生慌乱。
能否住空调寝室、能否办理宽带网络、能否知道辅导员和班群等等的问题,关乎着新生的个人利益,没有给出一个明确的答复,只会让新生更加慌张。

未来需要做的改变

1、我们需要做完整的测试体系。我们环境分开发环境、测试环境、生产环境,自然版本也要有测试beta版本,在一个独立的测试环境中运行,并开放部分账号测试,无误再发布正式版本。
2、在代码提交的时候(特别是合并的时候)需要再三确认代码无误并提pr,让学长review代码无误后确认合并提交,不然就会出现很容易我上面提的问题。

待更新

上一篇下一篇

猜你喜欢

热点阅读