档案库 · 产品创意 · 产品决策 · 2009–2016
Oh My Zsh:一坨个人zsh配置如何变成拥有900名贡献者的框架
同事不愿意复制一个连所有者自己都解释不清的.zshrc,所以Robby Russell把它打包成一个干净的开源项目——Oh My Zsh。
Robby Russell(创建者;Planet Argon工程副总裁)
当时的题目
In summer 2009 Robby Russell, a daily zsh user of more than three years at the Portland agency Planet Argon, kept urging coworkers to leave Bash. His own .zshrc had grown into a tangled rat's nest assembled from IRC friends' configurations — he could not explain about 30% of it — and the coworkers who knew that refused to copy/paste it.
它是怎么成立的
2009年夏天,Robby Russell,一位每天使用zsh超过三年的网页开发者,在终端帮同事调试时,发现自己习惯的快捷键在默认的Bash提示符下毫无反应。于是他一再劝波特兰的Planet Argon公司的同事改用zsh。他自己的.zshrc是从IRC上朋友分享的配置拼凑起来的,已经乱成一团——他承认不知道其中约30%的内容是干什么的——而知情的同事都不肯复制它。
Russell没有让大家粘贴他的文件,而是把配置重新组织成一系列较小的、可读的文件,写了安装说明,并于2009年8月28日把所有内容打包到一个新的git仓库。他的目标很朴素:让一两个团队成员用上他的脚本。一天之内,Planet Argon的每个开发者都从Bash迁移到了zsh。
项目随后根据功能请求不断成形。发布第二天,两个同事想定制提示符,Russell就引入了主题;随后外部拉取请求纷至沓来,不到一个月主题就达到十几个。安装器把安装简化成一条命令,升级脚本也跟着出现,大约三周后,自动更新器开始定期提示用户拉取更新——Russell称这是项目的转折点,因为它让几乎所有用户保持最新状态,并潜移默化地向他们介绍了新功能。十个月后,插件系统上线,内置五个插件。
到2016年3月,Oh My Zsh早已远超一家公司:约140个主题、214个插件、910名代码被接受的人,以及GitHub趋势shell仓库的榜首。Russell总结的开源八条经验——从小处着手、不要试图覆盖所有场景、让文档有人情味——将整个故事框定为一场玩乐,近七年后仍在积累势头。
妙在哪
- Russell的目标是让一两个同事用上他的脚本,所以项目一天之内就成功了,之后的都是自然增长。
- 把乱糟糟的配置重新组织成小而可读的文件,使其具有教育意义,而不是一个需要人们盲信的黑盒子。
- 安装器、升级脚本和自动更新器都围绕真实痛点——跳过的步骤、遗漏的更新——构建,而非抽象架构。
- 自动更新提示向用户展示变化,并潜移默化地介绍新功能,Russell称之为项目的转折点。
- 主题和插件把用户变成贡献者:五个内置插件通过来自世界各地的拉取请求增长到200多个。
做出来什么
Within a day the whole Planet Argon team had switched from Bash to zsh. By March 2016 Oh My Zsh counted about 140 themes, 214 plugins and 910 accepted contributors, sat atop GitHub's trending shell repositories, and the origin essay drew 380 Hacker News points — from a project meant to convert one or two coworkers.
可以借走的
开源项目要始于一个微小、可达成的真实用户目标,然后让功能请求和拉取请求来塑造它——自动更新能在不追着用户跑的情况下保持社区参与度。
后来
Russell从未想到Oh My Zsh能在近七年后仍保持势头。他承认引入第二位维护者晚了三到四年,并且一直把它当作玩乐,同时经营着他19人的Planet Argon公司。2012年,他将自动更新提示频率减半,同时仍将其作为默认设置;项目超过100个主题后,主题接纳被有意放缓——到2016年约有140个。当有人提出重大简化方案时,他婉拒了,同意与分叉团队分道扬镳。
资料来源
- D'Oh My Zsh — How I unexpectedly built a monster of an open source project
- D'Oh My Zsh — how I unexpectedly built a monster of an open source project (Hacker News discussion)
发现哪里写错了?告诉我们。
轮到你了
你刚读完一个点子。把你手上的题目说出来,看看谁接过同样的题。
免费账号 · 3 次免费提问 · 不用绑卡