Web Analytics

持续性能分析正在成为继Metrics、Logs 和 Traces之后,可观测性的“第四大支柱”

本文永久链接 – https://tonybai.com/2025/08/04/continuous-profiling-fourth-pillar 大家好,我是Tony Bai。 凌晨两点,运维平台的警报刺破了宁静。P99 延迟飙升,用户服务几近瘫痪。作为 Go 工程师,你的脑海中闪过无数可能:是数据库慢了?是下游服务超时?还是某个新上线的 goroutine 泄露了?你急忙打开监控面板,Metrics (指标) 显示 CPU 和内存平稳,Logs (日志) 没有明显异常,Traces (追踪) 只告诉你请求在服务内部耗费了大量时间,却不知所踪。这个场景,是现代软件运维中一个令人沮丧的“最后一公里”难题。 ...

August 4, 2025 · 7 min · Tony Bai

Goroutine泄漏防不胜防?Go GC或将可以检测“部分死锁”,已在Uber生产环境验证

本文永久链接 – https://tonybai.com/2025/07/24/deadlock-detection-by-gc 大家好,我是Tony Bai。 Go 语言的 go 关键字让并发编程变得前所未有的简单,但也带来了新的挑战。当所有 goroutine 都陷入阻塞时,Go runtime 会报告一个“全局死锁”并终止程序。然而,更常见也更隐蔽的是部分死锁:一部分 goroutine 永久阻塞,而程序的其他部分仍在运行。 ...

July 24, 2025 · 7 min · Tony Bai

“这代码迟早出事!”——复盘线上问题:六个让你头痛的Go编码坏味道

本文永久链接 – https://tonybai.com/2025/05/31/six-smells-in-go 大家好,我是Tony Bai。 在日常的代码审查 (Code Review) 和线上问题复盘中,我经常会遇到一些看似不起眼,却可能埋下巨大隐患的 Go 代码问题。这些“编码坏味道”轻则导致逻辑混乱、性能下降,重则引发数据不一致、系统崩溃,甚至让团队成员在深夜被告警声惊醒,苦不堪言。 ...

May 31, 2025 · 24 min · Tony Bai

当Gopher拥有了“Go语言女友”:一张图带你读懂Go的那些“可爱”特性

当Gopher拥有了“Go语言女友”:一张图带你读懂Go的那些“可爱”特性 - Tony Bai =============== Tony Bai 一个程序员的心路历程 Google Go语言编码风格规范 ...

May 30, 2025 · 7 min · Tony Bai

世界读书日:如何高效阅读“砖头”技术书?我的心法分享(文末赠书)

世界读书日:如何高效阅读“砖头”技术书?我的心法分享(文末赠书) - Tony Bai =============== Tony Bai 一个程序员的心路历程 Google Go语言编码风格规范 ...

April 23, 2025 · 8 min · Tony Bai

体验Gemini Deep Research:以Go语言未来演进方向分析为例

本文永久链接 – https://tonybai.com/2025/03/16/gemini-deep-research-experience 基于大模型的AI已进入深度思考时代,以DeepSeek R1模型为代表的开源模型给主流AI厂商带来了巨大压力。其实早在2024年12月份,Google就在一篇名为“Try Deep Research and our new experimental model in Gemini, your AI assistant”中发布了自己的Deep Research产品:Gemini Deep Research。 ...

March 16, 2025 · 21 min · Tony Bai

探索基于pion开发的WebRTC应用的建连过程

本文永久链接 – https://tonybai.com/2024/12/26/exploring-the-connection-establish-process-of-webrtc-app-built-with-pion 在《WebRTC第一课:从信令、ICE到NAT穿透的连接建立全流程》一文中,我们从理论层面全面细致地了解了WebRTC连接建立的完整流程。这个流程大致可以分为以下几个阶段: 与信令服务器的交互 ICE候选项的采集、交换与排序 形成ICE候选检查表、进行连通性检查,并最终确定最优候选路径 这个过程的复杂性不言而喻。即便多次阅读全文,读者可能仍难以形成深入的理解。因此,如果能够配上一个真实的示例,相信会更有助于读者全面把握这一过程的细节和原理。 ...

December 26, 2024 · 13 min · Tony Bai

Go 1.24新特性前瞻:工具链和标准库

本文永久链接 – https://tonybai.com/2024/12/17/go-1-24-foresight-part2 在上一篇文章中,我们介绍了即将于2025年2月发布的Go 1.24版本在语法、编译器和运行时方面的主要变化。本文将继续承接上文,重点介绍Go 1.24在工具链和标准库方面的重要更新,供大家参考。 ...

December 17, 2024 · 33 min · Tony Bai

Go 1.24新特性前瞻:语法、编译器与运行时

Go 1.24新特性前瞻:语法、编译器与运行时 | Tony Bai Tony Bai一个程序员的心路历程 Google Go语言编码风格规范 Google Go语言编码风格规范:指南篇 Google Go语言编码风格规范:决定篇 Google Go语言编码风格规范:最佳实践篇 Go语言第一课FAQ 关于我 文章列表 Go 1.24新特性前瞻:语法、编译器与运行时 十二月 16, 2024 0 条评论 ...

December 16, 2024 · 11 min · Tony Bai

Go语言中的深拷贝:概念、实现与局限

本文永久链接 – https://tonybai.com/2024/09/28/understand-deep-copy-in-go 前不久,在“Gopher部落”知识星球上回答了一个Gopher关于深拷贝(Deep Copy)的问题,让我感觉是时候探讨一下深拷贝技术了。 在日常开发工作中,深拷贝的使用频率相对较低,可能有80%的时间不需要使用深拷贝,只有在特定情况下才会遇到。这主要是因为大多数开发中处理的对象比较简单,通常只需使用浅拷贝(Shallow Copy)就能满足需求;此外,多数时候我们需要共享状态或数据,使用浅拷贝可以方便多个部分访问同一数据;最后,深拷贝通常比浅拷贝耗时更多,尤其是当对象嵌套较深时。因此,开发者倾向于选择更高效的浅拷贝。 ...

September 28, 2024 · 17 min · Tony Bai