游戏服务器开发经验小结

(1)为每一个存放在共享内存的对象,编写Init()、Resume()、Reload()函数;

(2)服务器进程重启进行共享内存恢复时,谨记恢复存放在共享内存中的对象数据的同时,也不要忘了同时恢复指向共享内存数据的指针;

(3)用gcc编译时,选择-Wall -Wextra -Wno-unused-parameter -Wno-missing-field-initializers选项,并试图消除所有告警;

(4)尽管使存放在共享内存中的数据不要为指针或引用,以免共享内存恢复数据时再来额外的开发复杂度;

(5)尽量多开发一些GM指令,以便于黑盒测试;

(6)仔细查看每一个ERROR级别(游戏运营时的日志级别)的日志内容是否丰富,以便于游戏运营期间查找可能出现的程序异常;

(7)主动严重关注运营中游戏服务器的每一条ERROR级别日志,认真分析程序可能存在的隐患,而不要等到客服报告玩家的投诉时再查;

(8)通过分析和解决错误日志内容,来加强对程序逻辑的理解;

另外,还有一些通用准则:

(1)技术的东西,永远不要一知半解;

(2)和代码交朋友,认真对待每行代码;

(3)精益求精,用苛刻的眼光对待自己写的代码;

(4)碰到问题,永远不要拖延,按事情的轻重缓急,力争早点解决;

 

看代码的感受

这几天,持续阅读项目代码,有几点感受;

1)一个软件项目,参与开发的人越多,整个项目的代码越有凌乱不堪的危险,需要尽可能地在项目的各个阶段进行不断的整理,也就是我们常说的重构,这是一个特别重要的事情,项目参与的人数越多,开发人员的经验越是参差不齐,越要这样做;

2)在保证正确完成需求的基础上,尽量把代码写得更美一些,诸如接口的有效提炼、对象的有效抽象、数据结构的有效选取、代码的有效组织等等;

3)对全局需求(代码)的了解,有助于完善局部需求的设计与实现;