大用户程序开发过程中遇到和解决的一些问题集

2 篇文章 0 订阅

对于编程这门精细活,细节往往决定成败。下面是我在开发某个大型网络游戏中遇到的一些现象、问题及解决方法,总结一下,分享给大家~~

1. 利用map cod文件精确定位报错位置,前提是,要能提供对应的堆栈信息;次点的方法,知道那个catch到错误后,在try前加一个变量,在try里不同的代码行前修改成不同的值,这样子,在catch里可以把它记录到相应日志,或者提示。

2. netstat信息可以通过 _popen("netstat -n", "r");打开。

3. 知道SOCKET值,可以通过getsockname getpeername得到相应的地址和端口信息。

4. 编码Unicode是一种国际化的code,UTF8、UTF16、UTF32是把unicode转换到对应程序的编码方案(baidu)。通常中文环境下,string为gbk(ascii码),wstring为utf16(Unicode). Windows对应的转换api(MultiByteToWideChar/WideCharToMultiByte、跨平台setlocal/wcstombs/mbstowcs).

5. tinyxml支持的是ascii或者utf8,使用时注意转换。json VS xml

6. 头文件最好不要弄两份,不好维护。(如有时我们一个project里要用,另一project也要用,就去定义一个接口,最好不要直接使用那个头文件;或者把头文件放到inc目录)。

7. 有官方文档一定要看(英文),古人诚不欺我也。

8. 大程序里,使用路径的时候,最好使用全路径,这是一个好习惯。Windows下最好检查一下,路径是否支持中文,命令行中对路径最好加引号。

9. 每加一个线程,应当想清楚是否会导致不安全问题。(变量互斥访问,类是否已经被析构)。

10. 实时反馈程序运行的进度,是一个诊断程序问题、用户行为的有效方法。

11. 下载文件后,在保存之前需要确认文件是否是对应的版本,MD5检查。(curl有点坑,会把404错误写进文件,而且不返回错误)。

12. 该暂时不需要的最好延迟一下,因为有可能导致不必要的加载。

13. c和c++的效率问题不多说,编译一下看看汇编cod文件就知道了。

14. 健壮的程序应当,时刻注意系统CPU、Memory和Hard Driver Space的变化。

15. 健壮的程序应当,有容错性。最坏的情况下,也要很方便的重启。

16. 只要不影响Rease版本,Debug版本可以做任何不影响运行的测试,而且程序员应当这样做。(测试初始化时间、ASSET、运行时依赖外部选项灵活变动...)

17. 有些事,不要急,学会“等等看”。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值