这是我参与「第五届青训营 」伴学笔记创作活动的第 2天
go并发编程
Channel
Goroutine
Sync
依赖管理
GoPATH-》Go Vendor -》Go Moudle
- GoPATH
- Go Vendor
- Go Moudule
依赖管理三要素
依赖配置
高质量编程简介及编码规范
01.高质量编程
高质量:
- 各种边界条件是否考虑晚辈
- 异常情况处理,稳定性保证
- 易读易维护
编程原则
-
简单性
-
可读性:代码是写给人看的,而不是机器
-
生产力:团队整体工作效率非常重要
-
编码规范: 公共符号始终要注释
命名规范
-
简洁胜于冗长
-
缩略词全大写,但当其位于变量开头且不需要导出时,使用全小写
-
变量距离其被使用的地方越远,则需要携带越多的上下文信息。
-
package :
- 只由小写字母组成。不包含大写字母和下划线等字符
- 简短并包含一定的上下文信息。例如schema、task等
- 不要与标准库同名。例如不要使用sync或者strings
最好解释一下代码什么情况会出错。
- 控制流程:尽量保持正常代码路径为最小缩进
go语言自动格式化工具:gofmt
02.性能调优指南
-
slice预分配内存:尽可能在使用make()初始化切片时提供容量信息
-
map :预分配内存
-
字符串处理:使用strings.Builder
-
空结构体:使用空结构体节省内存
-
atomic包:使用atomic包
普通应用代码,不要一味地追求程序地性能。
性能调优原则
- 要依靠数据不是猜测
- 要定位最大瓶颈而不是细枝末节
- 不要过早优化
- 不要过度优化
性能调优实战案例
- 服务:能单独部署
- 依赖:service a的功能实现依赖service b的响应结果,称为service a依赖 serviceb
- 调用链路:能支持一个接口请求的相关服务集合及其相互之间的依赖关系
- 基础库:公共的工具包、中间件