Go 语言进阶 - 工程进阶 | 青训营笔记

69 阅读2分钟

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

Go 语言进阶 - 工程进阶

一、本堂课重点内容:

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

二、详细知识点介绍:

  • 并发编程

    • 协程 : 用户态 , 轻量级线程 , 栈 MB 级别 。
    • 线程 : 内核态 , 线程跑多个协程 , 栈 KB 级别 。
    • 提倡通过通信共享内存
    • Chanel make(chan int) make(chan int,2) 分别为无缓冲通道和有缓存通道
  • 依赖管理

    • 通过go.mod管理依赖包的版本
    • 通过go get / go mod 指令工具管理依赖包
    • 选择最低兼容版本
    • 依赖分发-Proxy
  • 测试

    • 单元测试

    • 覆盖率 JudgePassLine(number)

      • 一般覆盖率 50-60 较高覆盖率 80+
    • 外部依赖=>稳定&幂等

    • Mock

    • 基准测试

三、实践练习例子:

社区话题页面

  • 需求描述

    • 展示话题和回帖列表
    • 不考虑前端实现,仅实现一个本地web服务
    • 话题和回帖数据用文件存储
  • 需求分析

    • 需求用例
    • ER图
  • 分层结构

    • 数据层:数据model,外部数据的增删改查
    • 逻辑层:业务Entity,处理核心业务逻辑输出
    • 视图层:视图View,处理和外部的交互逻辑
  • 组件工具 四、课后个人总结:

  • 本章有什么知识点不容易掌握?

    • 并发编程
      • 协程Goroutine
      • 通道Channel
      • 锁Lock 
  • 线程同步WaitGroup

    • 测试
      • Mock
      • 基准测试
  • 什么地方容易与其他内容混淆?

    • 覆盖率
    • 实战项目
      1. 支持对话题发布回帖。
      2. 回帖id生成需要保证不重复、唯一性。
      3. 新加回帖追加到本地文件,同时需要更新索引,注意Map的并发安全问题 

五、引用参考: