别把 Go 写成 Java:毁掉项目从过度架构开始

本文永久链接 – https://tonybai.com/2026/06/05/stop-writing-go-like-java-avoid-over-architecting 大家好,我是Tony Bai。 前不久,Go 语言社区 Reddit (r/golang) 上爆发了两场激烈的争论。 这两个帖子的主题直击了无数 Go 开发者的灵魂深处: 我们该如何构建一个大型的 Go 模块化单体架构,而不被复杂的“架构设计”淹没? 为什么现在的 Go 项目里,pkg 和 internal 目录被滥用得如此令人发指? 如果你正在维护一个中大型的 Go 后端项目,你大概率经历过这样的绝望时刻:为了加一个极其简单的业务字段,你需要穿透 handler、usecase、domain、repository、adapter 等足足五层抽象结构;你的项目根目录下躺着一个 pkg 文件夹,里面又套着 internal,代码藏在七八级目录深处。 ...

June 5, 2026 · 8 min · Tony Bai

写了 10 年 Java/TS,Go 语言终于治好了我的“过度设计”绝症

本文永久链接 – https://tonybai.com/2026/05/16/go-cured-my-over-engineering-addiction-after-java-ts 大家好,我是Tony Bai。 在软件工程的圈子里,有一种病,几乎所有写过几年 Java 或 TypeScript 的程序员都得过,而且往往病得不轻。 这种病叫:“过度设计综合征(Over-engineering Syndrome)”。 ...

May 16, 2026 · 7 min · Tony Bai

Go 代码设计的“第一天原则”:一份能让你少走五年弯路的实战模式清单

本文永久链接 – https://tonybai.com/2026/04/24/go-code-design-day-one-principle-practical-patterns-list 大家好,我是Tony Bai。 世界读书日送福利活动火热进行中,点击这里留言参与,赢取属于你的幸运! 每一个 Go 开发者,大概都经历过这样的心路历程: 项目启动初期,为了追求“快”,我们怎么方便怎么来。配置到处写,数据库连接随手建,错误日志直接 fmt.Println。我们安慰自己:“先跑起来,以后再重构。” ...

April 24, 2026 · 9 min · Tony Bai

重构还是重写?GitHub工程师维护Go大项目的实践指南

本文永久链接 – https://tonybai.com/2025/09/20/refactoring-go-in-large-codebases 大家好,我是Tony Bai。 “要不……我们重写吧?” 在任何一个发展到一定阶段的 Go 项目中,这句话都像一个幽灵,反复出现在技术讨论中。面对一个布满补丁、逻辑盘根错节、维护成本日益高昂的“大泥球” (Big Ball of Mud),彻底推倒重来的想法总是充满了诱惑。 ...

September 20, 2025 · 7 min · Tony Bai