Go slices 和 maps 包入门:少写一点重复集合代码
本文详解 Go 标准库 slices 和 maps 包的常用函数,涵盖克隆、查找、排序、删除等操作,对比手写循环与标准库的效率差异并给出实战选型建议。
posts
本文详解 Go 标准库 slices 和 maps 包的常用函数,涵盖克隆、查找、排序、删除等操作,对比手写循环与标准库的效率差异并给出实战选型建议。
本文详解 Go 标准库 ServeMux 的现代用法,涵盖方法路由、路径参数、handler 组织和 JSON API 响应,对比框架与标准库的选择策略。
全面讲解 Go regexp 包的实战用法,涵盖正则语法速查、Compile/Parse 底层实现、完整 API 使用、性能优化策略、常见正则模式与 strings 包性能对比选择策略。
全面解析 Go reflect 包的类型系统、接口值内部结构、结构体遍历、方法调用与动态值创建,涵盖高性能缓存、依赖注入与 ORM 映射等实战案例,以及反射与泛型的对比选择策略。
本文详解 Go pprof 在 HTTP 服务中的使用方法,包含 CPU 和内存分析、goroutine 排查、pprof 安全实践和性能优化方法论。
本文详解 Go 1.18 引入的 net/netip 包,涵盖 IP 解析、网段判断、白名单实现、IPv6 处理等场景,对比传统 net.IP 的优缺点并提供实战示例。
从 io 接口设计哲学出发,深入剖析 bytes.Buffer、strings.Reader、os.File 实现,详解 io.Copy、TeeReader、MultiReader 等装饰器模式,涵盖自定义 Reader 和 Writer 实现、流式处理大文件、网络流、gzip 压缩流及 bufio 缓冲原理,构建完整的 IO 知识体系。
本文详解 Go HTTP 客户端通过 RoundTripper 实现中间件的方法,涵盖日志记录、请求头注入和有限重试策略,附带组合顺序和最佳实践。
本文详解 Go HTTP 中间件的设计模式与实现,包含请求 ID、panic 恢复、鉴权、日志等实战中间件,附带中间件链组合和常见陷阱。
从编写第一个 fuzz 函数开始,系统讲解种子语料库准备、运行与监控、崩溃发现与分析、回归测试编写,以及与 CI/CD 的持续集成策略,涵盖不同类型输入的 fuzzing 方法。
系统讲解 Go 内置 Fuzz 测试的完整使用方法,涵盖 go test -fuzz 语法、语料库管理、fuzzer 架构、生成器函数编写、覆盖率引导、崩溃复现与最小化、CI 集成策略,以及在 API 解析器和编解码器中的实战应用。
本文详解 Go embed 编译时嵌入文件的能力,涵盖单文件、目录、模板和静态资源服务,附带安全性、开发体验和部署实践。
深度解析 Go Context 的取消与原因传递机制,涵盖 WithCancelCause 源码分析、CancelCauseFunc 使用、WithoutCancel 与 AfterFunc 新特性、梯度超时设计及 context 泄漏调试方法。
本文详解 context.WithValue 的适用边界和使用规范,明确请求 ID、用户 ID 等横切信息可以放,而业务参数和依赖对象不该通过 context 传递。
深入讲解 Go Channel 的底层 hchan 结构、有缓冲与无缓冲 channel 的语义差异、select 多路复用机制,以及 Fan-In、Fan-Out、Pipeline 等经典并发模式与最佳实践
本文详解 Go build tags 的使用方法,涵盖平台差异、集成测试隔离和编译期功能选择,附带文件命名规范和生产环境使用建议。
深入讲解 Go bufio 包的 Reader、Writer 缓冲原理,Scanner 分词机制与自定义 SplitFunc,大文件逐行读取优化策略,HTTP 响应体读取优化,CSV 和 JSON 流式解析中的 bufio 应用,Flush 策略与内存分配优化。
深入讲解 Go sync/atomic 包的完整使用方式,涵盖 atomic.Value、atomic.Int32、Int64 等类型化原子操作、CAS 原理、内存序、与 mutex 的性能对比基准测试、无锁计数器实现、配置热更新应用,以及 ABA 问题与使用边界。
全面深入解析 Go 1.24 版本的所有新特性与变更,涵盖泛型类型别名、Swiss Table 映射、runtime 优化、标准库改进、工具链增强等内容,包含完整可运行代码示例与升级指南。
本文详解 Go 1.21 前后 go.mod 中 go 版本和 toolchain 指令的含义,帮助理解项目工具链、语言版本和团队协作中的版本管理。