工作

从 iOS 到 Web 开发

和很多开发者不同的是,我真正意义开始写项目的平台和语言是 iOS 和 Objective-C,自然而然 Xcode 也是我第一个使用的 IDE。iOS 系统在 Apple 硬件销量的增长下,获得了开发者社区的高度关注和热度。几乎每次 WWDC 都会提到 App Store 应用的增长量和开发者群体的数量。

另外,Apple 各种炫酷的宣传视频,对于我来说,也是很受用的。每逢新的一次 WWDC,对 API 的更新也是充满期待。如果你会熬夜看 WWDC,同样也会感到兴奋和期待。心想「Apple 真的越来越开放了,对开发者真体贴。」。不过,我看了几次之后,发觉其实这些动作最终目的其实是为了给 Apple 的商业计划铺路。我理解像 Apple 这样体量的科技公司的考虑和计划,但对于我来说,It sucks。

iOS 的困境

iOS 的束缚在于 Apple 本身。每次更新 App Store 应用,必须走一次 review 流程。有 App Store 上架经验的开发者一定对飘忽不定的 review 时间心有体会。另外,对于 API 的使用,开发者只能在项目中调用 Apple SDK 官方开放的 API,而「不能」调用更加底层的私有 API,这代表你只能在 Apple 规定的范围内实现功能。当然你也可以无视这些限制,但 review 流程也是你永远过不了的门槛。

Write once,run anywhere 的理念对原生应用开发的冲击。对于一个产品,你必须开发 iOS 和 Android 客户端去迎合不同生态中的用户, 意味着创业公司必须同时雇佣 iOS 和 Android 工程师,其中除了人力成本增加,还有兼容平台差异的成本。所以,从 PhoneGap, Framework7 等移动端 Web 开发框架到 React Native, Weex 等利用 Web 技术开发原声应用的手段打破了这种限制。让 FE 工程师拥有「以一敌百」的能力。

不过,「不是我要的那种 cool」才是我离开 iOS 开发最根本的因素。对于技术,我只是更多地随内心的感觉而选择,不愿意看到产品和技术因为平台限制,导致真正需要的用户不可触及。

Front-end 的活力

开发者、开源项目、conference 的数量是我评价一个技术生态是否活跃的指标。以下是 Stackoverflow 的统计:

可以在这个 Developer Survey Results 2016 中查看更多对围绕技术展开的统计数据。

无论是 FE 开发者数量、FE 开源项目和围绕 FE 的相关 Conf 的数量都遥遥领先其他技术。有很多人可能会说「前端技术门槛比较低,所以开发者多是肯定的」,我承认这个想法有一定道理。但我们不要忘记 Web 是互联网的开端。同时,这个领域的技术更加适合年轻人:没有必须遵守教条,更多是靠大家的自律,快速技术迭代与社区的群策群力。

FE 社区的活力,不断推动着这个领域的发展。Browsers 不支持的特性,没问题,有 Babel, PostCSS 鼓励我们使用更方便和更高级的语言特性,同时,反促进各 browser 对特性的支持和更新速度。JavaScript 没有类型系统影响项目质量?没问题,我们有 TypeScript。JavaScript 只能跑在 browser?

在阿里巴巴的半年

轮子和厉害的人

这半年里,第一个印象就是集团有很多厉害的同事,打造了很多中台服务。这些中台服务有点甚至可以独立成创业项目。其中有很多都一定程度上解决了不同团队的业务困难,同时也减少了大家重复造轮子浪费的精力。例如国外比较出名的设计工作流产品 inVision,在集团内部其实也得到了实践,而且发展的方向也很有规划与自己的想法。

在集团里,你要快速实现一个产品其实并不困难。因为内部提供了不同方面的服务和技术,你只需要通过把它们串联起来,就能快速搭建起一个成熟项目的雏形。例如阿里企业级服务框架 egg.js(社区开源) 就提供了一个完整、规范、可重用的 Web 服务框架,得益于其丰富的内部生态,你需要的不同解决方案都能通过配置插件、中间件等方式快速实现。

另外一点,就是「厉害的人」非常多。他们不仅能打造轮子,也会乐于分享不同技术经验到不同部门的同事,也会组织着各种有意义且有趣的「小团队」。除了交流技术,更多还有思想的碰撞。有经验的前辈不仅拓宽大家知识的视野,也会分享他们踩过得坑,实践过的解决方案。这些都能让你不断成长。

必须不断学习

除了个人对成长的渴求,身边的人和环境也是不断前进的动力。当处于一个拥有良好氛围的环境,就会发觉自身拥有的知识储备相当不足,慢慢开始想补全缺失的知识,例如 Algorithms, Data Structure, Garbage Collection, MV* 等等。保持学习对我本身来说,是乐趣,也是习惯,其实侧面可以算是一种防御机制。因为永远不知道未来会发生什么,花点时间准备一下也无妨。

一些方向

生活

日本行

很高兴,第一次去日本身边有太太相伴,还有一帮团队的小伙伴。由于团队刚刚成立,规模不大,提供了一个可以出国游的机会。去远的国家比较麻烦,又鉴于比较少人旅游过,日本便成为了我们的选择。

然后就是各种找酒店,买机票,计划行程。奉劝一句,千万不要找离交通工具远的住宿,不然每天出行都很烦恼。我们去的是京都和大阪,前者比较复古,后者第二大城市。消费和广州差不多,就是交通费非常高,可以看到很多民众都是骑脚踏车出行的(速度比较快)。

环境、文化、卫生间

从落地到结束旅程,整个期间给我一种感觉「日本和漫画、动画里面描述的是相当一致」。建筑物、学生、食物、交通工具和景色都和日本文化产物描述的相当吻合。我们逛了漫画店、女忧周边的店、电玩店,都发现「性」在日本「不奇怪」,是一种非常常见的文化现象,也是日本重要的产业之一。最后,我还是没有下决心在「全家便利店」买一本「杂志」促进两国交流,现在想想还是有点遗憾的。

京都和大阪的文化差异蛮大的。京都是古色古香,可以很容易就找到寺庙,山和水都让人比较轻松。即使站在主干道边上,也能感到空气是干净的。人都比较单纯和朴素。记得有一天在公车上,遇到一位慈祥的老妇人,一致夸太太「かわいい」。虽然听不懂大部分内容,但奇妙在于,我们都能了解对方的心思。最后,她说天气太干了,递给我们润喉糖。这大概是生活中的小确幸吧。

大版更精彩了。京都是放松身心,那么大阪就是开括视野和买!买!买!。建在港口附近的海游馆可以看到各种奇怪的海洋生物,隔壁的摩天轮可以来几圈浪漫的二人世界,对面的大阪环球影城更是一定要去的旅游景点(比较贵)。精彩的东西还有很多,还有吃的、买的、逛的,去多少次都觉得不够!

卫生间,一定要讲一下。以前都是听说日本的卫生间干净、智能,这次我也体(la)验(du)了(zi)。首先,真的太干净了,也没有味道,甚至可以比得上家里的干净程度,在里面如果玩手机的话,可以坐上很久。大概过了 10 分钟,在要结(la)束(wan)的时候,我花了 1 分钟纠结「要不要使用自动冲洗功能呢?」,然后心里还是决定「下次肯定有机会的!」。

2016 读过的书和文章