context 包定义了 Context 类型,通过该类型可以实现在不同流程间设置 deadline、通知取消信号、设置每请求关联值等功能。context 包简化了 Go 并发编程中不同 API/流程间的信息传递(取消信号、超时信号、每请求关联数据等都可以认为是要传递的信息)。
这篇文章主要介绍 context 包的使用及内部原理。
context 包定义了 Context 类型,通过该类型可以实现在不同流程间设置 deadline、通知取消信号、设置每请求关联值等功能。context 包简化了 Go 并发编程中不同 API/流程间的信息传递(取消信号、超时信号、每请求关联数据等都可以认为是要传递的信息)。
这篇文章主要介绍 context 包的使用及内部原理。
这篇文章学习使用 Go 语言做软件项目过程中很可能会遇到的一些工程问题的解决方法,包括使用 go module
进行 Go 包依赖管理、Go 应用容器镜像、Go 相关工具使用等。
Go 拥有功能强大且质量上乘的标准库,这篇文章将介绍高频使用的标准库包,如 net/http、strings、bytes、time 等正确使用方式,以及 reflect 包、cgo 在使用时的注意事项。
Go 语言推崇 面向工程
的设计哲学并自带强大的且为人所称道的工具链。这篇文章将学习 Go 在单元测试、性能测试以及代码调试方面的最佳实践方案。
Go 十分重视错误处理,它有着相对保守的设计和显式处理错误的惯例。这篇文章将聚焦 Go 中的错误处理。
Go 以其轻量级的并发编程思想而闻名,这篇文章将详细介绍 Go 基本执行单元:goroutine 的调度原理、Go 并发模型以及常见并发模式、Go 支持并发的原生类型–channel 的惯用使用模式等内容。
Go 语言推崇面向组合编程,而接口是 Go 语言中实践组合编程的重要手段。这篇文章深入介绍 Go 的接口。
函数和方法是 Go 程序逻辑的基本承载单元,这篇文章将聚焦于函数与方法的设计与实现。
Go 语言为开发者提供了简单的基础语法,这部分将详细介绍 Go 在基础语法层面上有哪些高质量 Go 代码的惯用法和有效实践。
当我们需要解决实际工程问题的时候,我们需要在项目结构、代码风格、标识符命名等方面进行全面考虑。这些问题并非 Go 编程语言独有,任何编程语言在被用于实际项目时都会遇到这些问题。这篇文章将介绍高质量 Go 项目是如何处理这些问题的。