C++服务器linux开发环境管理
在游戏服务器开发中,跨平台不是必须的。线上游戏既有windows下的C++、.Net服务器也有linux下的C++、go、erlang服务器。但是无论如何都要保证开发环境和线上运行环境的一致,否则不同平台的问题可能引发致命的后果。
很多人希望使用windows开发,以使用其便利的开发环境,然后在linux下运行,使用其强大的运维系统。我以前也有这种想法,不过实践证明这绝对是个bad idea。为什么呢,咱们不妨看一下这种开发环境:
开发机用于程序员开发测试,而测试机用于内部压力测试,发布机则是外网测试机器。由于windows系统的单用户特点,不同用户的隔离效果并不好,开发机和发布机可能使用个人版和server版的windows,而且单机运行多组服务器程序对运维不是很友好。如果同时还要保证linux版本的运行效果,则需要另外搭建一组测试机和发布机,这都是成本。关键问题是开发流程管理起来就是两套模式,容易出错。
下面再来看一组linux的开发环境:
这种环境我也用过,感觉非常简洁容易理解,我们只需要购买一台强大的中心服务器,即可保证所有开发者共享高性能的运算能力。这种开发环境还有一个好处,就是主开发机可以使用管理员账户统一配置开发环境,新增用户不必安装各种开发工具、各种配置了。用户配置文件如.bashrc .vimrc等都可以放在svn上更新即可。发布过程也可以由管理员操作,避免误操作。这都是得益于linux的权限管理功能。
另外一些要注意的环境配置:
内网一定使用固定IP+网线直连,保证网络稳定快速。
成员之间通信使用内网通之类的软件,也是为了保证通信效率和安全。
注意svn分组管理权限,防止误操作。
代码提交之前必须要codereview,否则一个人的bug可能会迭代几个版本之后才出现,容易隐藏起来,且很难回退到正确的版本。