【青训营】1月28日总结

73 阅读2分钟

这是我参与「第五届青训营」笔记创作活动的第11天

git

git commit --amend

  • 效果:提交修正,创建新的提交覆盖上一次提交,不会产生多余的日志
  • 应用场景:
    • 提交的代码有问题
    • 漏提交了一些文件
    • 提交信息写错了
    • 当项目复杂,开发周期较长,会产生大量commit记录,导致日志冗长且重点模糊

go os包相对路径

F:\xxx\conf\load_config.go

func LocalPackage() {
   fmt.Println(os.Getwd())
   //代码逻辑
}

F:\xxx\conf\load_config_test.go

func TestUploadFile(t *testing.T) {
    LocalPackage()
}

输出:F:\xxx\conf


F:\xxx\main.go

func main() {
    conf.LocalPackage()
}

输出:F:\xxx


Golang的相对路径是相对于执行命令时的目录

也就是使用os.ReadFile每个文件调用加载配置文件函数去加载配置文件的相对路径是不同的,如果写死了文件路径当测试文件调用加载配置文件函数时的相对路径就是错误的。 解决方案:

_, filename, _, _ := runtime.Caller(0)
ymlFile, err := os.ReadFile(filename[:len(filename)-len("config.go")] + "config.yaml")

哪些数据适合放入redis中缓存

  1. 不易更改的数据如字典表,配置类数据
  2. 热点数据,每天调用量很大
  3. 临时数据时效性强不需要持久化,Session,Token,以及各种验证码

什么是状态机

先来解释什么是“状态”( State )。现实事物是有不同状态的,例如一个自动门,就有 open 和 closed 两种状态。我们通常所说的状态机是有限状态机,也就是被描述的事物的状态的数量是有限个,例如自动门的状态就是两个 open 和 closed 。

状态机,也就是 State Machine ,不是指一台实际机器,而是指一个数学模型。说白了,一般就是指一张状态转换图。例如,根据自动门的运行规则,我们可以抽象出下面这么一个图。