go语言进阶和项目实际开发| 青训营笔记

31 阅读2分钟

今日学习:

go在企业设计企业项目实际开发过程中的所遇的难题

一.语言进阶

1.并发编程

1.并发和并行的区别

  * 并发是多个程序在一个核的CPU上运行
  * 并行是多个程序在多个核的CPU上运行
复制代码
  1. 协程

    • 用户态,轻量级线程,栈MB级别

    开启协程:函数前面添加关键词go

eg:

go func(){
    fmt.Println("开启协程")
}()
复制代码
  • go提倡通过通信共享内存

image.png

  • 使用lock锁可以解决并发安全问题(只要有数据共享且进行修改,就会存在数据安全问题,需要用lock锁)
  • WaitGroup 计数器:开启协程+1(Add()),执行结束-1(Done());主协程阻塞直到计数器为零(Wait())

二.依赖管理 (Go Module)

  • 依赖管理三要素:

    • 配置文件,描述依赖 go.mod
    • 中心仓库管理依赖库 Proxy
    • 本地工具 go get/mod
  • 类似的,go mod 工具也有三个操作

    • init 初始化,创建go.mod文件
    • download 下载模块到本地缓存
    • tidy 增加需要的依赖,删除不需要的依赖

三.测试

  • 测试是避免项目的最后一 道屏障

    • 不起眼的错误往往会造成巨大的事故,导致资金和收入的损失
  • 测试往往分为三大类

    • 回归测试 :手动、终端的测试

    • 继承测试 :对功能测试

    • 单元测试 :开发者对单独的函数进行测试

      • 覆盖率(代码行的执行程度):覆盖程度越高,表明测试越完备,出错率越小
    • 要求

      • 幂等
      • 稳定

image.png* 从上到下覆盖率逐层变大,成本却逐层降低

四.项目实战

  • 使用三成结构进行开发:

    • 数据层
    • 业务逻辑层
    • 视图层 :JSON格式化、进行数据的封装

image.png

标题:Go 语言进阶与依赖管理 - 掘金

网址:juejin.cn/course/byte…