班布里行纪

谨以感恩之心,怀孺孩童心性

嗨,我是唐小引 (@唐门教主),英文名:Banbury Tang,取自英国牛津郡的 Banbury。爱开发但技术渣,爱写文但太随性,喜欢读古龙书,经常逛 GitHub,极度热爱清蒸鲈鱼,并终于自力更生地学会了这道菜。


读《程序员》3月期58同城、饿了么、携程的移动端技术实践

引言

每个月的25日左后,无意外的话都是加班日,而所为的,就是每月初上架的《程序员》,三审三校的流程让我对自己作为责编的文章都读了多次,虽知『纸上得来终觉浅,绝知此事要躬行』,但读的文章多了,也能够相应地了解到整个行业技术的发展态势以及国内厂商、开发者们对于技术研究实践的程度,也是学有所得。

当然,我也知,真正的学习,再没有比动手实践来得彻底,我也很想用纯 Swift 写一款 App 上架 App Store,正在加油中。

58同城移动端 Passport SDK 的设计与技术细节

如文中所言,58 赶集集团旗下拥有多个 App,且全部使用同一套账号体系,通过 Passport 部门提供的接口进行通信。经过多年迭代,各个 App 中关于 Passport 的功能均出现了一些流程和接口上的差异。为了提高账号安全,统一服务接口和流程,提高用户体验,由此,决定开发了一个 Passport SDK,以集成 Passport 的相关功能,并提供给集团内各业务 App 使用。

而其设计原则有三:

  1. 接口精简;
  2. 服务流程黑盒化;
  3. 迭代升级无感知。

很多时候特别崇拜做开发的人,因为可以自写脚本程序去实现什么,比如 Linux 之父 Linus Torvalds,为了方便 Linux 系统源码的管理,花了两周的时间自己用 C 写了一个分布式版本控制系统,就是目前世界上最先进的并且没有之一的分布式版本控制系统 Git。本博客所采用的 Vno - Jekyll 主题,就是喵神基于 Uno 而来的。

而所有技术的目的都是为了让服务更好地使用,于技术本身而言,也需要提高开发编码速度,减小并发开发难度,同时降低后期维护成本和维护时间。

所以,架构设计的重要性不言而喻。

大概对于工程师而言,架构师是架构设计师,产品经理则是信息架构师。这样想来是不是互相之间就不会相爱相杀了?

刚刚收到达理的文章,我打开一看,满目的审阅状态,感动得很,毕竟从业至今看到的许多文章都糙得很,需要我自己去花费很大的精力逐字逐句地品阅理解,问达理他的文章是被审了多少次,达理说『好几次了,审麻了』。

Orz…

听到这么说时内心其实很开心的,经过认真对待的内容产出会很严谨,也由衷地感谢飞叔的把关。

以前其实对于界面登录系统并没有做过太多关注,只是前不久因为学院直播许多采用微信、QQ 等第三方登录购买的用户在正式直播时,却出现了无法登录进入对应 ID 的情况,才发现,在这简单的登录界面,存在着许多技术问题亟待解决。

达理的文章让我意识到了 Passport 的重要性,只是,作为一个逻辑思维特差的人,当我看到 Passport SDK 服务接口设置逻辑、账号密码登录页面服务处理逻辑,以及架构设计的配图时,其实内心是拒绝的。

携程无线工程技术系列——从零打造携程无线持续交付平台 MCD 实践

携程打造无线交付平台 MCD 的初衷与58类似,因为携程 App 基础承载了整个集团的所有业务形态,亟需一个有效的无线持续交付平台来实现大版本的快速集成发布。

这篇文章有浩然总的把关逻辑严谨,能够清晰地看到 MCD 几个阶段的发展情况。从集成、测试到发布、运营,覆盖了 App 完整的生命周期。

饿了么移动基础设施建设

近来国内各大厂商自造轮子之风渐盛,之前有段时间不太能理解,总觉得既然已经有如此多且专业的第三方服务提供,为何还要花费人力、精力去从头来过?

后来看到 Sunny Dog 关于 DynamicCocoa 方案诞生的话:

动态化一直是 App 开发梦寐以求的能力,而在 iOS 环境下,Apple 禁止了在 Main Bundle 外加载和执行的自己的动态库,所以像 Android 一样下发原生代码的方案被堵死。
后来像 React Native、Weex 这样的基于 Web 标准的跨端方案出现,各大公司都有对其进行尝试,但对于滴滴现状,也许并不适合:

  • 滴滴 App 强交互、以地图为主体、端特异性高;
  • 客户端人员充足,跨技术栈学习和开发有较大成本;
  • 大量固化 Native 代码,重写成本高。

所以我们思考,能不能做一套保持 iOS 原生技术栈、不重写代码就神奇的拥有动态化能力的方案呢?
于是,我们设计和实现了一个具有里程碑意义的 iOS 专属动态化方案:DynamicCocoa。

的确,当一个公司的业务发展到一定阶段,自研一套适合自己的方案已经是最为必要的路径了。

也正因如此,从《饿了么移动基础设施建设》的文章中,通过饿了么团队所做的努力,也能够看到整体的技术需求。比如 HotPatch 热修复,因为 App 用户的主动升级率一直处在低位,总会有一部分用户被“牺牲”,由此催生了 HotPatch:

在这种历史情景下催生的“HotPatch”技术,简直就像是救命稻草一样,拯救了一大批这样的 App 用户,同时也拯救了在移动端默默奋斗的程序员们。只需通过“HotPatch”服务有针对性地下发修复 Bug 的 Patch 包,就能达到降低 Crash 率的目的,从而很好地提升用户的基本体验。也就难怪该项技术出现后,各大厂商都趋之若鹜。

可是,在 iOS 这样一个平台上,当一项新技术各大厂商、开发者皆来参与时,苹果势必会监管。也就出现了今天刷屏讨论的『Apple 警告邮件』。

这晴朗的天,众说纷纭,苹果爸爸要做什么?尚未可知。

只是我所知道的 DynamicCocoa 和 Qunar React Native 的开源计划都暂缓了。

相关内容:

最近的文章

读余秋雨先生的《一个王朝的背影》

小引记得高中时,在试卷里看到一篇文章,题曰《一个王朝的背影》。因为分外感兴趣,在那个还不太会使用 Word 的年纪,去学校对面的打印室,将这篇文章从网上 copy 打印了下来。若干年后,当我再次找寻刊载着它的书籍时,却发现,它的名字变成了《山庄背影》,书也从《山居笔记》变成了《山河之书》。而遭到同样待遇的,还有《苏东坡突围》变成了《黄州突围》。书的名,被加上了些许官僚气息,而文章,亦是生生地少了许多意思。还君明珠双泪垂余秋雨先生在文章开篇言: 我们这些人,对清代总有一种复杂的情感阻隔。记...…

凿壁借光继续阅读
更早的文章

互联网的产品经理 = 信息架构设计师

写在前面请舒总推荐产品设计类的书籍,舒总说,“想学产品的话,就自己搞点东西,完整地走一个生命周期,就学会了,看书的话只能学习皮毛。”可是我连皮毛都还没学会…舒总又说,“其实互联网的产品经理=信息架构设计师”,于是为我推荐了 O’Reilly 出版的《Web 信息架构:设计大型网站》。这部于 2008 年初次出版的中文图书,连出版社都没库存了,于是我就这样盯着盗版的 PDF 研读了起来(罪过罪过)。目录 信息架构概述 信息架构的基本原理 信息架构的开发流程和方法论 信息架构实践 信...…

吾日三省吾身继续阅读