Go语言基础(二) | 青训营笔记

84 阅读2分钟

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

一、本堂课重点内容

本堂课的知识要点有哪些?

  1. 语言进阶
  2. 依赖管理
  3. 测试
  4. 项目实战

二、详细知识点介绍

本堂课介绍了哪些知识点?

语言进阶

  • 并发VS并行
  • Goroutine 线程VS协程
  • 通信共享内存
  • Channel通道
  • 并发安全Lock
  • WaitGroup

依赖管理

  • Gopath 弊端:无法实现package的多版本控制。
  • Go Vendor 弊端:无法控制依赖的版本,更新项目又可能出现依赖冲突,导致编译出错。
  • Go Module
    • 通过go.mod 文件管理依赖包版本
    • 通过go get/go mod指令工具管理依赖包
  • 依赖管理三要素
    • 1.配置文件,描述依赖 go.mod
    • 2.中心仓库管理依赖库 Proxy
    • 3.本地工具 go get/mod

测试

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

项目实战

  • 需求分析
    • 需求描述
    • 需求用例
    • ER图
  • 代码开发
  • 组件工具 Gin Go Mod(go mod init go get)
  • Repository
    • index
    • 查询
  • Service
  • Controller
    • 构建View对象
    • 业务错误码
  • Router
    • 初始化数据索引
    • 初始化引擎配置
    • 构建路由
    • 启动服务
  • 测试运行

分层结构

数据层 Model

外部数据的增删查改

逻辑层 Entity

处理核心业务逻辑输出

视图层 view

处理和外部的交互逻辑

与SpringMVC相比

SpringMVC是一个Web层(控制层)的框架,主要用来负责与客户端(浏览器端)交互,以及业务逻辑的调用。 Spring框架是Service层(业务访问层)的框架。 SpringMVC的特点是简单、易用,性能佳。 SpringMVC替代了之前的Struts2框架,也是用于替代Servlet技术的功能。

三、实践练习例子

  • 有什么实践举例帮助理解知识点?
  • 抖音项目 待开发

四、课后个人总结

本人之前学过JavaWeb和Spring,忘的也差不多了,需要复习之前的用JavaWeb开发项目的逻辑,项目开发逻辑是有一些共同点,并学习Go语言开发项目。

五、引用参考