【IT168 技术】在本系列的文章中,作者举例分析了国内各公司网络软件中的Bug情况和基于这些Bug可以分析得到的这些公司的开发管理状况。其中的数据取自2007-2012年网络上运行的各种游戏和软件系统,还有一些数据并没有到发布的状态,所以,后期会补充从2005到2012年一些游戏数据情况分析的文字出来。本文主要介绍腾讯QQ农场游戏中的一些Bug,以及对问题的分析。
这里关于腾讯的内容会比较多,毕竟使用QQ,就会使用其中的一些服务和游戏。程序员的习惯,让青润一直保持着看到实现效果就会去思考这个代码中是否存在问题,是否还有优化空间等等的习惯。
农场牧场的物品管理中的不同
现象
可能很少有人去注意细节,但是,在很多人玩过的农场牧场中,我们可以看到这样的区别:农场的仓库中,随便卖出解锁或者加锁一个物品,屏幕仍然定位在卖出前的位置,而在牧场的仓库中,随便卖出甚至解锁加锁一个物品,屏幕就会回到最顶端的位置,也就是说,如果要回到前面的位置,只能自己拖动滚动条来做到。这个问题在4个月前给我团队的测试人员看过,告诉他们这是什么原因,以及隐含的深层次问题。
2013年1月13日去看了一下,发现两个变成一样的,都成了上面提到的农场的仓库管理形式。
随后又发现,这个问题在农场的种子管理里面仍然存在,请看下面的组图。
200个荷叶清香种子卖掉20个,确认。
系统显示卖掉,然后自动回滚到种子列表页的最上端。
这是卖完以后的情景,然后我们滚屏到对应的位置可以看到只剩下180个荷叶清香种子,如下图所示。
至于蔬果也就是农场物品的卖掉和牧场物品卖掉的位置锁定功能这里就不截图了,因为进去后各位就能看到现在的情况。
类似上面的情况,在农牧场连续登录几天后的赠送物品的显示上也是不同的,农场就是直接从右边的赠送列表中飞下来,飞向“我的物品包”,而牧场则是赠送物品显示在界面上让人点击后消失。完全同样的功能,代码都没有进行复用,而是重新的编写。
下面是农场,抓图还算及时,可以看到飞向“我的物品包”的那朵花——石竹花。
而牧场完全不同,是显示在界面上的。
分析
但是,这几个问题说明了什么呢?
腾讯的各个开发团队之间的沟通比较弱或者没有沟通交流,完全同样功能的代码,而且将来也不可能扩展出更多新功能的代码,居然写了很多份。
同样,腾讯的产品经理之间也没有沟通,一个让用户进行物品锁定起来非常繁冗的操作实现居然在网上挂了最少3年多才被修改。
而同样功能的代码其实在另一个几乎完全相同的产品中已经实现了,却没有得到代码的公用和复用。
而最好的实现方式已经有了现成代码却不能得到复用,居然重新写一套新代码,即使在同一款产品中也这样实现,实在是让人有些不解。难道是农场的产品经理换人了,但是这个种子管理是最开始就有的功能,并不是后来添加的功能呀!
从上述内容可以分析得到如下几点:
1、 开发团队中的开发资源和人力浪费,由此可见一斑。
2、 配置管理和配置库并没有得到有效的使用。
3、 企业代码库并没有建立,也就是说,没有工具类代码或者通用代码的说法,所有的代码都是新写的,于是测试人员也会特别累,因为每个代码都必须做全面测试,而不是部分代码可以减少一些不必要的白盒测试——但是,腾讯真得做到了么,最好测试了么?后面还有例子。
4、 另外程序员的基本功也比较弱,甚至连代码的统一性都做不到,都习惯用最简单的代码实现形式来完成任务,完成后就不做任何检查,也不做思考,或者说,没有很高的敬业精神,对自己的代码并没有尊重感,心里想到的只是如何尽快完成任务。实话实说,只要这个程序员细心一点检查一下自己开发成果,就会感到种子的管理和成果的管理之间的差异,就应该将他们调整成一致的表现形式。
5、 接续4中表现出来的另一个问题是,程序员几乎没有做过代码重构,也就是说代码写完,只要测试那边没有说有问题,他就绝不会再看这段代码了。
6、 团队间的沟通和产品形态不能统一,完全不像是一个大公司应有的形态,几乎同款的产品也表现出各种不同的形式。
7、 腾讯的测试真得很弱。
8、 其他的,需要其他佐证,看后续的文字分析吧。