近日,一名 iOS 開發(fā)者 Chris Hulbert 在科技網(wǎng)站 splinter.com.au 上發(fā)表了一篇工作分享日志,與讀者們分享了他作為一名 iOS 開發(fā)者在谷歌工作的 3 個(gè)月經(jīng)歷。他在谷歌呆的時(shí)間雖然不長,只有三個(gè)月時(shí)間,但是他的個(gè)人經(jīng)歷值得我們了解。
以下是 Chris Hulbert 文章的主要內(nèi)容:
作為一名 iOS 開發(fā)者,我最近終止了和谷歌(悉尼)簽訂的 iOS 版谷歌地圖協(xié)調(diào)應(yīng)用合同,在我忘記這段經(jīng)歷之前之前,我想和大家分享一些體驗(yàn)和經(jīng)歷。不過,要記住,由于呆的時(shí)間不長,所以不會(huì)有什么大爆料。
在谷歌工作的 iOS 開發(fā)者
我那些 iOS 開發(fā)者朋友聽到這個(gè)消息的時(shí)候,第一個(gè)反應(yīng)都是“iOS?在谷歌?這不是像在敵人戰(zhàn)線上工作一樣嗎?”是的,在谷歌,你不會(huì)見到一部 iPhone,除了 iOS 團(tuán)隊(duì)的測試用機(jī)之外。在那里,每個(gè)人都很喜愛自己的安卓手機(jī),我猜這也許是因?yàn)樗麄兠磕甓寄艿玫揭徊棵赓M(fèi)Nexus 手機(jī)。由于我在今年圣誕節(jié)前就離開了,我不知道今年圣誕他們得到了什么。
那里的人有一些反 iOS 情緒,你會(huì)常常聽到他們?nèi)⌒?Obj-C 奇怪的語法或者蘋果其他的缺陷(比如地圖)……但另一方面,在谷歌的 iOS 開發(fā)者其實(shí)要比你想象中的多,如果你愿意,你可以在那里干出一番事業(yè)。
谷歌有一個(gè)很好的小內(nèi)部社團(tuán),如果你是在山景城(谷歌總部)的話,你需要做出很好的應(yīng)用,但是悉尼這邊要求沒有那么高。但是,如果你是一名 iOS 開發(fā)者,離山景城很近的話,那離庫比蒂諾也不遠(yuǎn)了。
工作流程
那里的工作流程是怎樣的?每一個(gè)人都有一份任務(wù)單,而每一個(gè)任務(wù)又有分支,當(dāng)你的任務(wù)完成之后便可以將代碼提交等待審查,如果獲得 “Readability”或者“Owner”認(rèn)可的話,那就代表代碼被接受。Readability 是一個(gè)相關(guān)語言通過的內(nèi)部認(rèn)證,而 Owner 則表示代碼在某個(gè)特定源分支上獲得了認(rèn)可。最好的情況是你的代碼得到了認(rèn)可,然后可以往更高一級(jí)發(fā)展。
但是,最經(jīng)常的情況是,你的代碼總有這樣那樣的錯(cuò)誤,或者是風(fēng)格上的違和需要修改。評(píng)審人員會(huì)在評(píng)論系統(tǒng)中給出評(píng)論意見,指出需要修改的地方。谷歌對(duì)代碼風(fēng)格的要求很嚴(yán)格,比如錯(cuò)誤的空格或者行數(shù)距離寬于 80 個(gè)字符這些小細(xì)節(jié)都會(huì)被糾出來,另外,評(píng)審人員還糾出許多基本法則運(yùn)算錯(cuò)誤,或者是給出更好的語言組織建議。
這種工作方式的一個(gè)好處就是代碼能夠?qū)懙母?,但是代價(jià)很高,而且也有一些缺點(diǎn)——導(dǎo)致工作進(jìn)程慢。你完成了工作,提交等待審核,你的代碼很有可能在快下班的時(shí)候才輪到審核,如果這時(shí)候你要修改的話,你要等到第二天審核結(jié)束,評(píng)論回饋的之后才能再修改,然后再提交等待審核。有時(shí)候碰上審查人員外出開會(huì),沒有時(shí)間審查你新提交的代碼,我沒有聽說過有哪一個(gè)代碼能夠在一個(gè)星期之內(nèi)通過審核的。
如果你的工作是連續(xù)性的,分 A、B 階段,那你要先等A通過審核許可之后才能進(jìn)行 B 工作,這拖了不少時(shí)間。所以我都是錯(cuò)開工作的,比如我提交了 A 之后,我去做另外一個(gè)與 A 工作沒有任何聯(lián)系的任務(wù),等到 A 通過之后,再接著做 B 任務(wù)。通常情況下,我都有 3 到 4 個(gè)不同的工作提交上去等待審核,最高的一次記錄是 6 個(gè)工作任務(wù)。我的這種工作方式雖然省下了時(shí)間,但是很費(fèi)力,因?yàn)橐粋€(gè)人很難將精力從這個(gè)任務(wù)抽到另外一個(gè)不相關(guān)的任務(wù)當(dāng)中。
雖然這種工作流程有點(diǎn)令人沮喪,但是慢工出細(xì)活,谷歌好代碼的代價(jià)是更多的更慢的開發(fā)者,對(duì)于這個(gè)代價(jià),我自己也沒有什么更好的建議。
設(shè)計(jì)
作為一名 iOS 開發(fā)者,我習(xí)慣設(shè)計(jì)第一原則,先是一些人設(shè)計(jì)出應(yīng)用,然后 UX(用戶體驗(yàn))工作人員做出線框,然后設(shè)計(jì)師模擬出他們想要的樣子,最后再交給我們開發(fā)者。
這樣的設(shè)計(jì)方式看起來挺好,用戶體驗(yàn)工作人員知道制作出更好的用戶界面,而設(shè)計(jì)師知道如何讓應(yīng)用更可行。但是,谷歌似乎并不是很看重設(shè)計(jì),安卓并不漂亮的UI就是一個(gè)很好的說明。
總的來說,在谷歌(悉尼)工作時(shí)一次很好的體驗(yàn),而且在那期間我還胖了不少,我唯一感到遺憾的是由于不可控的家庭因素,我不得不提前終止了合同。
{{item.content}}