乐趣区

关于前端:维护一个开源项目25年是什么体验

大家好,我是卡颂。

最近看公众号后盾用户数据,关注我的敌人一多半(58%)是 26~35 岁。

这个年纪,可能曾经被社会捶过几年,对 胜利 一词有了本人的了解。

尽管不晓得什么样的人生才是胜利的人生,然而有这样一个开源我的项目:

  • 开发至今,保护了 25 年
  • 寰球总下载量大略为 100 亿次(寰球网民均匀每人下载 2.5 次)

置信你也会批准:这是个胜利的开源我的项目,他就是赫赫有名的curl

接下来让咱们看看,是什么样的品质能力让一个我的项目在历史的长河中积淀下来?

后果很可能和你的直觉相同哦~

curl 的故事

curl是一款申请数据的命令行工具,反对多种协定。它的名字是 client + url 的意思(客户端的 url 工具)。

作者是Daniel Stenberg

在 90 年代初期,正是IRC(一种聊天协定,能够了解为命令行版本的 QQ)凋敝的期间。

Daniel和敌人开发了一款 IRC 聊天机器人。接下来,他决定为机器人减少 汇率兑换性能

为此,须要通过 http Get 申请调用汇率接口。为了实现这个性能,Daniel应用了一款名为 HTTPGet 的工具。

繁多的公共接口显然是不牢靠的。不久后 Daniel 又发现了一台提供货币汇率接口的 Gopher 服务器,以及一台 FTP 服务器。为此,他必须在原有工具根底上反对这两种协定。

随着反对的协定越来越多,HTTPGet这个名字曾经徒有虚名。于是,Daniel将其改名为curl

在随后的 20 多年里,Danielcurl 的实现推广到全平台,围绕 获取数据 这一需要,一直迭代。

这就是 curl 的故事。

做工夫的敌人

不久前 Daniel 在推上谈到:

每天在家人劳动后,我会持续解决 curl 的工作 1~2 小时。与日俱增,在 curl 上我大略花了 1.5w 小时

作家 Malcolm Timothy Gladwell 在《异类》中提出 一万小时实践

人们眼中的蠢才之所以卓越不凡,并非天资超人一等,而是付出了继续一直的致力。1 万小时的锻炼是任何人从平庸变成巨匠的必要条件

Daniel 作为专家的专业性促成了 curl 的胜利吗?显然他并不这么认为。

在谈到 curl 为何能长期取得社区认可时,Daniel总结了两点因素:

一致性

很多库作者将 curl 作为底层依赖。他们之所以这么做,是因为 curl 做出了 一致性 承诺,并在漫长的岁月中恪守了这个承诺。

  • curl会不会忽然没人保护了?我承诺了不会,我恪守承诺
  • 这个 API 会不会忽然废除了?我承诺了不会,我恪守承诺

如果一个我的项目在 25 年间都恪守了承诺,那么大概率在将来他也是牢靠的。

当初很多大厂造的轮子,理念很棒。可一旦须要投入生产时就会让人犯嘀咕:这会不会是个 KPI 我的项目?要是当前没人保护了怎么办?

高速迭代的互联网,一致性 是稀缺的。

没有蠢才,只有保持

很多我的项目维护者不喜爱新人就 拼写错误 这样的问题提 PR,认为这是水PR 行为。与他们相同,Daniel很激励这种行为。

在他看来,大部分人(包含他本人)都是普通人,没有谁能一上手就对我的项目一目了然。从简略的 PR 开始是理智的抉择。

可能这个 PR纠正拼写错误 ,下个PR 就是 批改测试用例 ,再下一个就是批改我的项目bug 了。

久远看,胜利的我的项目没有蠢才,只有默默保持的普通人。

强如正义联盟还有战力值只有 5 的蝙蝠侠呢【手动狗头】

慢下来,一步步来

互联网真是太快了,薪资长得快,头发掉得快,老人淘汰快。

这让人产生了一个感觉:当码农就是用命换一笔快钱。

对普通人来说,年薪百万不是常态,996 也不是常态。这些都只是时代背景下,人生历程的一小站。

如果在互联网这么强调 精英范 的畛域,最胜利的产品反而是一群普通人、靠漫长的岁月积攒起来的。

那咱们为什么不试着和工夫做敌人?放下焦虑,你超棒的。

退出移动版