以下是Chris Hulbert文章的主要内容:
作为一名 iOS 开发者,我最近终止了和Google(Sydney)的合同,我的工作是开发Google Maps Coordinate应用。在忘记这段经历之前,我想和大家分享一些体验和经历。不过,因为时间不长,所以不会有什么大爆料。
我那些 iOS 开发者朋友听到这个消息的时候,第一个反应都是“iOS?在Google?这不是像在敌人战线上工作一样吗?”是的,在Google,你不会见到一部 iPhone,除了 iOS 团队的测试用机之外。在那里,每个人都很喜爱自己的安卓手机,我猜这也许是因为他们每年都能得到一部免费Nexus 手机。由于我在今年圣诞节前就离开了,我不知道今年圣诞他们得到了什么。
那里的人有一些反 iOS 情绪,你会常常听到他们取笑 Objectiv-C 奇怪的语法或者苹果其他的缺陷(比如地图)……但另一方面,在Google的 iOS 开发者其实要比你想象的多,如果你愿意,可以在那里干出一番事业。
Google有一个很好的小内部社团,如果你是在山景城(Google总部)的话,你需要做出很好的应用,但是Sydney这边要求没有那么高。但是,如果你是一名 iOS 开发者,离山景城很近的话,那离库比蒂诺也不远了。
那里的工作流程是怎样的?每一个人都有一份任务单,而每一个任务又有分支,当你的任务完成之后便可以将代码提交等待审查,如果获得“Readability”或者“Owner”认可的话,那就代表代码被接受。Readability 是一个相关语言通过的内部认证,而 Owner 则表示代码在某个特定源分支上获得了认可。最好的情况是你的代码得到了认可,然后可以往更高一级发展。
但是,最经常的情况是,你的代码总有这样那样的错误,或者是风格上的违和需要修改。评审人员会在评论系统中给出评论意见,指出需要修改的地方。Google对代码风格的要求很严格,比如错误的空格或者行数距离宽于 80 个字符这些小细节都会被纠出来,另外,评审人员还纠出许多基本法则运算错误,或者是给出更好的语言组织建议。
这种工作方式的一个好处就是代码能够写的更好,但是代价很高,而且也有一些缺点——导致工作进程慢。你完成了工作,提交等待审核,你的代码很有可能在快下班的时候才轮到审核,如果这时候你要修改的话,你要等到第二天审核结束,评论回馈的之后才能再修改,然后再提交等待审核。有时候碰上审查人员外出开会,没有时间审查你新提交的代码,我没有听说过有哪一个代码能够在一个星期之内通过审核的。
如果你的工作是连续性的,分 A、B 阶段,那你要先等A通过审核许可之后才能进行 B 工作,这拖了不少时间。所以我都是错开工作的,比如我提交了 A 之后,我去做另外一个与 A 工作没有任何联系的任务,等到 A 通过之后,再接着做 B 任务。通常情况下,我都有 3 到 4 个不同的工作提交上去等待审核,最高的一次记录是 6 个工作任务。我的这种工作方式虽然省下了时间,但是很费力,因为一个人很难将精力从这个任务抽到另外一个不相关的任务当中。
虽然这种工作流程有点令人沮丧,但是慢工出细活,Google好代码的代价是更多、更慢的开发者,对于这个代价,我自己也没有什么更好的建议。
作为一名 iOS 开发者,我习惯“设计优先”原则,先是一些人设计出应用,然后 UX(用户体验)工作人员做出线框,然后设计师模拟出他们想要的样子,最后再交给我们开发者。
这样的设计方式看起来挺好,用户体验工作人员知道制作出更好的用户界面,而设计师知道如何让应用更可行。但是,Google似乎并不是很看重设计,安卓并不漂亮的UI就是一个很好的说明。
总的来说,在Google(Sydney)工作时一次很不错的体验,而且在那期间我还胖了不少,我唯一感到遗憾的是,由于不可控的家庭因素不得不提前终止了合同。
CSDN UPDATE:
值得一提的是,我们在Google开发iOS应用有几点很有趣的地方: