服务器端工作总结

1. 让高性能这个词,见鬼去吧,建议大家多看一下<<C++编程规范>>里面有关程序优化的那几节。 
2. 与其他功能模块交互的地方(比如调用PHP接口),必须输入完整的流水日志,包括完整的输入参数和输出参数,并且在任务日志等级下均为可见。 
3. 与其他功能模块交互的接口和一些低机率的事情(比如1/ 100W的掉落率),必须写有测试程序或脚本,方便测试组测试和BUG定位。 
4. 任何逻辑错误都必须有日志输入,并且给出关键的信息,方便定位,在任何日志等级下均为可见。 
5. 关键业务逻辑(比如在数据库里面增加用户的金币),必须有日志输入,方便定位和发现问题。 
6. 最大限定地把参数配置化,并且最大限度地支持不停机更新。 
7. 所有C++定义的缓存KEY,必须以"C_" 开头,数据库日志表,必须放在 `%s_log` 下。  
8. 重启服务器或者关闭服务器,必须得到运营的许可,才可以进行。 
9. 重启或更新版本之后,至少要观察一天时间,重点看一下日志输出。 
10. 线上BUG为最高优先级。 
11. SHELL脚本中,建议使用绝对路径而不是相对路径。 
12. 使用断言宏来检测你代码的逻辑错误。 
13. 不用过度依懒空指针检测,这样提高了BUG的抗药性。 
14. 禁用使用C/C++的标准输出来输出日志,这样会导至程序性能下降得很严重。程序日志,可以输出到日志文件或日志服务器。 
15. 尽可能不要使用C++里面的数组,推荐使用STL 里面VECTOR,绝大部份情况下比你使用一个“足够大”的数组要更节省内存,更安全,而性能下降的问题,可以忽略不计。 
16. 绝不使用sprintf这类函数,推荐使用stringstream来连接字符,如果你一定要使用C风格的字符串,至少也要使用sprintf的安全版本:snprintf或sprintf_s,等。 
17. 不要轻易使用无符号的数值类型的变量,使用有符号的变量更容易发现问题和简化问题的处理,最常见的问题,就是两个无符号数相减,成了一个非常大的数。 
18. 绝对禁止使用 SELECT * FROM TABLE 和使用通过字段索引来获取返回值。SELECT * FROM TABLE 结果集的字段的索引是不可靠了(只要修改一下表的字段顺序,你的程序就完蛋了),而且这种错误非常的隐蔽,另外,尽可能少地返回数据,这样会高效一些。 

 
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值