引言
每个月的25日左后,无意外的话都是加班日,而所为的,就是每月初上架的《程序员》,三审三校的流程让我对自己作为责编的文章都读了多次,虽知『纸上得来终觉浅,绝知此事要躬行』,但读的文章多了,也能够相应地了解到整个行业技术的发展态势以及国内厂商、开发者们对于技术研究实践的程度,也是学有所得。
当然,我也知,真正的学习,再没有比动手实践来得彻底,我也很想用纯 Swift 写一款 App 上架 App Store,正在加油中。
58同城移动端 Passport SDK 的设计与技术细节
如文中所言,58 赶集集团旗下拥有多个 App,且全部使用同一套账号体系,通过 Passport 部门提供的接口进行通信。经过多年迭代,各个 App 中关于 Passport 的功能均出现了一些流程和接口上的差异。为了提高账号安全,统一服务接口和流程,提高用户体验,由此,决定开发了一个 Passport SDK,以集成 Passport 的相关功能,并提供给集团内各业务 App 使用。
而其设计原则有三:
- 接口精简;
- 服务流程黑盒化;
- 迭代升级无感知。
很多时候特别崇拜做开发的人,因为可以自写脚本程序去实现什么,比如 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 的开源计划都暂缓了。
相关内容: