从业10年以来,从开发传统信息行业软件,到企业网站,乃至游戏服务端引擎,我很少写东西,最多就是记录一些经验总结在自己的印象笔记中,其中原因,无非没有时间,或者说懒,但是这一年来进入到创业公司工作,让我的危机感深深加重,危机感产生的原因呢,并不只是业务上的,更多的是来自于项目代码质量,谨书此文,与朋友们交流。
一:功能模块规划
游戏行业的策划案相当于传统信息行业中的调研报告,到编码之前,是没有什么书面上的解决方案具体出现的,因此在规划功能模块时,往往以策划案划分的功能进行区分,不说策划案的书写人是否熟悉编程,单单根据策划案划分的,往往造成功能零碎,应该是一个整体的东西被塞得到处倒是,一个很明显的特征是:一旦改一个地方,就要到不同的功能模块中到处修改。
二:可变和不常变数据的区分
这里的可变数据是运行时变量,而不常变数据指的运行过程中的公式、环境变量(一段时间内稳定),切不可将之混在一起,甚至重复定义,以造成维护上无尽的烦恼,要么规划单独类,以便快速归总;要么使用脚本(如lua),使数据变化时能够快速的实施。
三:只拿需要的数据
因为我专职于服务端引擎,所以对于性能的表现非常敏感,尤其是能引发IO的操作,相对于现今的多核高频CPU,IO的操作是相当缓慢的,无论是安置DBServer(Redis或者Memcached),还是老式的关系型数据库(Mysql,SqlServer等)都应该极力避免将无数零碎不相关的数据聚集在一个Object里缓存或是SELECT * FROM XXX,虽然写起来,调试起来舒爽无比,但是出来混的,迟早要还,运营阶段,高负载下,会让你欲哭无泪,还是精细划分,将数据分成多个层次(常用,不常用,重点,次重点),分别给予不同的缓存或者本地存储方式。