Writing

所有文章

17 篇文章,关于软件工程、系统设计和 AI 的深度思考

GoHTTPTCP

go-TCP/HTTP网络编程

Go 被誉为“云原生时代的 C 语言”,其网络编程能力是核心优势。

2026年9月2日 4 min 31
GoReflection

Go-Reflection反射

反射是 Go 语言中一个非常强大但需要谨慎使用的特性。它允许程序在运行时检查、修改变量的类型和值,而不需要在编译时知道具体的类型。

2026年9月2日 2 min 36
Go单元测试

go-UnitTest单元测试

在 Go 语言中,单元测试是语言设计中的一等公民。Go 自带了强大的测试工具链(go test),无需第三方框架即可编写和运行高效的测试。

2026年9月1日 10 min 35
Go文件操作bufio

go-File文件操作

Go 把文件看作一种“数据流(Stream)”,os 负责与操作系统交互,io 定义读写抽象,bufio 提升读写效率,filepath 负责跨平台路径处理。

2026年8月27日 6 min 30
Go异常处理errors

go-panic异常处理

Go 里的“异常处理”与 Java、JavaScript、Python 等语言有很大区别。Go 没有传统意义上的 try/catch/finally 异常体系。 它主要把错误分成两类:可预期的运行错误 → error;不可预期的严重错误 / 程序异常 → panic;程序从 panic 中恢复 → recover。

2026年8月13日 7 min 32
GoMutexRWMutex

go-线程安全与sync.Map

Go里的“线程安全”,本质上是指多个 goruntine 并发访问同一份共享数据时,程序是否还能保持正确性。而 sync.Map 是 Go 标准库针对特定并发读写场景提供的一种并发安全 Map。

2026年8月12日 7 min 29
Goselect协程

go-select语句与协程的超时处理

select 是Go语言中处理并发操作的核心机制之一,它允许一个goroutine同时等待多个channel操作。

2026年8月5日 5 min 41
Gogoroutinechannel

go-goroutine-channel协程与channel

Go语言的并发编程模型基于两个核心概念:协程(Goroutine)和通道(Channel)。Goroutine是轻量级的执行单元,而Channel则是它们之间进行通信的管道。它们的核心理念是:“不要通过共享内存来通信,而要通过通信来共享内存”。

2026年8月3日 2 min 34
GoInterface

go-Interface

接口是一组方法签名的集合。它定义了“行为契约”:任何类型只要实现了接口中所有的方法,就隐式地实现了该接口。

2026年8月3日 3 min 40
Gostruct

go-Struct结构体

结构体(Struct)是Go语言中最重要的类型系统核心,它既是传统面向对象编程中“类”的轻量级替代,也是Go实现代码复用、数据建模和接口绑定的基础。

2026年8月2日 2 min 37
Go值传递

go-value-reference值传递与“引用传递”

Go语言中所有参数传递都是值传递(pass by value),没有引用传递!但是很多人会误以为有引用传递,因为切片、map、channel、指针等类型的行为看起来像是在“引用传递”。实际上,它们传递的是指针的副本,但这个副本本身是按值传递的。

2026年7月31日 5 min 34
Go函数

go-function-函数

Go 函数支持多返回值、闭包、defer,函数本身是一等公民可以像变量一样传递,错误处理靠多返回值而非异常。

2026年7月26日 4 min 38
Go循环条件判断

Go-if-and-for判断与循环

Go 用 if/switch 做条件判断,用唯一的 for 关键字涵盖所有循环形式(计数、while、无限、range),没有 while 和 do-while。

2026年7月25日 3 min 34
Go基础数据

Go-baseType基础数据类型

Go 基础数据类型分四类:整数(int/uint系列)、浮点(float32/64)、布尔(bool)、字符串(string),所有变量自动初始化为零值,且类型转换必须显式。

2026年7月24日 4 min 48
GoMap

go-Map

Map 是用空间换时间的键值索引结构,核心价值是将任意 key 的查找、插入、删除从 O(n) 降为 O(1)。

2026年7月24日 3 min 41
Go数组与切片

go-Array and Slice-数组与切片

优先用切片,数组主要用于固定大小的场景

2026年7月23日 4 min 39
Go格式化输出

go-基础类型格式化

在 Go 语言中,% 和 print 主要涉及格式化输出。其中 % 是格式化占位符,通常配合 fmt 包中的 Printf、Sprintf、Println 等使用;print 是 Go 内置函数,用于简单输出(不推荐用于正式开发)。

2026年7月18日 3 min 62