Go语言入门 | 青训营笔记

226 阅读1分钟

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

一、本堂课重点内容:

  • 语言进阶
  • 依赖管理
  • 测试
  • 项目实战

二、详细知识点介绍:

(一)语言进阶

  1. goroutine 比线程更小,在内核态,栈在KB级

  2. CSP 两种方式:

     1、通过通信共享内存(通道,提倡方式)  
     2、通过共享内存通信(临界区)
    

3.channel: 1、有缓存通道make(chan int,2) 2、无缓存通道make(chan int)

4.并发安全lock

5.waitGroup同步

(二)依赖管理

  1. gopath:项目代码直接依赖src下的代码

     无法实现package的多版本控制
    
  2. go vendor:项目目录下增加vendor文件夹,所有依赖包以副本形式放在此处

     无法控制依赖版本
     更新项目出现依赖冲突
    
  3. go mod:通过go.mod文件管理依赖包版本

image.png 依赖管理三要素

1.配置文件,描述依赖 go mod

2.中心仓库管理依赖库 proxy

3.本地工具 go get/mod

(三)测试

image.png

  1. 单元测试

image.png

保证覆盖率、测试分支独立、测试单元粒度小、保证稳定性与幂等性

2. 基准测试

优化运行性能和cpu消耗

(四)项目实战——社区话题页面

分层结构

  • 数据层(外部数据增删查改)

    • 建立索引
  • 逻辑层(处理核心业务逻辑输出)

    • 参数校验、准备数据、组装实体
    • 建议 使用并发
  • 视图层(处理和外部的交互逻辑)

    • 构件View对象
    • 业务错误码
  • Router

    • 初始化数据索引
    • 初始化引擎配置
    • 构建路由
    • 启动服务

三、课后个人总结:

四、引用参考: