1. 内存相关 可使用内存检测工具(valgrind) 推荐没做完一个模块之后 都运行检查一次
2. 使用队列 注意循环调用和回调思想
3. 第三方开源库的使用
4. 使用静态代码分析工具 分析可能出现的笔误 如 pvs
5. 各个环节的测试, 比如通讯框架搭建好后,一定完整全面的测试 保证底层的稳定,否则上层查找bug很困难
6. 协议设计中考虑被攻击的情况(占位)
7. 解决bug 可用bugfree
分析总结框架记录
1. 数据库:mysql。将一些区别性的东西保存在数据库,对于共享的数据都做成xml,在服务器启动的时候加载到内存中。
2. 日志 glog. google提供的一个C++日志记录类,利用它可以很好的进行日志记录。
3. 消息队列 ZMQ。 不用多说,百度一下 全都知道。 注意使用方法
4. protobuffer 一般用来作为通信数据的载体,可以很方便的进行对象到二进制数据之间的转换。
5. boost 提供C++的很多高级功能。
6. 内存性能分析 tcmalloc
7. distcc 分布式编译工具,对于大型模块,使用分布式编译可以很大程度上加快编译速度
8. 服务器组成。游戏服务器GameServer 数据库服务器DbServer 策略服务器PolicyServer(主要提供flash需要的策略文件)登陆服务器LoginServer 管理服务器AdminServer 统计服务器StatisticServer 网管服务器GateServer 聊天服务器ChatServer
9. 关键模块,战斗模块,场景模块,网关模块, 内网通信模块。