游戏开发中的友好提示,错误信息,异常描述等数据管理的必要性
在游戏开发中,有一个不可避免的场景就是用户操作异常或接口异常时,给用户弹出的友好提示或错误提示信息,例如:
不光是游戏开发,其它的任何一个软件开发都是一样的,这些弹窗的处理都是不可避免。有些是客户端代码中直接弹出来的提示,有些刚是服务器返回的错误或提示。如果是一个小小项目还好,如果项目比较庞大,没有规范,虽然写的话,后期处理将是一个巨大的技术债。
一. 不管是前端,还是后端,在代码中不要出现写死的提示信息
可能很多开发者,在接手项目的时候,都没有考虑过这个问题,在哪里需要了,就会在哪里直接弹出或返回一个错误提示,例如:
这样写的坏处是:
- 如果需要修改,需要重新打包发版本,会影响线上业务
- 提示信息分散的散落的代码中,不方便统一处理,比如做国际化。。。
- 代码显得乱,可读性差
二. 在代码中,可以定义相关的提示枚举,把错误信息统一定义在枚举中,并且每个错误提示都定义一个唯一的编码
为了统一管理这些非功能性的字符串,可以把文字定义在枚举中,当然,因为这种提示性文字比较多,不建议所有的都定义在同一个枚举中,因为一个枚举的枚举项也是有限制的,超过了限制就不能添加定义了。另外如果都定义在同一个枚举类中,多人协同开发时,容易代码冲突,编码定义重复等问题。可以按模块划分,不同的模块定义在不同的枚举中,且不同枚举中的错误码可以重复。例如:
但是这样也没有解决上面所说的修改的问题,如果修改还是需要打包重新发版本。那怎么解决这个问题呢?让客户端在显示的时候去解决。
三. 客户端在显示提示信息时,先查找配置文件中有没有配置编码对应的文字信息。
不管客户端要显示的提示是客户端自己产生的,还是接收的服务器返回的,服务器会返回模块名及编码,提示信息。都先查一下客户端本地的配置,看看这个编码有没有配置对应的提示信息,有的话就不用代码中定义的或服务器返回的提示信息,而是使用配置文件中的提示信息。
那客户端的配置文件如何更新呢?
- 把配置文件放在服务器,定义一个版本号,在心跳接口或服务器返回的header中都返回实时的版本号,客户端比较版本是否发生了变化,如果不一样了,重新从服务器拉取最新的配置文件。
- 也可以把提示编码及信息添加到后台管理系统中,如果有变更,如果客户端与服务器是长连接的话,主动推送版本号发了变化。如果是新登陆的用户,那拉取的就是最新的数据。
这样当发现某个提示写错了或需要优化时,直接在服务器修改即可。
综上所述,对提示信息进行统一的管理,有以下好处:
1. 方便做国际化处理,如果产品需要在国内或国外一起上线的话,不同地区配置成不同地区的语言即可。
2.在产品运营过程中,产品人员也可以随时修改提示信息
3. 代码干净整洁,阅读起来赏心悦目
4. 团队开发过程中,减少代码冲突