Alpha阶段个人总结
一. 工作总结
第一次接触通信和服务端框架,在前期准备阶段学习了很多不同的技术,也相应花费了很多时间去尝试。刚开始时还不知道框架这种东西,准备自己写,于是学习并尝试了一些简单的HTTP通信,比较麻烦,而且还要自己连接底层的数据库,这些都太费时间,和我们想要的敏捷开发不符。
后来在一次开会时,看了之前学长们留下的博客,发现他们都是使用一些框架,能够简化这些底层的操作,为我们节约更多的时间,于是我们也决定使用Django框架,虽然这并不是最合适的,但也能满足我们的需求。当然在尝试阶段发现Django的HTTP通信并不能完全满足我们的需求,使用轮训进行实时通信对前端的压力又太大,于是又花了几天的时间学了Channel,最终准备阶段的知识都储备的差不多了,我们开始进入到了开发阶段。
在开发阶段,我们在一开始就定义好了前后端交互的接口和各种属性。这对前后端的开发都有很大的益处,方便了很多,也在很大的程度上给予了前后端开发的自由,不必频繁的交流接口通信问题。当然在开发过程中遇到一些新需求之类的我们还会经常修改增加接口,并且用GitHub统一管理,让大家都能及时知道接口的变化。
最终的测试阶段应该是整个工程最复杂的阶段,也是我们在下一阶段工作的核心。对于已有的接口,测试时还是会发现有各种各样的bug需要修改,不断的变更,才能达到前后端都满足的要求。还有一点就是构造游戏场景,这个很繁琐,毕竟找一堆人来测我们的程序是不现实的,我们只能自己先初始化各种数据,然后进行接口测试,在某种程度上测试接口的正确性。这种做法虽然不是最完美的,但却是现阶段我们能做的最好的选择了。
二. 未完成的任务
1). 游戏接口的修改与完善。
2). 游戏接口的测试,这个任务量比较大。
3). 异常处理,在Alpha阶段,对于异常还未进行统一处理。
4). 不同玩家掉线的处理方案,暂时没有考虑这种情况。
三. 对于课程安排的一些建议
大三上的课程安排一直是广被各届学生所诟病的,就我个人而言,除了软工以外,编译实验,数据库大作业,机器学习大作业,移动计算大作业,大数据大作业这些全都是这几周要完成。对于这些课程我也是很想去认真做的,比如软工,很想做出东西来,可是真的不能在这上面投资太多时间,毕竟这只是一门选修,我们还有很多重要的课业要完成。我想那些中途放弃的同学大概就是这个原因吧,毕竟我们作为一个学生,还是要以学业为重,不能想做什么就做什么。希望学院好好思考一下课程的安排是否合理,草草应对我们又能学到多少呢?
在这学期经常会有种无力感,对于很多课都想过要学什么,要做什么,不过大都放弃了,非常遗憾。即使我们想只选几门课好好的搞,可是学分要求却不允许,大一大二总共才修了5分,总共要修20分,下学期也没什么课,只能全放在这学期了,真应该调调课程安排或者学分制度。
四. 问题
1. 对比敏捷的原则,你觉得你们小组做得最好的是什么?
在一开始就分配好了每个人的任务,定义好了前后端交互的接口。在前期的开发阶段给予了前后端充分的自由,极大的节约了交流所花费的时间。
2. 什么是在下个阶段要改进的地方?
对于后端而言,下阶段除了接口的修改与完善之外,最重要的就是测试,主要有以下几点:
1). 接口是否能正确的返回运行结果,逻辑部分是否正确。
2). 对于玩家突然掉线的判断与处理。
3). 多线程是否会有数据不同步的问题测试。