- Notifications
You must be signed in to change notification settings - Fork13
The wejh-server written in go
License
zjutjh/WeJH-Go
Folders and files
Name | Name | Last commit message | Last commit date | |
---|---|---|---|---|
Repository files navigation
一个用 go 写成的微精弘后端服务项目
在项目根目录下执行
go build -tags=jsoniter
然后直接运行编辑出来的程序就行了
这个 tag 的意思就是我们的代码用第三方库解析json,这样速度更快程序能识别的变量类型更多(原生 json 解析库部分复杂的嵌套数据类型没法解析成 json 格式)
为了拯救有强迫症的开发者,请遵守下面的几个小小的约定吧(笑)
- 所有的文件/文件夹名采用小驼峰命名(首单词全小写,后面的单词首字母大写)
- 代码采用tab制表符缩进而不是空格(Go 的默认风格)
采用了viper这个配置文件库,方便读取配置信息。
本程序采用的是自定义了 viper 对象的写法,和教程中的写法大同小异有什么区别的话看看这个库的源码,和现在conf文件夹中的代码应该就懂了(吧
// 就是这种写法,新建了一个 Viper 指针然后进行操作,而不是直接用 包内置的函数x:=viper.New()y:=viper.New()x.SetDefault("ContentDir","content")y.SetDefault("ContentDir","foobar")//...
其中 config.yaml 是程序的配置文件,采用 yaml 格式。
为什么不把所有配置信息写在不同的go程序呢?因为这样就能采用 yaml 之类的通用配置文件格式,方便日后移植到不同的语言上~~(我这次搬运数据好痛苦啊)~~,同时也方便日后程序写入配置
通过在项目根目录下执行以下命令来生成配置文件
cp config.example.yaml config.yaml
yaml 的格式就自己百度/Google吧,建议学会了以后在看下面的内容
如果要添加自己的配置,可以在 config 中添加一个对象(键值对),然后 在这个对象中添加你想要的配置(可以参考之前的设置)。 之后所有的配置都会被读入 conf 包 中的 Config 变量
PS: 程序会自动监视配置文件,如果配置文件发生了变化,程序会自动更新
If you are interested in reporting/fixing issues and contributing directly to the code base, please seeCONTRIBUTING.md for more information on what we're looking for and how to get started.