WeTest —— 代码常见“病症”

来源:互联网 发布:卡尔 安东尼 唐斯数据 编辑:程序博客网 时间:2024/04/27 18:52
代码作为游戏的“身体”,一旦生病,在“奔跑”过程中便极可能”跌倒”。如果你的游戏出现过运行错误、宕机偶现问题,或者某些功能与预期不符。那么一起来看看是不是你的游戏代码”病“了吧!

先来看两个病发现场:


代码“生病”带来的影响不仅仅是服务器宕机,还涉及到服务器和客户端的任何有代码运行的地方。那么常见的代码病症有哪些呢?经过有效统计,我们可以看到主要的四类常见代码“疾病”:

1. 空指针
那么,这么多病症是怎么引起的呢?我们先来看看最大的“空指针”问题。空指针就像是“感冒”,极其容易感染。谈起空指针,我们就要先来看一下,什么是指针。

    那么,空指针又是什么呢?

    空指针可能带来各类不可预知的游戏崩溃等问题。为了不让代码感染“空指针”,在代码编写的时候可以做一些“预防”措施。

2.野指针
空指针预防了,野指针又来了。野指针又是一种什么病呢?简单点说,当指针指向内存归属交由系统控制了,该指针就成为了野指针。野指针就像是“发烧”,一旦“高烧”,整个代码“身体”将不受控制,甚至出现错乱。

    野指针究竟是怎么形成的呢?来看一个实例:

    野指针可能会带来宕机、数据错乱等问题,而且不易被发现。如此一来,在代码编写时一定要有预防措施。

3.越界和移除
还有两种“疾病”是越界和溢出。通俗来讲,越界就是代码“身体”吃错了东西,而溢出则是东西吃多了。来看两个场景。
  
越界和溢出的危害也不小。越界就像东西吃错了,可能会导致身体不适,但很难被觉察。当吃的东西与“身体”产生冲突时,则会产生“食物中毒”(程序崩溃)。

    而溢出就像吃多了,给身体增加了错误有害的“物质“,产生的影响可能会瞬间出现”急性肠胃炎“(代码报错),也可能在之后才出现“脂肪肝”等慢性病(在使用到受影响模块时才出现问题)。

    预防越界和溢出,要控制住身体不“乱吃东西”,良好的“饮食习惯”是保证身体健康的重要前提。
4.未初始化
还有一种病叫做未初始化。这种病就像“过敏”,当代码“身体”摄入了“未知物质”时,就会出现排斥和异常。这种病可能只会产生小的异常反应,但当摄入物质影响到核心机能时,可能会出现“休克”甚至危及生命(宕机)。
首先,来看一下什么是初始化和未初始化。

    那么,常见的“过敏源”有哪一些呢,来看看未初始化的分类。

    针对常见的过敏源,来看看有哪些预防措施吧。


这么多的代码“病症”,我们建议采取“预防为主”的手段。通过体系化和针对性治疗,针对开发环节的不同阶段应用不同的方案,对代码进行“病症”扫描。

目前,WeTest质量开放平台已推出代码检查功能,扫描代码常见“病症”,助您打造健康游戏!
0 0
原创粉丝点击