5.7-GO语言上手-工程实践 笔记

91 阅读1分钟

01.并发编程

Q:并发和并行的区别? A:并发指多线程在一个CPU上利用时间片交替运行,并行是指多线程在多个CPU上同时运行

Q:协程与线程区别? 协程:用户态,轻量级线程,栈MB级别 线程:内核态,线程跑多个协程,栈KB级别

Go语言提倡通过通信来共享内存,而不是通过共享内存而实现通信,通过channel来实现。

  • 无缓冲通道 make(chan int)
  • 有缓冲通道 make(chan int,2)

02.依赖管理

//配置文件示例
module github.com/Moonlight-Zhao/go-project-example

go 1.16

require (
   github.com/gin-contrib/sse v0.1.0 // indirect
   github.com/gin-gonic/gin v1.3.0 // indirect
   github.com/go-playground/validator/v10 v10.10.0 // indirect
   
)

Go Module

依赖管理三要素

  1. 配置文件,依赖描述(go.mod)
  • 依赖管理基本单元
  • 原生库
  • 单元依赖 2.中心仓库管理依赖
  • 语义化版本
  • 基于commit伪版本 3.本地工具

03.测试

  • 单元测试
  • Mock测试
  • 基准测试

04.项目实战