zoukankan      html  css  js  c++  java
  • 开发坐骑系统的总结

    坐骑系统开发完了,在内测中没出现什么问题,写个总结。

    在和策划确定需求后我把设计文档拿给老大看,他给的意见是坐骑的数据没必要在玩家登陆的时候全部记载,因为他可能在打架/刷野之类的,这时候坐骑的数据完全没用,可以等到使用坐骑的时候再加载数据。

    于是我就设计了三次缓冲的方式:

    • 玩家上线的时候不加载坐骑的数据
    • 当玩家上坐骑的时候加载坐骑的外观数据
    • 当玩家打开坐骑的主界面,需要进行升级等操作时加载全部数据

    后来考虑到上坐骑的时候再去加载数据可能会导致卡一下的感觉,因为坐骑的外观数据很小,于是就把前两步合为一步,直接在加载人物数据的时候加载坐骑的外观数据。

    但这样做也导致了一个很麻烦的问题就是数据完整性问题。因为数据是分两次加载,再对坐骑进行修改的时候就必须保证在全部数据都加载的时候才能进行,否则会导致看起来很怪异的Bug。我是非常小心的,比如在升级,更换皮肤等操作时都会检查数据的完整性。

    我们是迭代开发,边开发边测试,开发完成后,又测试了大概一周左右,也没什么问题。在内测的前一天有测试向我反馈坐骑只升级了一次就到了最高级,我赶紧去看了下,界面显示果然是这样。于是我就去检查数据库的日志和本地的错误日志,但基本没什么有用的信息,测试也不记得当时自己是怎么操作的,只能去检视代码。虽然只出现了一次,但这绝对是个严重的Bug。第二天要内测了,今晚肯定要解决的,搞到很晚也没看出来有什么问题。为什么之前没有出现这个问题,难道是我最近改了什么导致的,于是我就去查看最新自己svn上的提交记录,果然看到了一个关于升级的提交记录,瞬间明白了怎么回事。下面坐骑系统加载流程图:

    当时测试跟我说应该可以直接打开升级界面,这样更方便些,我也没多想觉得挺有道理的,就添加了这个功能。但这样跳过了打开主界面的过程,也就跳过了加载数据的过程,导致升级时使用的数据是未初始化的,所以才采导致了这个问题。

    这让我明白了一个真理:如果一个问题可能会发生,那它就一定会发生!

  • 相关阅读:
    Java中的经典算法之冒泡排序(Bubble Sort)
    Appium环境搭建(Windows版)
    Jenkins安装与配置
    Jenkins+ANT+Jmeter 接口测试的实践(转载)
    bugku_web_phpcms1(未完待续)
    bugku_web_Bugku-cms1(未完待续)
    牛客网 PAT 算法历年真题 1010 : 月饼 (25)
    【测试的艺术】+ 封装
    【数据库】+ powerdesigner
    【Git】+IDEA中无法使用git命令
  • 原文地址:https://www.cnblogs.com/benjaming/p/8432199.html
Copyright © 2011-2022 走看看