16
回答
国内的C++服务端开发现状到底是如何?
华为云实践训练营,热门技术免费实践!>>>   

10年开始做游戏服务端,16年尾离开游戏行业,转去做互联网后端,都是c++。离开游戏后,在两个公司呆过,看过他们的项目代码,感觉怪怪的,不知道是我去的公司太low,还是这是国内大多数的现状??坐标:广州

先说说一些见闻,欢迎一些老司机来解惑吐槽。

1. 做游戏的时候,因为都是快速开发,一般协议都是用工具生成/脚本处理,很方便;但是2个项目都是手写制定协议号,参数结构体。(我想,就算不用rpc,再不济,也可以用用protobuf吧)写代码的时候,会觉得从现代化时代,回到古代,也许他们的开发时间足够,没游戏行业那么赶吧??

2. 轮子,各种轮子。这个我可以理解,毕竟c++的解决方案没那么齐全,再加上一些大企业都自成一套,也许是历史原因吧?!(说实话,要是我还是会直接使用boost,libevent这类)

3. 这个是我最疑惑的,也许也是可以解释上面那些的疑惑。为啥所谓的新项目(2个公司都是),都是拿着一套不知道哪里来(是我不知道^-^,从一些代码中的域名,注释等痕迹也揣摩到可能的大公司来历)程序来改的。这些程序,都是自从一套的网络底层轮子,代码古老,基本都可以看到200x年的记录。最搞笑的是,2个公司的代码,我都找到“游戏”服务端业务的痕迹(真是温馨熟识的感觉-_-!),难道那些项目,都是以前做游戏失败的人转做其他业务,然后内部的人转手拿出去改做其他的???

<无标签>
举报
As-xjc
发帖于5个月前 16回/2K+阅
共有16个评论 最后回答: 5个月前

我做了四年游戏,但还是有些同事、同学不是做游戏的。

1.我经历的有几个项目都是手写协议号,自定义结构体。都是稍老一点的项目。其实,也没想象中那么慢。其他行业,如电信、银行,是不允许使用未经认证的第三方代码的。boost、protobuf这些就不要想了。服务器都买redhat的。gcc版本这些都有严格要求的。

2.都说了不能用第三方的代码,只能自己写的。其实这是写C++的人的毛病吧。我写自己的游戏框架时就把libev、boost的order memory pool重新实现了。

3.200x年的代码很正常,我同事之前在华为那边的的通信代码,就这么老。有些行业代码更新比较慢。有游戏服务器的痕迹就不清楚了

boost 不错,毕竟经过标准认定的。但是国内的水平,真正懂 boost 的恐怕不多。再就是用 libev | libuv + wrapper,但是写多了还是直接 c 更实际。不过 libevent libev 都或多或少存在一些问题,libuv 更佳

boost有编译器特性的依赖,一手好操作,等到二手(别人接你的班)估计就会一大堆模版编不过去了(可能也是写的人经验不够吧),实际接过(最后也搞定了),boost持保留意见。

做了四年c++后台开发,也经历了楼主说的大部分情况,其实只要底层够稳定,用boost等和前人写的都没太大关系,考验的是遇到问题时的解决能力。现在用boost感觉简单高效挺好的。

顶部