Go语言入门与实践 | 青训营笔记

26 阅读2分钟

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

1.语言进阶

1.1并发编程

(1)并发与并行

  • 并发:多线程程序在一个核的CPU上运行

image.png

  • 并行:多线程程序在多个核的CPU上运行

image.png

Go语言可以充分发挥多核优势,高效运行

(2)相关技术

  • Goroutine
  • CSP
  • Channel
  • 并发安全Lock
  • WaitGroup

2.依赖管理

2.1背景

  • 对于像helloworld以及类似的单体函数只需要依赖原生SDK,而实际工程会相对复杂,我们不能基于标准库0 ~ 1编码搭建,而更多的关注业务逻辑的实现,而其他的涉及框架、日志、driver. 以及cllection等一 系列依赖都会通过sdk的方式引入,这样对依赖包的管理就显得尤为重要

2.2背景

  • Go的依赖管理主要经历了3个阶段,分别是GOPATH,GO Vendor,到目前被广泛应用的Go Module,整个演进路线主要围绕实现两个目标来迭代发展的,分别是GOPATH,GO Vendor。 _5ILLKNV2FV_95Z9__MVC_K-removebg-preview.png

2.3三要素

  1. 配置环境,描述依赖 go.mod
  2. 中心仓库管理依赖库 proxy
  3. 本地工具 go get/mod

2.4工具

  • go get example.org/pkg
    • @update---------默认
    • @none-----------删除依赖
    • @v1.1.2----------tag版本,语义版本
    • @23dfdd5-------特定的commit
    • @master---------分支的最新commit
  • go mod
    • init---------------初始化,创建go.mod文件
    • download-------下载模块到本地缓存
    • tidy--------------增加需要的依赖,删除不需要的依赖

3.测试

3.1事故

(1)可能发生的错误

  1. 营销配置错误,导致非预期用户享受权益,资金损失10w+
  2. 用户提现,幕等失效,短时间可以多次提现,资金损失20w+
  3. 代码逻辑错误,广告位被占,无法出广告,收入损失600w+
  4. 代码指针使用错误,导致APP不可用,损失i kw+.

3.2测试

image.png

测试是避免损失的最后一道屏障