网易云信项望烽:开源最初都是被动的
開源不只是開源代碼,還包括長期的維護開源項目的過程。開源的核心和精髓是什么?能否引用延伸至其他領(lǐng)域?國內(nèi)開源技術(shù)發(fā)展現(xiàn)狀如何?面臨哪些挑戰(zhàn)?本文來自開源中國【開源訪談】和網(wǎng)易云信移動端技術(shù)專家項望烽的訪談記錄。
訪談實錄
Q:能否先介紹您自己和您的職業(yè)經(jīng)歷?
大家好,我叫項望烽,2009年畢業(yè)后進入網(wǎng)易,前期主要負責 pc 端的一些工作,11年以后負責移動端 IOS 開發(fā)。主要是負責網(wǎng)易泡泡、易信、云信等 IM 產(chǎn)品及 SDK 的開發(fā)。
Q:您所理解的“開源精神”是怎樣的?
我所理解的開源精神:一是分享,二是共同進步。
我個人開源的初衷非常簡單,就是覺得有趣。我將自己的 idea 做出來后開源和大家分享,然后收到一些反饋。大家(包括我)都可以從中學到知識。
Q:您開源過的項目有哪些?為什么想要開源呢?現(xiàn)在還有維護和更新嗎?
剛進入職業(yè)生涯時有很多不懂的地方,為了多學習多實踐,開源過一些小項目去驗證一些觀點。
其實一開始開源也是被動的,寫了這么多的代碼,需要有一個托管的平臺來存放。那時候做的比較多的只是開放了源代碼代碼。由于工作與時間的緣故,很多項目現(xiàn)在基本沒有維護了。
2011年負責移動端iOS 開發(fā)后,隨著經(jīng)驗的積累,有了更多的想法,想做更多更好的產(chǎn)品出來。一有 idea 時,會先上網(wǎng)搜集資料是否有類似的產(chǎn)品可供參考,很多時候都沒有找到。這時就想自己造一個出來。造出來發(fā)現(xiàn)功能、性能都不錯,于是開源出來和大家一起分享,大家就不用再重復造輪子。 ?
移動端 iOS 方面的話,開源了一些組建,比如符富文本的組件,目前都還有在維護。
Q:在參與開源工作的過程中有什么心得可以分享的嗎?
一是堅持。堅持不懈地維護開源項目。有一些項目開源后很流行,關(guān)注度和使用度很高。但由于一些原因,不再維護了,這個項目就直接沉寂了。
打個比方,IOS 開發(fā)方面很有名的開源 http 類庫—— ASIHTTPRequest。這是 IOS 開發(fā)者除蘋果自帶的項目外必用的一款框架。但,作者很快就停止了對這個項目的維護更新,不再支持后續(xù)高版本的 IOS ,這就導致之前使用了這個類庫的開發(fā)者只能將它舍棄掉,重新用別的來替換。
所以說,一個開源項目,特別是熱門的開源項目,無法長期堅持維護更新,造成的傷害和影響都是比較大的。
二是要有敢于開源與接受批評的勇氣,也即是說臉皮要厚。很多開發(fā)者的能力其實很強,可能是不夠自信,總覺得自己的水平與國外的開發(fā)者差距很大,不敢開源自己的項目。但其實,很多很好的想法和項目是值得開源的。
舉個勵志的例子,在 IOS 開源社區(qū)里面,有個中國開發(fā)者寫了一個項目。在很多大牛眼中,他的水平就相當于剛畢業(yè)的或者是初學者,根本不值一提。但這位開發(fā)者堅持做這個項目,不斷迭代、優(yōu)化。現(xiàn)在他的項目關(guān)注度和使用度很高。
一個不完美甚至很糟糕的項目,通過作者堅持的迭代、優(yōu)化逐步趨于完善,服務于更多的開發(fā)者。我想這也是開源的初衷所在吧。
Q:現(xiàn)在還有再做一些關(guān)于開源方面的事情嗎?
前段時間開源了 云信 SDK 的UI 組件源代碼,但不算完全的開源。現(xiàn)在把文檔、流程都更新上去了,算是真正開源了。然后發(fā)現(xiàn)關(guān)注的人還挺多的。
至于自己的一些開源項目,相對比較穩(wěn)定,沒怎么維護了。也有在做一些感興趣的項目,進度相對較慢。
Q:在您的觀察中,國內(nèi)外的開源社區(qū)有何異同?
開源是沒有國界的。尤其現(xiàn)在國內(nèi)不少開發(fā)者能力越來越強,代碼、文檔都寫的特別好,完全和國際接軌了。如果要說差異的話,我覺得國內(nèi)開發(fā)者對于開源的理解還不夠透徹。大部分開發(fā)者認為開源就是將源代碼開放,后續(xù)做一些維護即可,往往忘了開源項目中很重要的一個東西——文檔。文檔不完善或者完全丟失,開源后很多人也不知道如何用這個項目。因此,要想把一個開源項目做好,完整的文檔和后續(xù)的維護都是必不可少的。
Q:您認為目前國內(nèi)開源技術(shù)發(fā)展現(xiàn)狀如何?面臨哪些挑戰(zhàn)?
我感覺國內(nèi)很多做開源要么是利益驅(qū)動,將一些項目開源,以方便客戶更好的使用項目。要么是KPI 驅(qū)動,不少企業(yè)會在公司內(nèi)部建立任務,要求分享和開源。這樣,開源的本質(zhì)就變味了,一旦失去利益或者 KPI 的驅(qū)動,那些開源的項目就會停止,不再維護,長遠來說,對于有需要的用戶而言傷害挺大的。
開源的精髓是分享,發(fā)自內(nèi)心想要去做這些事情。就目前這種由外部驅(qū)動力迫使的項目開源生命周期不長。我覺得解決這個問題的關(guān)鍵在于解決開源驅(qū)動力的來源。
但是個人項目的問題在于,由于各種外在原因,個人項目不太穩(wěn)定。比如 nodejs 社區(qū)的 Express.js 這個第三方庫基本算是 nodejs 的標準庫了,但是隨著作者的工作和興趣的原因,他開始轉(zhuǎn)向了 Go 語言,也就不再繼續(xù)維護這個第三方庫了。所以我覺得,如果有一個自發(fā)的組織性的機構(gòu)或團體來做這些事情會比較好。
Q:開源的核心與精髓能否引用延伸至其他領(lǐng)域?
剛剛說到,開源的精髓是分享。關(guān)于分享,目前很多領(lǐng)域都有這種形式存在,和開源的精髓是相關(guān)聯(lián)的。比如滴滴、uber等,可以說開源的一個延續(xù)。每個人貢獻一些,加上一些微創(chuàng)新,就有了一種新的模式,就會變得越來越好。
Q:近期您有沒有接觸新的開源技術(shù)?有哪些新技術(shù)或者新項目可以推薦給大家的?
主要接觸的是iOS 方面的。iOS 已經(jīng)過了最火爆的階段,目前趨于穩(wěn)定。也還有人有新的 idea,會去做一些產(chǎn)品出來。
在這里推薦一款 iOS 的開源項目給大家。是國內(nèi)開發(fā)者開源的YYKit 。它是一個非常龐大,功能特別豐富的iOS 組件。對于剛?cè)腴T的 iOS 開發(fā)者提高能力有很大的幫助。它的 UI 組件庫非常完善,很多知識點,難點問題用極其優(yōu)雅的方式解決,是非常值得學習的。
網(wǎng)易云信∣真正穩(wěn)定的IM云服務
http://netease.im ?長按識別,關(guān)注精彩
總結(jié)
以上是生活随笔為你收集整理的网易云信项望烽:开源最初都是被动的的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 网易云首届渠道大会:多媒体通信助力互联网
- 下一篇: 网易云信3.3.0版本更新啦!