为什么使用命令行
通常,游戏开发时,服务器端会使用配置文件,如json文件来配置启动时的程序参数。
这样做有一个问题,配置文件会导致 Docker Swarm编排脚本变的复杂,难写。相反Docker Swarm编排脚本对命令行参数支持的非常好。
道理很简单,若是配置文件,则需要做进镜像中,使得镜像做好后,镜像内的配置文件,已经没办法修改了!如果是命令行参数,则可以在编排脚本中,自由更改启动时的命令行参数!
虽然没用过其他容器类工具,如k8s。但是按此思路推测,配置文件都会遇到这个问题!
因此如果打算后期使用Docker Swarm来部署自己的服务器的话,推荐将启动配置文件全部转化为命令行参数的方式提供。
go flag库
go语言通过官方自带的flag库,可以方便的定义、解析、以及获取命令行参数。
网上教程很多,这里不在详细介绍了。
封装原则
这里要讲的是,编码时需要注意的问题。还是要强调2点:
- 引擎和应用程序的界限要分明
- 功能编码时要注意内敛
按照这个思路,通常会编码2个文件
- common/args.g