今日学习:
go在企业设计企业项目实际开发过程中的所遇的难题
一.语言进阶
1.并发编程
1.并发和并行的区别
* 并发是多个程序在一个核的CPU上运行
* 并行是多个程序在多个核的CPU上运行
复制代码
-
协程
- 用户态,轻量级线程,栈MB级别
开启协程:函数前面添加关键词go
eg:
go func(){
fmt.Println("开启协程")
}()
复制代码
- go提倡通过通信共享内存
- 使用lock锁可以解决并发安全问题(只要有数据共享且进行修改,就会存在数据安全问题,需要用lock锁)
- WaitGroup 计数器:开启协程+1(Add()),执行结束-1(Done());主协程阻塞直到计数器为零(Wait())
二.依赖管理 (Go Module)
-
依赖管理三要素:
- 配置文件,描述依赖 go.mod
- 中心仓库管理依赖库 Proxy
- 本地工具 go get/mod
-
类似的,go mod 工具也有三个操作
- init 初始化,创建go.mod文件
- download 下载模块到本地缓存
- tidy 增加需要的依赖,删除不需要的依赖
三.测试
-
测试是避免项目的最后一 道屏障
- 不起眼的错误往往会造成巨大的事故,导致资金和收入的损失
-
测试往往分为三大类
-
回归测试 :手动、终端的测试
-
继承测试 :对功能测试
-
单元测试 :开发者对单独的函数进行测试
- 覆盖率(代码行的执行程度):覆盖程度越高,表明测试越完备,出错率越小
-
要求
- 幂等
- 稳定
-
* 从上到下覆盖率逐层变大,成本却逐层降低
四.项目实战
-
使用三成结构进行开发:
- 数据层
- 业务逻辑层
- 视图层 :JSON格式化、进行数据的封装
标题:Go 语言进阶与依赖管理 - 掘金