前段时间在国内各大互联网公司转了一圈。与各位 iOS 业界大佬交流了之后,开奖,深感国内变化之大,敬佩诸位国内开发者的实力和韧劲。除此之外,我还发现硅谷和国内的 iOS 开发还是差别很大,且听我慢慢道来。 首先是最本质的三个不同:国内的支付使用的是支付宝和微信,地图使用的高德和百度导航,国内的第三方登录主要是微博,微信,和 QQ。而硅谷的在线支付方式是信用卡,地图使用的是苹果自带亦或是谷歌地图,第三方登录就是 Facebook 和 Twitter。 这三点不同意味着开发引入的 SDK 完全不同。在 Uber 被滴滴收购前,其美国的 App 和中国的 App 完全是两个不同的 App -- 因为大量 SDK 不同导致架构和接口需要重新设计。再加上国内对于数据的严格掌控,很多 App 后台 API 的设计需要单独处理,流量需要导入到中国境内的数据中心,App 的界面亦要根据中国的网速针对优化。 国内注重 HotPatch,硅谷注重原生态 据我所知,国内开发对于热补丁情有独钟。滴滴就做出了 DynamicCocoa,通过转化 Objective-C 到 Java 进行热修复;饿了么大量使用 Weex 进行移动开发;美团也已经在主 App 里尝试了 React Native。 相比硅谷,也只有少量小公司开始尝试 React Native。其主要原因也是 App 需求相对简单,跨平台开发相对轻松。大公司几乎很少使用,就连 RN 的母公司 Facebook 也只是在 1 到 2 个小 App 上使用了 React Native。 国内要求快速迭代,硅谷要求测试覆盖 与百度的开发者交流中,他们经常提到“业务太多,根本来不及做”。所以基本上会有一个单独的 QA 团队负责测试,而开发者则是不停的写新的代码。 这一点与硅谷在对测试的态度上大相径庭。Google 对于代码的测试覆盖率有严格的要求和审核标准,Yahoo! 甚至在开发中要求采用 TDD (Test-Driven Development),Facebook 所有的代码也都用持续集成测试来保证其质量。在 《The Clean Coder》一书中,作者也多次强调代码质量的测试的重要性。我之前在工作中,有时候甚至出现写的测试代码数量超过开发代码的时候。 国内和硅谷对于 Swift 的看法大同小异 我在这半个月杭州、北京、上海之行中发现,几乎大厂开发都用 Objective-C,他们对 Swift 依然心存芥蒂;而小公司和独立开发者,则是对 Swift 充满期待。原因很简单,大厂需要的是稳定的产品来维持口碑,开奖,对于 Swift 这样重写并不能带来巨大好处的冒险之举自然是讳莫如深。而这个原因对于小公司或者个人来说并不成立。 其实国外对此也一样。唯一不同的是,可能硅谷要略微激进一点 -- 大厂已经开始部分尝试 Swift 了。Google 在某些新产品和新功能上已经开始用 Swift,Facebook 和 Twitter 都放出了自己的 Swift iOS SDK;LinkedIn 开源了 LayoutKit,Lyft 开源了 mapper,而这些都是用 Swift 写成。 国内 iOS 职场与硅谷有很大差别 这个话题有点大,我从四个方面来说。 1、两者对于 iOS 工程师的需求量不同 国内现在处于一个 iOS 工程师饱和的状态,水平一般的 iOS 开发者多如牛毛,而高手却屈指可数。这就造成了一个情况,公司招不到素质过硬的工程师,而很多新手找不到工作。 国内有 iOS 培训班这种东西。这样,工程师可以流水线快速训练出来,他们会带你刷面试题,教你如何拿 Offer,甚至帮你把 Github 和博客都弄好。再加上前段时间中国处于全民创业的狂潮之中,各种初创企业对 iOS 工程师需求巨大,导致这种培训班居然大行其道。而现在市场回归理性,对于程序员的需求量减少,于是很多刚刚流水线出来的 iOS 菜鸟自然无处可去。 2、产品经理 (PM/PD)素质的差异 国内产品经理基本上就是刚毕业的新人,没有什么实战经验,有些都不懂技术。而最重要的开发需求和任务往往是他们提出和分配。这就造成了一个奇怪的现象:一群经验丰富的 iOS 专家,团结在一个不怎么懂技术的产品经理周围,做开发。 (责任编辑:本港台直播) |