Web Analytics

别再直接让 AI 写代码了!试试这个“Vibe Specs”模式,效率提升60%

本文永久链接 – https://tonybai.com/2025/07/02/vibe-specs 大家好,我是Tony Bai。 你是否也曾掉入 AI 编程的“氛围陷阱”? 你坐在 IDE 前,脑海中有一个自以为清晰的任务。你信心满满地打开 AI 助手,给出一个模糊的指令,也就是所谓的“氛围”编程 (Vibe Coding)。结果,AI 像一个过度热情的实习生,还给你一堆看似合理但完全无用的“废话软件”(slop software),让你陷入无尽的修改和挫败。 ...

July 2, 2025 · 7 min · Tony Bai

Go 1.25规范大扫除:移除“Core Types”,为更灵活的泛型铺路

Go 1.25规范大扫除:移除“Core Types”,为更灵活的泛型铺路 - Tony Bai =============== Tony Bai 一个程序员的心路历程 Google Go语言编码风格规范 ...

March 27, 2025 · 7 min · Tony Bai

跟上Go演进步伐,你只需要关注这几件事儿

跟上Go演进步伐,你只需要关注这几件事儿 | Tony Bai Tony Bai一个程序员的心路历程 Google Go语言编码风格规范 Google Go语言编码风格规范:指南篇 Google Go语言编码风格规范:决定篇 Google Go语言编码风格规范:最佳实践篇 Go语言第一课FAQ 关于我 文章列表 跟上Go演进步伐,你只需要关注这几件事儿 九月 30, 2024 0 条评论 ...

September 30, 2024 · 9 min · Tony Bai

“类型名称”在Go语言规范中的演变

“类型名称”在Go语言规范中的演变 | Tony Bai Tony Bai一个程序员的心路历程 Google Go语言编码风格规范 Google Go语言编码风格规范:指南篇 Google Go语言编码风格规范:决定篇 Google Go语言编码风格规范:最佳实践篇 Go语言第一课FAQ 关于我 文章列表 “类型名称”在Go语言规范中的演变 九月 24, 2024 0 条评论 ...

September 24, 2024 · 9 min · Tony Bai

使用TLA+形式化验证Go并发程序

本文永久链接 – https://tonybai.com/2024/08/05/formally-verify-concurrent-go-programs-using-tla-plus Writing is nature’s way of letting you know how sloppy your thinking is – Guindon 在2024年6月份举办的GopherCon Europe Berlin 2024上,一个叫Raghav Roy的印度程序员(听口音判断的)分享了Using Formal Reasoning to Build Concurrent Go Systems,介绍了如何使用形式化验证工具TLA+来验证Go并发程序的设计正确性。 ...

August 5, 2024 · 21 min · Tony Bai

Go语言开发者的Apache Arrow使用指南:读写Parquet文件

本文永久链接 – https://tonybai.com/2023/07/31/a-guide-of-using-apache-arrow-for-gopher-part6 Apache Arrow是一种开放的、与语言无关的列式内存格式,在本系列文章的前几篇中,我们都聚焦于内存表示与内存操作。 但对于一个数据库系统或大数据分析平台来说,数据不能也无法一直放在内存中,虽说目前内存很大也足够便宜了,但其易失性也决定了我们在特定时刻还是要将数据序列化后存储到磁盘或一些低成本的存储服务上(比如AWS的S3等)。 ...

July 31, 2023 · 17 min · Tony Bai

Go语言开发者的Apache Arrow使用指南:扩展compute包

本文永久链接 – https://tonybai.com/2023/07/22/a-guide-of-using-apache-arrow-for-gopher-part5 在本系列文章的第4篇《Go语言开发者的Apache Arrow使用指南:数据操作》中我们遇到了大麻烦:Go的Arrow实现居然不支持像max、min、sum这样的简单聚合计算函数:(,分组聚合(grouped aggregation)就更是“遥不可期”。要想对从CSV读取的数据进行聚合操作和分析,我们只能“自己动手,丰衣足食” – 扩展Arrow Go实现中的compute包了。 ...

July 22, 2023 · 12 min · Tony Bai

Go语言开发者的Apache Arrow使用指南:数据操作

本文永久链接 – https://tonybai.com/2023/07/13/a-guide-of-using-apache-arrow-for-gopher-part4 在前面的Arrow系列文章中,我们介绍了Arrow的基础数据类型以及高级数据类型,这让我们具备了在内存中建立起一个immutable数据集的能力。但这并非我们的目标,我们最终是要对建立起来的数据集进行查询和分析等操作(manipulation)的。 在这一篇文章中,我们就来看看如何基于Go arrow的实现对内存中的Arrow数据集进行操作。 注:由于Arrow官方文档尚没有Go语言的cookbook,这里的一些例子参考了其他语言的Cookbook,比如Python。 ...

July 13, 2023 · 13 min · Tony Bai

Go语言开发者的Apache Arrow使用指南:高级数据结构

本文永久链接 – https://tonybai.com/2023/07/08/a-guide-of-using-apache-arrow-for-gopher-part3 经过对前面两篇文章《Arrow数据类型》和《Arrow Go实现的内存管理》的学习,我们知道了各种Arrow array type以及它们在内存中的layout,我们了解了Go arrow实现在内存管理上的一些机制和使用原则。 ...

July 8, 2023 · 9 min · Tony Bai

Go语言开发者的Apache Arrow使用指南:内存管理

本文永久链接 – https://tonybai.com/2023/06/30/a-guide-of-using-apache-arrow-for-gopher-part2 如果你看了上一篇《Go语言开发者的Apache Arrow使用指南:数据类型》中的诸多Go操作arrow的代码示例,你很可能会被代码中大量使用的Retain和Release方法搞晕。不光大家有这样的感觉,我也有同样的feeling:Go是GC语言,为什么还要借助另外一套Retain和Release来进行内存管理呢? ...

June 30, 2023 · 10 min · Tony Bai