硅谷和國(guó)內(nèi)的 iOS 開(kāi)發(fā)到底有何不同?

前段時(shí)間在國(guó)內(nèi)各大互聯(lián)網(wǎng)公司轉(zhuǎn)了一圈。與各位 iOS 業(yè)界大佬交流了之后,深感國(guó)內(nèi)變化之大,敬佩諸位國(guó)內(nèi)開(kāi)發(fā)者的實(shí)力和韌勁。除此之外,我還發(fā)現(xiàn)硅谷和國(guó)內(nèi)的 iOS 開(kāi)發(fā)還是差別很大,且聽(tīng)我慢慢道來(lái)。

國(guó)內(nèi)使用 SDK 和 硅谷大為不同

首先是最本質(zhì)的三個(gè)不同:國(guó)內(nèi)的支付使用的是支付寶和微信,地圖使用的高德和百度導(dǎo)航,國(guó)內(nèi)的第三方登錄主要是微博,微信,和 QQ。而硅谷的在線支付方式是信用卡,地圖使用的是蘋果自帶亦或是谷歌地圖,第三方登錄就是 Facebook 和 Twitter。

這三點(diǎn)不同意味著開(kāi)發(fā)引入的 SDK 完全不同。在 Uber 被滴滴收購(gòu)前,其美國(guó)的 App 和 中國(guó)的 App 完全是兩個(gè)不同的 App -- 因?yàn)榇罅?SDK 不同導(dǎo)致架構(gòu)和接口需要重新設(shè)計(jì)。再加上國(guó)內(nèi)對(duì)于數(shù)據(jù)的嚴(yán)格掌控,很多 App 后臺(tái) API 的設(shè)計(jì)需要單獨(dú)處理,流量需要導(dǎo)入到中國(guó)境內(nèi)的數(shù)據(jù)中心,App 的界面亦要根據(jù)中國(guó)的網(wǎng)速針對(duì)優(yōu)化。

另外,國(guó)內(nèi)開(kāi)發(fā)經(jīng)常大量的調(diào)用第三方的庫(kù)。而硅谷的大廠開(kāi)發(fā)基本都是自己開(kāi)發(fā)內(nèi)部的工具和庫(kù)??赡苷{(diào)用開(kāi)源庫(kù)確實(shí)比較方便快捷,但是硅谷的大廠考慮更多的是版權(quán)和代碼質(zhì)量的問(wèn)題,所以在開(kāi)源或是使用第三方庫(kù)方面格外謹(jǐn)慎。

國(guó)內(nèi)注重 HotPatch,硅谷注重原生態(tài)

據(jù)我所知,國(guó)內(nèi)開(kāi)發(fā)對(duì)于熱補(bǔ)丁情有獨(dú)鐘。滴滴就做出了 DynamicCocoa,通過(guò)轉(zhuǎn)化 Objective-C 到 Javascript 進(jìn)行熱修復(fù);餓了么大量使用 Weex 進(jìn)行移動(dòng)開(kāi)發(fā);美團(tuán)也已經(jīng)在主 App 里嘗試了 React Native。

相比硅谷,也只有少量小公司開(kāi)始嘗試 React Native。其主要原因也是 App 需求相對(duì)簡(jiǎn)單,跨平臺(tái)開(kāi)發(fā)相對(duì)輕松。大公司幾乎很少使用,就連 RN 的母公司 Facebook 也只是在1到2個(gè)小 App 上使用了 React Native。

我個(gè)人推測(cè)這其中的主要原因在,國(guó)內(nèi)開(kāi)發(fā)需求量又多又急,加上前些年 App Store 的審核非常之慢,所以國(guó)人在開(kāi)發(fā)上才對(duì) HotPatch 趨之若騖。

國(guó)內(nèi)要求快速迭代,硅谷要求測(cè)試覆蓋

與百度的開(kāi)發(fā)者交流中,他們經(jīng)常提到“業(yè)務(wù)太多,根本來(lái)不及做”。所以基本上會(huì)有一個(gè)單獨(dú)的 QA 團(tuán)隊(duì)負(fù)責(zé)測(cè)試,而開(kāi)發(fā)者則是不停的寫新的代碼。

這一點(diǎn)與硅谷在對(duì)測(cè)試的態(tài)度上大相徑庭。Google 對(duì)于代碼的測(cè)試覆蓋率有嚴(yán)格的要求和審核標(biāo)準(zhǔn),Yahoo! 甚至在開(kāi)發(fā)中要求采用 TDD (Test-Driven Development),F(xiàn)acebook 所有的代碼也都用持續(xù)集成測(cè)試來(lái)保證其質(zhì)量。在 《The Clean Coder》一書(shū)中,作者也多次強(qiáng)調(diào)代碼質(zhì)量的測(cè)試的重要性。我之前在工作中,有時(shí)候甚至出現(xiàn)寫的測(cè)試代碼數(shù)量超過(guò)開(kāi)發(fā)代碼的時(shí)候。

造成這一差異的本質(zhì)在于兩國(guó)競(jìng)爭(zhēng)模式的不同。中國(guó)人口巨大,競(jìng)爭(zhēng)對(duì)手太多,所以資本的打法就是快速迭代,小步快跑,擠垮對(duì)手。面對(duì)這樣的模式,中國(guó)的工程師也只能暫時(shí)放棄完善測(cè)試代碼,將有限的精力集中在開(kāi)發(fā)上。

Swift 與 Objective-C 的爭(zhēng)論一直不絕于耳

國(guó)內(nèi)和硅谷對(duì)于 Swift 的看法大同小異

前段時(shí)間唐巧老師發(fā)表了他對(duì) Swift 的看法,他認(rèn)為 Swift 是未來(lái),但是現(xiàn)在不太完善,要“再等等”。無(wú)獨(dú)有偶,卓同學(xué)發(fā)文則認(rèn)為,Swift 已經(jīng)開(kāi)始流行起來(lái),應(yīng)該“快上車”。

我在這半個(gè)月杭州、北京、上海之行中發(fā)現(xiàn),幾乎大廠開(kāi)發(fā)都用 Objective-C,他們對(duì) Swift 依然心存芥蒂;而小公司和獨(dú)立開(kāi)發(fā)者,則是對(duì) Swift 充滿期待。原因很簡(jiǎn)單,大廠需要的是穩(wěn)定的產(chǎn)品來(lái)維持口碑,對(duì)于 Swift 這樣重寫并不能帶來(lái)巨大好處的冒險(xiǎn)之舉自然是諱莫如深。而這個(gè)原因?qū)τ谛」净蛘邆€(gè)人來(lái)說(shuō)并不成立。

其實(shí)國(guó)外對(duì)此也一樣。唯一不同的是,可能硅谷要略微激進(jìn)一點(diǎn) -- 大廠已經(jīng)開(kāi)始部分嘗試 Swift 了。Google 在某些新產(chǎn)品和新功能上已經(jīng)開(kāi)始用 Swift,F(xiàn)acebook 和 Twitter 都放出了自己的 Swift iOS SDK;LinkedIn 開(kāi)源了 LayoutKit,Lyft 開(kāi)源了 mapper,而這些都是用 Swift 寫成。

就連硅谷的獵頭都開(kāi)始急著尋找擁有 Swift 開(kāi)發(fā)技能的工程師了,而就在去年,Swift 在職場(chǎng)上還是被作為一項(xiàng)可有可無(wú)的加分技能來(lái)對(duì)待。

雖然硅谷在 Swift 上走在了前面,但是不得不說(shuō)開(kāi)創(chuàng)性的嘗試總是要付出代價(jià)的。當(dāng)年 Uber 在開(kāi)發(fā)新 App 時(shí)采用了全 Swift 模式,結(jié)果因?yàn)?Swift 編譯速度不佳和語(yǔ)言功能不全,開(kāi)發(fā)效率大打折扣,內(nèi)部工程師在采坑過(guò)程中無(wú)比頭疼。所以 Swift 雖好,可不要貪快哦。

國(guó)內(nèi) iOS 職場(chǎng)與硅谷有很大差別

這個(gè)話題有點(diǎn)大,我從四個(gè)方面來(lái)說(shuō)。

  • 兩者對(duì)于 iOS 工程師的需求量不同

國(guó)內(nèi)現(xiàn)在處于一個(gè) iOS 工程師飽和的狀態(tài),水平一般的 iOS 開(kāi)發(fā)者多如牛毛,而高手卻屈指可數(shù)。這就造成了一個(gè)情況,公司招不到素質(zhì)過(guò)硬的工程師,而很多新手找不到工作。

作為生活在美帝多年的土包子,我對(duì)這個(gè)問(wèn)題百思不得其解。因?yàn)楣韫纫恢笔浅绦騿T的天堂,一個(gè)美帝計(jì)算機(jī)專業(yè)的畢業(yè)生,可以隨便就找到一個(gè)年薪10萬(wàn)刀的工作。在這之中,iOS 工程師更是奇貨可居。按照道理來(lái)講,美國(guó)這么多年大量輸出計(jì)算機(jī)本科生,硅谷居然還缺工程師,而且連剛畢業(yè)的新手都搶手。為什么國(guó)內(nèi)反而卻飽和了呢?

這個(gè)問(wèn)題直到我遇到了滴滴的 Sunny 才想明白。

他告訴我,國(guó)內(nèi)有 iOS 培訓(xùn)班這種東西。這樣,工程師可以流水線快速訓(xùn)練出來(lái),他們會(huì)帶你刷面試題,教你如何拿 Offer,甚至幫你把 Github 和 博客都弄好。再加上前段時(shí)間中國(guó)處于全民創(chuàng)業(yè)的狂潮之中,各種初創(chuàng)企業(yè)對(duì) iOS 工程師需求巨大,導(dǎo)致這種培訓(xùn)班居然大行其道。而現(xiàn)在市場(chǎng)回歸理性,對(duì)于程序員的需求量減少,于是很多剛剛流水線出來(lái)的 iOS 菜鳥(niǎo)自然無(wú)處可去。

  • 產(chǎn)品經(jīng)理 (PM/PD)素質(zhì)的差異

之前老聽(tīng)說(shuō)國(guó)內(nèi)程序員追著產(chǎn)品經(jīng)理砍的故事,我只當(dāng)成是個(gè)事故,一笑置之。因?yàn)楣韫鹊漠a(chǎn)品經(jīng)理大多和程序員和睦相處,至少在我印象中,工程師和產(chǎn)品經(jīng)理的矛盾要遠(yuǎn)遠(yuǎn)小于上下級(jí)的矛盾。

后來(lái)發(fā)現(xiàn),在國(guó)內(nèi),我以為的并不是我以為的。

國(guó)內(nèi)產(chǎn)品經(jīng)理基本上就是剛畢業(yè)的新人,沒(méi)有什么實(shí)戰(zhàn)經(jīng)驗(yàn),有些都不懂技術(shù)。而最重要的開(kāi)發(fā)需求和任務(wù)往往是他們提出和分配。這就造成了一個(gè)奇怪的現(xiàn)象:一群經(jīng)驗(yàn)豐富的 iOS 專家,團(tuán)結(jié)在一個(gè)不怎么懂技術(shù)的產(chǎn)品經(jīng)理周圍,做開(kāi)發(fā)。

硅谷則對(duì)產(chǎn)品經(jīng)理要求頗為嚴(yán)格:口才和技術(shù)是兩個(gè)必備的技能,很多產(chǎn)品經(jīng)理甚至是資深程序員轉(zhuǎn)型。一般產(chǎn)品經(jīng)理也是作為部門經(jīng)理的接班人來(lái)培養(yǎng)的。

  • 面試流程不一樣

我說(shuō)實(shí)話,國(guó)內(nèi)大廠考得要比硅谷難。我回國(guó)之前就發(fā)現(xiàn)騰訊筆試好幾張卷子真不好做,面試考得也異常全面。百度甚至考出了紅黑樹(shù)這種變態(tài)的玩意,還有公司問(wèn) autorelease pool 是用什么數(shù)據(jù)結(jié)構(gòu)寫的。

硅谷每個(gè)公司的面試流程則不盡相同。谷歌是比較極端的考 4 到 5 輪算法,亞馬遜與此類似,這種標(biāo)準(zhǔn)化流程讓這兩家損失掉很多優(yōu)秀的工程師 -- Homebrew 的作者 Max Howell 因?yàn)椴粫?huì)在白板上翻轉(zhuǎn)二叉樹(shù)而被谷歌拒絕的事情現(xiàn)在還被大家拿來(lái)吐槽。相比 Facebook 的面試還比較靠譜,一輪交流,問(wèn)問(wèn)簡(jiǎn)歷和文化;一輪系統(tǒng)設(shè)計(jì);兩輪算法。我個(gè)人面過(guò)最實(shí)際的還是 Uber 的 iOS 面試:一輪交流,一輪系統(tǒng)設(shè)計(jì),一輪上機(jī)實(shí)戰(zhàn)寫 App,一輪算法。

總體來(lái)講,國(guó)內(nèi)面試偏向考試,難度大,要求全面。硅谷的面試側(cè)重算法和基本功,有時(shí)候脫離實(shí)際。

  • 職業(yè)走向

據(jù)我所知,國(guó)內(nèi)很少有干了10年以上的開(kāi)發(fā)者,很多程序員干了幾年就做管理了。這可能是因?yàn)閲?guó)內(nèi)程序員確實(shí)很辛苦,阿里這樣的大廠996都是常態(tài),在這種情況下碼農(nóng)、搬磚這類熱詞應(yīng)用而生。但同時(shí)中國(guó)很多優(yōu)秀的開(kāi)發(fā)者,可能是前端、后端、移動(dòng)端都有幾年經(jīng)驗(yàn),技能十分全面扎實(shí)。

而硅谷有很多寫了10年以上經(jīng)驗(yàn)的極客程序員,他們熱衷寫代碼卻不喜歡管理工作。我在美帝待得這幾年,幾乎沒(méi)有聽(tīng)到國(guó)外程序員抱怨自己辛苦,像Google,F(xiàn)acebook 這樣成熟的美國(guó)互聯(lián)網(wǎng)公司很少出現(xiàn)加班情況。硅谷的開(kāi)發(fā)者可能一輩子只鉆研一塊,比如只會(huì)前端或者后端。但這并不妨礙他們?cè)谙矚g的領(lǐng)域成為超級(jí)專家,這也十分受人敬仰。

總結(jié)

雖然中國(guó)的網(wǎng)民數(shù)量在 2008 年就超過(guò)了美國(guó),盡管中國(guó)的互聯(lián)網(wǎng)公司是唯一同美國(guó)一樣使用10億作為單位來(lái)衡量業(yè)績(jī)的存在。但是不可否認(rèn),由于政策和文化的巨大差異,導(dǎo)致兩國(guó)的開(kāi)發(fā)環(huán)境有巨大的差別。本文拋磚引玉,疏漏之處在所難免,我衷心希望國(guó)內(nèi)外能夠取長(zhǎng)補(bǔ)短,因?yàn)榛ヂ?lián)網(wǎng)終將拉平整個(gè)世界。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 早晨五點(diǎn)起床 太陽(yáng)還沒(méi)升上來(lái) 東邊的地平線 蒙蒙亮 仿佛宇宙初開(kāi)萬(wàn)物混沌的那種渺茫 走在鄉(xiāng)間的小路上 地里的莊稼和...
    大鯨抱抱閱讀 286評(píng)論 0 0
  • 問(wèn)題:怎樣管理自己的生活與欲望? 這是我一直非常困擾的問(wèn)題,對(duì)生活豐富的追求、對(duì)自我管理的戒律,這兩個(gè)總是自相矛盾...
    維京閱讀 180評(píng)論 0 0
  • 【視也導(dǎo)讀】去年一整年,明勢(shì)投出了40個(gè)科技項(xiàng)目,明勢(shì)資本的創(chuàng)始合伙人黃明明認(rèn)為,這一波人工智能的浪潮會(huì)有泡沫,但...
    視也閱讀 343評(píng)論 0 0
  • Colorfy 是一款專門為成年人準(zhǔn)備的涂色應(yīng)用,讓你重新體驗(yàn)小時(shí)候涂色的樂(lè)趣,即使沒(méi)有繪畫(huà)基礎(chǔ)也能畫(huà)出美輪美奐的...
    最美應(yīng)用閱讀 5,067評(píng)論 3 27

友情鏈接更多精彩內(nèi)容