Redis作者antirez:开源维护者的挣扎
這兩天,一篇名為《開源維護者的掙扎》的文章被迅速頂至 Hacker News 首頁,這是 Redis 作者?antirez?發(fā)布的最新博客。
幾個月前,一名開源項目的維護者向 antirez 發(fā)郵件,傾訴自己苦心維護項目多年,這或多或少帶來了一些心理上的負擔(dān),因此特來尋求建議。
antirez 表示談不上給出建議,但可以寫一篇博客文章來分享對此事的看法。經(jīng)過反復(fù)的思索和自我分析,他坦承“維護一個開源項目會帶來樂趣”,但“也有消極的一面”。
接著,antirez 從以下幾方面對此展開描述,下邊直接采用第一人稱:
泛濫效應(yīng)
當(dāng)我在項目的早期收到關(guān)于 Redis 的電子郵件時,仍然有足夠的時間,能夠?qū)W⒂趯Ψ皆谙⒗镌噲D表達的內(nèi)容,并在仔細考慮后回復(fù)自己的真實想法。
然而,當(dāng)一個項目達到像?Redis 這樣的流行程度,并且人與人之間的交流因為新的社交工具而變得更為容易時,作者收到的消息、issue、PR 和建議的數(shù)量也將呈指數(shù)增長。
隨之出現(xiàn)一個普遍性問題,至少從 Rsdis 的情況來看是這樣,即沒有足夠多合格的人去查看并處理社區(qū)中的這些信息。
大多數(shù)人試圖以錯誤的方式解決它:原帖發(fā)布兩周后若無回復(fù)就關(guān)閉 issue、關(guān)閉所有不明確的 issue,以及其它類似直接把郵件列表全部標(biāo)記為已讀的做法。
事實上,處理社區(qū)反饋必須要花費足夠的時間,否則只能“假裝”項目沒有未解決的問題。為開源項目的每個子系統(tǒng)配備全職工作人員是奏效的,但很難實現(xiàn)。
那么接下來會發(fā)生什么?你將開始考慮哪些該被優(yōu)先處理而哪些不是,你將因為自己忽略了太多事物和人而感到不安,貢獻者也會認為你是一個漠不關(guān)心的人。這種情形實在是很復(fù)雜。
通常來說,應(yīng)該主要先解決關(guān)鍵問題,忽視所有新的東西,因為新的東西還未能進入核心,誰想擁有一個伴隨著更多 PR 和 issue 的代碼庫呢?
角色轉(zhuǎn)換
Redis 流行起來后,我的工作更多地轉(zhuǎn)變?yōu)榱瞬榭?PR 和 issue。這其中確實有些人會比我做得好,但大多數(shù)人的貢獻僅處于平均水平,只是解決給定問題罷了。
當(dāng)我設(shè)計?Redis 時,我傾向于將它視為一個整體,畢竟這么多年來一直在寫這個東西。所以現(xiàn)實是,擅長的東西往往不再有時間去做。
我的解決方法是,給自己幾周時間停止查看 PR 和 issue,轉(zhuǎn)而去編程或者設(shè)計,這才是我真正喜愛和享受的。但這反過來又給我?guī)砹烁蟮男睦韷毫?#xff0c;只在做自己喜歡的事情時做得很好,令人感覺很糟糕。
時間
長時間在一個項目上工作有兩個問題,至少對我而言是這樣。
第一個問題是,在?Redis 之前,我從未有過在每個工作日都工作的經(jīng)驗。我總是干一周,停兩周,接著再干一個月,然后消失兩個月。做創(chuàng)造性工作需要充電,以獲得新的能量和想法。
但開始收到在?Redis 工作的報酬后,道德規(guī)范我不能再依照過去的模式,所以我強迫自己按照正常的時間表工作。這對我來說無比掙扎,而且我確信自己做得比實際能做到的要少。
目前仍未找到解決方法,跟公司申請回到原先的工作模式是不管用的,因為社區(qū)的運作方式如此。
另一個問題是,從精神上講,在同一個項目中進行大量工作也是一件復(fù)雜的事情。我過去常常每六個月?lián)Q一次項目,而如今十年來都在做同一個項目。
我試圖通過在 Redis 中部署子項目來留存創(chuàng)造力,先后做了?Cluster、HyerLogLogs 和一個已放棄的磁盤存儲項目,現(xiàn)在在做第四個。
不過,最終還是要回到 issue?和 PR 頁面,每天重復(fù)同樣的工作。
恐懼
我每天都在害怕自己失去對 Redis 的技術(shù)領(lǐng)導(dǎo)力,不是因為我認為自己在設(shè)計和發(fā)展 Redis 方面做得不夠好,而是因為我的方式與大多數(shù)用戶想要的,以及大多數(shù) IT 人員對軟件的信仰不一致。
因此,我不得不在我認為的優(yōu)秀設(shè)計、功能集、開發(fā)速度、項目規(guī)模,以及大多數(shù)用戶所期望的內(nèi)容之間保持平衡。
幸運的是,有一定比例的 Redis 用戶完全理解 Redis 的方式,所以我至少時不時會得到一些安慰。
摩擦
盡管我認為程序員中的好人占比多過其他領(lǐng)域,但總還是有一些混賬。作為一個受歡迎的開源項目的領(lǐng)導(dǎo)者,將不得不面對這些人,這可能是我在 Redis 開發(fā)過程中遇到的最緊張的事情之一。
徒勞
我相信軟件雖然很棒,但不會像一本存活了幾個世紀的書一樣偉大,這絕不是因為它本身不好,而是因為其中的副作用,并且,它終將被更有用的軟件替換掉。因此有時我會覺得自己做的一切終將都是徒勞的。
只停留在軟件編寫本身,而不思考軟件“大創(chuàng)意”的人,真的能創(chuàng)造新的標(biāo)志嗎?
總的來說,我能夠從事自己真正熱愛的事情多年,并且它給我?guī)砹伺笥选⒄J可和金錢,所以這算不上是糟糕的交易。
然而,我完全理解,一旦項目開始流行,人們就會為了維持生計而掙扎。這篇文章專門寫給你們。
開源中國征稿啦!
開源中國 www.oschina.net 是目前備受關(guān)注、具有強大影響力的開源技術(shù)社區(qū),擁有超過 200 萬的開源技術(shù)精英。我們傳播開源的理念,推廣開源項目,為 IT 開發(fā)者提供一個發(fā)現(xiàn)、使用、并交流開源技術(shù)的平臺。
現(xiàn)在我們開始對外征稿啦!如果你有優(yōu)秀的技術(shù)文章想要分享,熱點的行業(yè)資訊需要報道等等,歡迎聯(lián)系開源中國進行投稿。投稿詳情及聯(lián)系方式請參見:我要投稿
推薦閱讀
PHP 早已不是十年前的鳥樣
微軟全都要!Win10 引入真 Linux 內(nèi)核
Flutter 也全都要,宣布支持多平臺
什么便捷、功能和安全,Chrome 一把梭
微軟開源 Bing 搜索背后的關(guān)鍵算法
開源嗎?很難的哦↓↓↓
總結(jié)
以上是生活随笔為你收集整理的Redis作者antirez:开源维护者的挣扎的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 通俗易懂,什么是.NET Core以及.
- 下一篇: 黑科技抢先尝(续) - Windows