GO语言编程之旅:一起用GO做项目(陈煎鱼)

书: https://pan.baidu.com/s/15VfTw9eJ2MoiHktwswP0gw?pwd=tq5x
笔记如下:

  1. “Go语言的简洁性体现在其‘少即是多’的设计哲学上。”
  2. “通过go mod init命令初始化模块,是Go项目依赖管理的起点。”
  3. context包的核心作用是跨Goroutine传递截止时间、取消信号和请求作用域值。”
  4. “Gin框架的路由基于HTTP方法和路径匹配,支持分组路由(Group)中间件。”
  5. “Go的接口是隐式实现的,只要类型实现了接口定义的方法,即视为满足该接口。”
  6. sync.WaitGroup用于等待一组Goroutine完成,其AddDoneWait方法需严格配对。”
  7. “标准库encoding/jsonMarshalUnmarshal函数实现了结构体与JSON的双向转换。”
  8. “错误处理应遵循‘错误即值’原则,通过多返回值显式传递错误,而非异常机制。”
  9. io.Readerio.Writer接口是Go中流式数据处理的基础抽象。”
  10. “使用go test -v运行单元测试,结合Table-Driven Tests可提高测试覆盖率。”
  11. pprof工具能可视化分析程序的CPU占用、内存分配和Goroutine阻塞问题。”
  12. “Go的并发模型基于‘通过通信共享内存’(CSP),而非传统的锁机制。”
  13. chan类型分为无缓冲和有缓冲通道,前者要求收发双方同步就绪。”
  14. “反射(reflect包)虽强大但性能损耗高,应优先考虑类型安全的替代方案。”
  15. go build -ldflags支持注入编译时变量,如版本号和Git提交哈希。”
  16. “标准库net/httpServer结构体提供了灵活的HTTP服务配置选项。”
  17. go generate命令可自动化生成代码,常用于减少重复模板代码。”
  18. “依赖注入(DI)通过构造函数或选项模式实现,提升代码可测试性。”
  19. “Go的逃逸分析决定变量分配在栈还是堆上,可通过go build -gcflags调试。”
  20. go doc命令能快速查看包或函数的文档,促进代码即文档的实践。”

发表评论

您的电子邮箱地址不会被公开。 必填项已用 * 标注