Go FFI 的新范式:purego 与 libffi 如何让我们无痛拥抱 C 生态
本文永久链接 – https://tonybai.com/2025/10/23/go-ffi-new-paradigm 大家好,我是Tony Bai。 import “C”,这行代码对于许多 Gopher 来说,既是通往强大 C 生态的桥梁,也是通往“地狱”的入口。CGO 作为 Go 语言内建的 FFI 机制,其为人诟病的远不止是编译期的种种不便,更包含了昂贵的运行时开销和复杂的心智负担。 ...
本文永久链接 – https://tonybai.com/2025/10/23/go-ffi-new-paradigm 大家好,我是Tony Bai。 import “C”,这行代码对于许多 Gopher 来说,既是通往强大 C 生态的桥梁,也是通往“地狱”的入口。CGO 作为 Go 语言内建的 FFI 机制,其为人诟病的远不止是编译期的种种不便,更包含了昂贵的运行时开销和复杂的心智负担。 ...
本文永久链接 – https://tonybai.com/2025/10/17/detect-charset-in-go 大家好,我是Tony Bai。 在上一篇关于 Go 语言 string 与 rune 设计哲学的文章发布后,我收到了许多精彩的反馈。其中,一位读者提出了一个极具现实意义的后续问题:“既然 Go 的世界以 UTF-8 为中心,那么当我们从外部系统(如老旧的文件、非标准的 API)接收到一段未知编码的字节流时,我们该如何是好?Go 生态是否有成熟的字符集检测工具/库?” ...
“自立程序员宣言”解读:这不就是我们一直在说的Go语言哲学吗? - Tony Bai Tony Bai 一个程序员的心路历程 Google Go语言编码风格规范 Google Go语言编码风格规范:指南篇 Google Go语言编码风格规范:决定篇 Google Go语言编码风格规范:最佳实践篇 Go语言第一课FAQ ...
本文永久链接 – https://tonybai.com/2025/09/25/go-security-past-present-and-future 大家好,我是Tony Bai。 在软件安全领域,最成功的战役,往往是那些从未被公众所知的“隐形战争”。当一门编程语言的安全性被认为是理所当然时,这背后必然有一支团队在持续不断地进行着防御、修复与规划。对于 Go 语言而言,这支团队就是 Google 内部的 Go 安全/密码学团队。 ...
purego 标签到底是什么意思?一场长达六年的社区辩论终于有了定论 - Tony Bai Tony Bai 一个程序员的心路历程 Google Go语言编码风格规范 ...
2024年Go语言盘点:排名历史新高,团队新老传承 - Tony Bai =============== Tony Bai 一个程序员的心路历程 Google Go语言编码风格规范 ...
本文永久链接 – https://tonybai.com/2024/12/17/go-1-24-foresight-part2 在上一篇文章中,我们介绍了即将于2025年2月发布的Go 1.24版本在语法、编译器和运行时方面的主要变化。本文将继续承接上文,重点介绍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 条评论 ...
本文永久链接 – https://tonybai.com/2024/11/21/go-source-file-selection-details-when-building-package 在Go语言开发中,包(package)是代码组织的基本单位,也是基本的构建单元。Go编译器会将每个包构建成一个目标文件(.a),然后通过链接器将这些目标文件链接在一起,形成最终的可执行程序。 尽管Go包的构建过程看似简单,但实际上蕴含着许多值得深入了解的细节。例如,当我们执行go build命令时,Go编译器是如何选择需要编译的源文件的?你可能会回答:“不就是通过文件名中的ARCH和OS标识以及构建约束(build constraints)来选择的吗?” 虽然你的答案并没有错,但如果我进一步提出以下问题,你是否还能给出确切的答案呢? ...
本文永久链接 – https://tonybai.com/2024/11/11/some-details-about-go-compilation 在Go开发中,编译相关的问题看似简单,但实则蕴含许多细节。有时,即使是Go专家也需要停下来,花时间思考答案或亲自验证。本文将通过几个具体问题,和大家一起探讨Go编译过程中的一些你可能之前未曾关注的细节。 ...