EN
返回档案库

档案库 · 产品创意 · 产品决策 · 2019–2022

Bud 为 Go 带来全栈框架,只在需要时编写样板代码

Matt Mueller 花了三年时间打造 Bud,这是一个 Go 框架,项目初始极简,仅在功能出现时生成胶水代码——目前已获 5.6k 星。

Bud (livebud)

创意是什么构建一个 Go 框架,几乎不搭建项目结构,只在功能需要时生成每一块繁琐的胶水代码,并将其排除在版本控制之外。小步快跑

当时的题目

After watching Laravel tutorials in 2019, Matt Mueller wanted that kind of productivity in a typed language he loved, so he set out to create Laravel for Go. His first version, working after six months, had to scaffold many files just to start, and building a blog from it 'fell flat'.

它是怎么成立的

Go 让编写高性能服务器变得容易,但在 2019 年,还没有人为它带来 Laravel 或 Rails 那样的一体化 Web 体验。Matt Mueller 观看了 Laravel 教程,被其生产力震撼,决定尝试为 Go 生态打造 Laravel,而不是回去写 PHP。

他的第一个版本在六个月内可用,但未能通过真正考验:需要预先创建大量文件才能启动,用它构建博客效果不佳。转机来自 Next.js——它初始极简,每个文件添加都让应用渐进增强。Mueller 花 18 个月围绕这一约束重建 Bud:按需生成文件,隔离生成文件,并允许开发者完全不将其纳入版本控制。

结果是「为你编写无聊代码」的框架:支持 Svelte、React 等现代前端,支持热重载和服务端渲染,提供编译为底层 Go 的类型安全的 API,并将整个应用打包为单一二进制,即使服务器无 Go 环境也能复制运行。视频演示显示,15 分钟即可完成极简 Hacker News 克隆。

2022-05-13 作为 Show HN 宣布后,Bud 获得 531 分和 99 条评论,Mueller 在帖中解释其架构和路线图。仓库星标涨至 5.6k,175 个 fork,也出现了真实项目,包括 Bass Loop CI/CD 栈以及 Bud 自身的欢迎页。

妙在哪

  • 锚定 Next.js,Bud 获得了大多数 Go 框架缺少的设计约束:复杂度与构建内容成正比,而非与潜在需要成正比。
  • 按需生成胶水代码并与应用代码分离,消除了搭建重框架最大的迁移成本。
  • 将整个应用编译为可部署的单个二进制文件,发挥了 Go 的优势,并给出了具体的、记忆点十足的价值主张。
  • 15 分钟构建 HN 克隆的演示,视觉上证明了核心价值,让这一抽象框架论点易于评估和传播。

做出来什么

The Show HN post drew 531 points and 99 comments on 2022-05-13, with Mueller answering deep architecture questions on server-side rendering, V8-in-the-binary and persistence plans. The repository later showed 5.6k stars, 175 forks and 491 commits, plus real-world projects including Bass Loop (a CI/CD stack) and Bud's own welcome page written in Bud.

他们自己的页面Bud on GitHub: source, demo and docs

可以借走的

借鉴成熟生态系统的渐进式增强规则:从极简起步,仅在功能需要时生成繁琐的连接代码,让复杂性随你构建的内容动态增减。

后来

Bud 在 2022 年发布后保持开源、MIT 许可的发展:承载 Show HN 的仓库页仍列有同样的目标——仅按需生成文件、现代 JS 框架般的体验、以代码而非配置扩展、单一二进制构建。它积累了 491 次提交、5.6k 星和 175 个 fork,README 列出了诸如 Bass Loop 和 Bud 自身欢迎页等真实项目。创始人持续参与发布讨论,回答关于服务端渲染以及在模型与持久化方面的规划。

资料来源

发现哪里写错了?告诉我们。

轮到你了

你刚读完一个点子。把你手上的题目说出来,看看谁接过同样的题。

免费账号 · 3 次免费提问 · 不用绑卡

相关案例