維護一個開源項目25年是什麼體驗?

維護一個開源項目25年是什麼體驗?服務器

你們好,我是卡頌。markdown

最近看公衆號後臺用戶數據,關注個人朋友一多半(58%)是26~35歲。curl

這個年紀,可能已經被社會捶過幾年,對成功一詞有了本身的理解。工具

雖然不知道什麼樣的人生纔是成功的人生,可是有這樣一個開源項目:測試

  • 開發至今,維護了25年url

  • 全球總下載量大概爲100億次(全球網民平均每人下載2.5次)spa

相信你也會贊成:這是個成功的開源項目,他就是大名鼎鼎的curl命令行

接下來讓咱們看看,是什麼樣的品質才能讓一個項目在歷史的長河中沉澱下來?code

結果極可能和你的直覺相反哦~orm

curl的故事

curl是一款請求數據的命令行工具,支持多種協議。它的名字是client + url的意思(客戶端的url工具)。

做者是Daniel Stenberg

Daniel Stenberg

在90年代初期,正是IRC(一種聊天協議,能夠理解爲命令行版本的QQ)繁榮的時期。

IRC聊天室

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也不是常態。這些都只是時代背景下,人生歷程的一小站。

若是在互聯網這麼強調精英範的領域,最成功的產品反而是一羣普通人、靠漫長的歲月積累起來的。

那咱們爲何不試着和時間作朋友?放下焦慮,你超棒的。

相關文章
相關標籤/搜索