iOS大牛分享經(jīng)驗

本期的開發(fā)者訪談嘉賓曾憲華,曾就職于廣州多玩信息技術(shù)有限公司岔乔,也許你不知道的是拇砰,多玩是國內(nèi)少有的擁有多個iOS開源項目的公司(Github主頁)脱篙,而曾憲華(Github ID:xhzengAIB)是其中大部分項目的開發(fā)者和維護者。他在Github上面非吃檬活躍并扇,在過去的一年里有超過三分之二的時間每天都會提交代碼。今天就讓我們來和他聊一聊開源與個人和公司的故事抡诞。

受訪人:曾憲華(Jack)穷蛹,前多玩科技iOS開發(fā)工程師

CocoaChina:感謝您能和大家分享自己的寶貴經(jīng)驗。首先請您簡單介紹一下自己沐绒,以及如何開始iOS開發(fā)的呢俩莽?

曾憲華:Hi 大家好! 我是曾憲華乔遮,90年扮超,大家都叫我華仔,很高興可以和大家分享我的經(jīng)驗蹋肮,感謝Cocoachina給我這個機會出刷。這次分享僅僅只代表我個人經(jīng)驗中的理解喲!

我個人的興趣比較廣泛坯辩,比如攝影馁龟、LOL、跑酷漆魔、琢磨產(chǎn)品等等啦坷檩!生活在廣州這個“熱鬧”的城市里,腳步太快改抡,很難尋找一個適度的平衡點矢炼,一個360度的后空翻來釋放自己的壓力是必須的,所有的煩惱都拋到腦后咯0⑾恕(松)

說到工作句灌,在YY工作還是挺好的,我們的產(chǎn)品以簡單欠拾、迅猛的方式去占領(lǐng)市場領(lǐng)域胰锌,作為員工能得到的好處是:自我修養(yǎng)的提高、明確的目標以及快速前進動力藐窄。(特斯拉等著你來拿)

在多玩LOL盒子項目組的日子资昧,讓我感覺到無比的歡樂,每位同事對我的栽培都很用心荆忍,快樂的時光總是過的很快榛搔,我離開了YY诺凡,開啟另外一篇新章,如果日后能成功的話践惑,希望還能再次給大家分享經(jīng)驗腹泌。(壞笑)

說到如何開始iOS開發(fā),其實我是陰差陽錯的走上這條道路的尔觉,我在大學讀的并不是計算機專業(yè)凉袱,但是很仰慕喬布斯,購買了蘋果產(chǎn)品侦铜,從大三就開始自學iOS編程专甩,于是走上了這條不歸路。我覺得做iOS開發(fā)者的一個好處就是钉稍,不僅可以為公司創(chuàng)造價值涤躲,同時也可以為自己創(chuàng)造價值。

我個人的第一個代表作是:魔術(shù)App《Berglas Magic》贡未,雖然沒有太多的收入种樱,但是我并沒有失去信心,因為我一直都把iOS開發(fā)當作興趣來做俊卤。

我覺得編程是件非常有趣的事情嫩挤,你可以為你家人設(shè)計有實用性的App,也為心儀的人設(shè)計浪漫App消恍,再偉大一點岂昭,為社會設(shè)計有價值的App,這就是我堅持編程的動力狠怨。

CocoaChina:從您的Github上可以看到约啊,您參與開源非常積極,請問您參與開源的契機是什么佣赖?又是怎樣堅持下來的呢恰矩?

曾憲華:我參與開源的契機是由于Instagram的神話,我看中了一個來自San Francisco, CA開發(fā)者rFlex的開源庫SCRecorder茵汰,為了讓自己能獲取更多對Media Layer的知識枢里,所以先著手學習AV Foundation框架的知識孽鸡,當然Media Layer的知識不是僅此而已蹂午,AV Foundation只是冰山一角,略過.....(笑)

從我自己的體驗來看彬碱,參與開源項目對于程序員來講是一種高效豆胸、快速學習成長的方法,不僅如此巷疼,如果你是一個技術(shù)愛好者晚胡,參與開源項目你有可能找到自己的興趣、自己的優(yōu)勢等等,進而從事自己喜歡的工作估盘,那種感覺真的太爽了瓷患。

所以開源對我來講是一項人生投資,看好未來的趨勢遣妥,選擇合適的擅编、喜歡的、有興趣的事情去分享箫踩,你可以從中獲取無限的樂趣和價值爱态。

世界那么大,不可能每個人都認同你的看法和想法境钟,所以采用MVP方式去實現(xiàn)某些有用的交互锦担,把值得去投資的開源項目都當作一個產(chǎn)品去看待,讓其他開發(fā)者盡情地去使用慨削,這樣的過程會讓我感受到一份成就感與喜悅感洞渔,所以我會堅持通過開源的方式去感受。

CocoaChina:您在參與開源中有哪些收獲理盆?

曾憲華:事實上開源已經(jīng)逐漸成為評價程序員水平的標準之一痘煤,自Github流行以來,部分開發(fā)者能夠憑借他們的開源工作得到一個好的offer猿规,起碼我就是其中一名獲益者衷快。

另外參與開源在提升團隊協(xié)作能力上有著比較明顯的作用,一個有用的Issue反饋姨俩、有效的交流以及熱情的幫助都會讓我們成長蘸拔,從而運用到團隊協(xié)作中去,那這個收獲可見而知环葵,不但讓你在團隊中突出调窍,還能讓你認識很多大神。

另外對于一些工作繁忙的程序員张遭,平時忙于公司的項目邓萨,空余時間通過側(cè)面的形式(參與開源),也是提升自己整體能力一個很不錯的方式菊卷。

一部分開發(fā)者都比較不愛接觸外界缔恳,起碼以前的我是這樣的,開源可以讓我們認識業(yè)界里很多知名的大神洁闰,心里那個小激動扒干酢?對話了耶F嗣肌(笑)

參與開源讓我認識到很多知識淵博的開發(fā)者纸泄,他們的思維方式與做事方式非常不一樣赖钞,很值得我去學習。

總之開源提高了我的整體水平聘裁,我在參與開源中獲得很多收獲雪营,實在一言難盡。

CocoaChina:您在參與開源過程中有什么印象比較深刻的事情能分享一下嗎衡便?

曾憲華:MessageDisplayKit是我2014年5月份所寫的卓缰,由于當時IM產(chǎn)品非常火熱砰诵,所以著手開始研究業(yè)界知名產(chǎn)品微信征唬,用了10天左右的時間去模仿微信,發(fā)布后迅速的吸引大量的Star茁彭,并且連續(xù)一周在Github趨勢的Objective-C語言分類排名第一总寒,主要是針對國內(nèi)產(chǎn)品的需求。這里需要說明的是理肺,MessageDisplayKit主要思想來自JSQMessagesViewController摄闸,特別提出感謝。

參與開源的樂趣就是能把自己的優(yōu)勢或缺陷分享出去妹萨,并且會有人欣賞你年枕、糾正你、譴責你乎完。

在剛進入開源社區(qū)的初期熏兄,我也犯了不少錯誤,比如不是原創(chuàng)的開源項目并沒有注明來源树姨,我在此表示歉意摩桶,當然現(xiàn)在我已經(jīng)改正了,也希望大家不要犯這樣的錯誤帽揪。

之前業(yè)界里有些大神都在譴責我硝清,說我無恥、說我抄襲转晰,這個經(jīng)歷讓我感受非常深刻芦拿,但是我并沒有因為這些譴責而放棄開源之路,沒有人天生就懂很多知識查邢,模仿也是必經(jīng)之路蔗崎,我沒有計算機基礎(chǔ),問人沒人搭理侠坎,只得到一句話“去google吧蚁趁!”裙盾,那我只有通過閱讀別人的源碼進行不眠不休的修煉了实胸。

我這個人比較倔強他嫡,連續(xù)半年每天只休息3到4個小時,把應(yīng)該補上的理論基礎(chǔ)補上庐完、把所謂的設(shè)計模式都琢磨過后钢属,發(fā)現(xiàn)缺少Coding還是會有很大的問題,于是我改變了方式门躯,又是連續(xù)半年每天只休息3到4個小時淆党,開始把底層原理弄明白拧抖,再利用自己喜歡的語言(Objective-C)去實現(xiàn)一遍趣惠,咦!發(fā)現(xiàn)自己的水平提高了幾個階梯的幅度伏嗜,希望之門再此打開懂讯,謝謝那些譴責我的人荷憋,因為你們提醒了我,讓我知道自己缺少哪些層面上的知識褐望,與其同時我發(fā)布了30多個有用沒用的開源項目勒庄。

現(xiàn)在想起,還是挺恐怖的事情瘫里,后續(xù)已經(jīng)有能力進行挑選一些有實用性的方向來參與開源項目实蔽,而不是從數(shù)量入手了,以后我會專心維護有價值的開源項目谨读。

CocoaChina:您認為iOS開發(fā)方面有哪些適合開源的方向局装?

曾憲華:在不同的背景會有不同的看法,在我的經(jīng)驗里劳殖, 我覺得iOS開源項目有以下幾個方向可以參考的:

1.業(yè)界上主流產(chǎn)品的需求贼邓。比如最近彈幕視頻的技術(shù)實現(xiàn)。

2.自己喜歡又容易的交互闷尿。比如友好又生動的Loading頁塑径。為什么需要自己喜歡又容易的呢?沒有人可以給你動力和支持填具,內(nèi)心的痛苦與掙扎统舀,只能自己給自己療傷和鼓勵,所以做自己喜歡而又不難的事情劳景,能夠增加自己的自信心誉简,但是不要驕傲哦!(笑)

3.自我增值的知識層面盟广。比如Media Layer下的框架闷串,還有在直播中利用硬解碼與硬編碼提高直播流暢度等等。

4.幫助初學者筋量。一些技術(shù)指導和分享烹吵,比如如何使用CocoaPods碉熄、如何打包靜態(tài)庫等等。

另外還需要找到之前沒有人做過的東西肋拔,在我開發(fā)XHRefreshControl之前锈津,Github上沒有一個能高度定制、低耦合的下拉刷新和上拉加載更多的組件凉蜂,在研究網(wǎng)易新聞客戶端在數(shù)據(jù)處理方面的知識后琼梆,定制一個可預加載的、可定制下拉/上拉樣式的窿吩、可定制自動加載和手動加載方式的茎杂、可考慮網(wǎng)絡(luò)狀態(tài)切換的刷新組件。

結(jié)果纫雁,大多數(shù)國內(nèi)開發(fā)者給的反饋 :這個庫比較全面蛉顽、個性化定制比較完善等等的意見。

在YY開發(fā)新產(chǎn)品時會用到該組件之外先较,自己的個人項目也會用上携冤,并且會用自己的項目提前進行做白老鼠,對于各種情況考慮的比較全面闲勺,是個值得去維護開源項目曾棕。

CocoaChina:您認為在開源自己的項目時候有哪些經(jīng)驗和注意事項?

曾憲華:從我自己的經(jīng)驗教訓來看菜循,開源自己的項目需要注意以下幾點:

1.如果并非原創(chuàng)翘地,請注明來源。(我已經(jīng)有血一般的教訓了)

2.你要有一個完整的使用文檔癌幕。

3.你要有一個能全面詮釋該項目所有功能的Demo衙耕。

4.許可證,在哪些協(xié)議下進行公開勺远。

不要糾結(jié)于完美代碼橙喘,沒有誰可以編寫一個框架適用于所有產(chǎn)品的,以iOS SDK快速的更新頻率來看胶逢,我們不好做一個高度整合的開發(fā)框架厅瞎,更適合做一些小控件,沉淀到自己的知識系統(tǒng)初坠,因為很有可能Apple會在下一版本SDK為大家做了整合和簸。

CocoaChina:請問多玩對于開源的態(tài)度是怎樣的?對于公司商業(yè)項目和開源之間是如何處理的碟刺?

曾憲華:多玩對開源的態(tài)度還是比較友好的锁保,為開源界出一份力氣,只要不涉及到公司核心業(yè)務(wù)的情況下,會鼓勵員工去開源一些控件參與到開源社區(qū)中去爽柒。

其實一個成功產(chǎn)品的核心競爭力不在于那幾段代碼吴菠,而是團隊提供的資源、產(chǎn)品的方向霉赡、產(chǎn)品的創(chuàng)新才能成就一個成功的產(chǎn)品,但是法律上的矛盾還是避免為好幔托。

開源項目和商業(yè)項目在很多情況下都會有矛盾的時候穴亏,我的一種避免方法是,比公司思考的更多重挑,鍛煉自己長遠的眼光嗓化,預測到怎樣的產(chǎn)品需求是將來所必需的或者所必要的,提前開源出來谬哀。

還記得我說開源是一項投資嗎刺覆?你能預測到某個項目會在將來大量使用,那么基于你對開源的熱情史煎,提前去完成吧谦屑!或許會占用你工作之余的大部分時間,這還是很值得的篇梭,最起碼能避開一大堆問題氢橙。

比如彈幕視頻最近很流行,那么你如果在13年已經(jīng)開源了該方面的技術(shù)恬偷,難道公司還會在15年追究你的責任嗎悍手?

更何況公司也是通過擁有資源、渠道袍患、技術(shù)沉淀來成就一個成功產(chǎn)品坦康,而不是僅限于這些開源項目。

當然這些都是我一面之詞诡延,因為暫時還沒遇到商業(yè)糾紛上的事情滞欠,如果我說的有什么不對,還望各位大大指點和糾正肆良。

CocoaChina:多玩在您去之前有過iOS相關(guān)的開源項目嗎仑撞?能否和我們說一下多玩iOS開源具體是如何運作的?

曾憲華:在我加入多玩之前妖滔,已經(jīng)有一些內(nèi)部項目準備開源隧哮,不過當時僅在內(nèi)部使用。

多玩很重視員工水平的提高座舍,公司鼓勵員工寫技術(shù)博客沮翔,參與技術(shù)分享,另外參與開源也可以算是個人技術(shù)成長的一部分,因此在某一個季度中把開源項目列入KPI考核的一部分采蚀。

現(xiàn)在還有春哥疲牵、Pony都會不定時的提交代碼,最近Pony分享了VIPER相關(guān)的知識榆鼠,當然我也會繼續(xù)多玩開源項目的維護工作纲爸。

多玩對于技術(shù)部門的管理是非常扁平化的,在部門里妆够,不提倡區(qū)分誰是負責人识啦,更提倡的是大家共同進步。對于開源項目神妹,每個人會負責一部分颓哮,有人負責寫wiki、有人負責提交代碼鸵荠、有人負責幫忙解答Issue等等流程冕茅,基本上每個人都會參與到其中,每一個環(huán)節(jié)涉及到的同事蛹找,都必須了解該項目的主要思想姨伤,達到共同提高水平的目的。大家遇到問題的時候會非常熱情庸疾,我也會盡可能的幫他們解決問題姜挺。

CocoaChina:您對目前國內(nèi)iOS開源環(huán)境有哪些看法?

曾憲華:目前國內(nèi)的大多數(shù)開源項目基本上都是團隊內(nèi)部或者一個人在開發(fā)彼硫,很難得到PR炊豪,國內(nèi)對開源社區(qū)的熱情還不夠,開發(fā)者太低調(diào)拧篮。

一個開源項目出來词渤,如果大家使用時出現(xiàn)問題就會罵,關(guān)鍵是作者還不知道別人在責罵串绩,也就導致項目無法改進缺虐,我覺得被罵本身不是壞事,說明用戶還會去關(guān)注該項目礁凡,只是項目不夠完善的原因高氮。如果用戶能夠及時反饋在Issue上,項目能夠持續(xù)完善顷牌,對于開發(fā)者和項目本身還是非常有利的剪芍。

其實這些情況也不能完全怪大家,國內(nèi)和國外工作情況不一樣窟蓝,國外大部分人把編程當興趣來做罪裹,工作量也沒有國內(nèi)那么大,所以會有更多時間投入到開源項目中去。國內(nèi)經(jīng)常加班状共,難免會出現(xiàn)工作壓力大的情況套耕,結(jié)果導致大家對開源的熱情就大大降低了,更多的是把開源社區(qū)當作百寶庫峡继,遇到問題的時候冯袍,就去找現(xiàn)成的解決方法,而不是參與其中碾牌。如果不了解開源項目的情況下去使用康愤,那么如果有一天出現(xiàn)bug了,有可能出現(xiàn)比較難定位的時候小染,導致項目拖延翘瓮,那么就會開始責罵開源項目了贮折,所以我還是希望大家能積極參與到開源中去裤翩。

此外,大家還會比較傾慕于國外的開源項目调榄,原因很簡單踊赠,國外的開源項目比較穩(wěn)定,不會容易出現(xiàn)無人維護的情況每庆,使用者能找到安全感筐带。從這點來分析,少bug缤灵、多人維護的開源項目會收到歡迎伦籍,有更多的star。

另外腮出,我們還可以通過上線的App去驗證自己的開源項目是否穩(wěn)定帖鸦,只有自己把白老鼠做了,你才能去說服大家去使用嘛胚嘲!

比如國內(nèi)的PNChart的作者Kevin作儿、猿題庫YTKNetwork的唐巧通過自己上線的產(chǎn)品去驗證開源庫的穩(wěn)定性和能承載多大的用戶量等等。這些我都認為是非常好的馋劈。

一個成功的開源項目攻锰,僅有自己一個人往往是不夠的,通過多人合作的模式妓雾,把各自優(yōu)點發(fā)揮出來娶吞,共同去維護一個有價值的、可持續(xù)發(fā)展的開源項目械姻,最后得到收獲將遠遠大于付出寝志。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子材部,更是在濱河造成了極大的恐慌毫缆,老刑警劉巖,帶你破解...
    沈念sama閱讀 212,222評論 6 493
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件乐导,死亡現(xiàn)場離奇詭異苦丁,居然都是意外死亡,警方通過查閱死者的電腦和手機物臂,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,455評論 3 385
  • 文/潘曉璐 我一進店門旺拉,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人棵磷,你說我怎么就攤上這事蛾狗。” “怎么了仪媒?”我有些...
    開封第一講書人閱讀 157,720評論 0 348
  • 文/不壞的土叔 我叫張陵沉桌,是天一觀的道長。 經(jīng)常有香客問我算吩,道長留凭,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 56,568評論 1 284
  • 正文 為了忘掉前任偎巢,我火速辦了婚禮蔼夜,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘压昼。我一直安慰自己求冷,他們只是感情好,可當我...
    茶點故事閱讀 65,696評論 6 386
  • 文/花漫 我一把揭開白布窍霞。 她就那樣靜靜地躺著匠题,像睡著了一般。 火紅的嫁衣襯著肌膚如雪官撼。 梳的紋絲不亂的頭發(fā)上梧躺,一...
    開封第一講書人閱讀 49,879評論 1 290
  • 那天,我揣著相機與錄音傲绣,去河邊找鬼掠哥。 笑死,一個胖子當著我的面吹牛秃诵,可吹牛的內(nèi)容都是我干的续搀。 我是一名探鬼主播,決...
    沈念sama閱讀 39,028評論 3 409
  • 文/蒼蘭香墨 我猛地睜開眼菠净,長吁一口氣:“原來是場噩夢啊……” “哼禁舷!你這毒婦竟也來了彪杉?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 37,773評論 0 268
  • 序言:老撾萬榮一對情侶失蹤牵咙,失蹤者是張志新(化名)和其女友劉穎派近,沒想到半個月后,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體洁桌,經(jīng)...
    沈念sama閱讀 44,220評論 1 303
  • 正文 獨居荒郊野嶺守林人離奇死亡渴丸,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 36,550評論 2 327
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了另凌。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片谱轨。...
    茶點故事閱讀 38,697評論 1 341
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖吠谢,靈堂內(nèi)的尸體忽然破棺而出土童,到底是詐尸還是另有隱情,我是刑警寧澤工坊,帶...
    沈念sama閱讀 34,360評論 4 332
  • 正文 年R本政府宣布献汗,位于F島的核電站,受9級特大地震影響栅组,放射性物質(zhì)發(fā)生泄漏雀瓢。R本人自食惡果不足惜枢析,卻給世界環(huán)境...
    茶點故事閱讀 40,002評論 3 315
  • 文/蒙蒙 一玉掸、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧醒叁,春花似錦司浪、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,782評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至饮睬,卻和暖如春租谈,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背捆愁。 一陣腳步聲響...
    開封第一講書人閱讀 32,010評論 1 266
  • 我被黑心中介騙來泰國打工割去, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人昼丑。 一個月前我還...
    沈念sama閱讀 46,433評論 2 360
  • 正文 我出身青樓呻逆,卻偏偏與公主長得像,于是被迫代替她去往敵國和親菩帝。 傳聞我的和親對象是個殘疾皇子咖城,可洞房花燭夜當晚...
    茶點故事閱讀 43,587評論 2 350

推薦閱讀更多精彩內(nèi)容

  • 發(fā)現(xiàn) 關(guān)注 消息 iOS 第三方庫茬腿、插件、知名博客總結(jié) 作者大灰狼的小綿羊哥哥關(guān)注 2017.06.26 09:4...
    肇東周閱讀 12,066評論 4 62
  • 總有些人覺得自己優(yōu)于常人,狂妄自大辐董,他們享受并樂于得到別人的稱贊揭绑,為此他們要不斷顯示自己的能力,但是我看不慣他們的...
    一木世界閱讀 420評論 0 0
  • 不做勤奮的偷懶者閱讀 143評論 0 0
  • 最美的東西: 茶園的微風郎哭, 疏落的星辰他匪, 和那時那刻,在我身旁的你夸研!
    大叔的小公主閱讀 161評論 0 0
  • 姓名:葉銀芬 公司:寧波慈星股份有限公司 《六項精進》289期學員 反省二組 【知~學習】 《六項精進》大綱...
    Fanny_c554閱讀 226評論 0 0