Skip to content

zjutjh/WeJH-Go

Folders and files

NameName
Last commit message
Last commit date

Latest commit

3db4083 · Mar 2, 2025
Nov 16, 2024
Mar 2, 2025
Mar 2, 2025
Mar 1, 2021
Dec 22, 2022
Feb 21, 2021
Dec 19, 2022
Dec 22, 2022
Jan 29, 2025
May 6, 2021
May 6, 2021
Jan 17, 2025
Jan 17, 2025
Jan 29, 2025

Repository files navigation

WeJH-Go

Go

一个用 go 写成的微精弘后端服务项目

如何开始

在项目根目录下执行

go build -tags=jsoniter

然后直接运行编辑出来的程序就行了

这个 tag 的意思就是我们的代码用第三方库解析json,这样速度更快 程序能识别的变量类型更多(原生 json 解析库部分复杂的嵌套数据类型 没法解析成 json 格式)

风格规范说明

为了拯救有强迫症的开发者,请遵守下面的几个小小的约定吧(笑)

  1. 所有的文件/文件夹名采用小驼峰命名(首单词全小写,后面的单词首字母大写)
  2. 代码采用tab制表符缩进而不是空格(Go 的默认风格)

配置系统说明

采用了viper这个配置文件库,方便读取配置信息。

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: 程序会自动监视配置文件,如果配置文件发生了变化,程序会自动更新

Contributing

If you are interested in reporting/fixing issues and contributing directly to the code base, please see CONTRIBUTING.md for more information on what we're looking for and how to get started.

License

MIT

About

The wejh-server written in go

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages