在QCon北京2018大会上,王文槿讲师做了《从 Observer 到 Observable:使用 Functional Swift 提升复杂 iOS 项目的可维护性》主题演讲,主要内容如下。
演讲简介:
iOS 发展已经超过十年的时间,已经成长成为一个成熟的软件平台。这意味着绝大多数的 iOS 项目的迭代时间已经超过了 3 年,伴随着的不断膨胀的代码,还有各种各样的历史包袱。最严重就是大量的状态、中间层导致迭代新功能所需要的成本越来越高。
本次分享会结合 Swift 的函数式特性以及 FRP 的思想,尝试对传统的观察者模式(Listener/Delegate/Callback)和状态机(State Machine)进行改进,来实现更好的状态管理,更可控的回调时序以及更安全、鲁棒的编程模式,解放程序员在维护大型复杂项目的心智负担。
听众受益
Swift 的函数式特性以及函数响应式编程思想;
使用响应式的 Signal 来建模事件(Event)和状态(State);
将可变数据(mutable data)/异步任务/IO 网络封装为 immutable 的结构,使得程序可以通过可组合性(compositional)来显著降低其复杂性,提升安全性;
如何将上述工作在现有项目中低成本、渐进式应用;
尝试声明式的思考问题:想要做什么,而不是该怎么做。
讲师介绍:
王文槿
阿里 UC 事业群 无线开发专家
我目前是一名在 UC 工作的 iOS 开发者。曾经创业过一段时间,期间主要 Swift 来构建快速移动应用,以及使用 Python 后端全家桶(redis、mongodb、zmq 等)来构建一系列 app 的后台服务。进入 UC 之后先后负责夸克浏览器的开发,Weex 适配的工作,目前主要负责短视频业务,其中主要包括视频拍摄,OpenGL/Shader,视频编解码之类的工作。
喜欢 Swift 语言的各种先进特性,2 年前加入 SwiftGG 后一直致力于 Swift 语言的布道和最佳实践的讨论。其中对利用 Swift 的函数式特性改进工程实践的方面研究较多,去年的第二届 atSwift 大会上也分享了如何通过设计一套简单的 reactive api 来让 mvvm 写起来更舒服,Swift 社区大多数都叫我“莲叔”。主要当时在翻译组里,我的昵称叫小莲 :-D。
完整演讲 PPT 下载链接:
https://qcon.infoq.cn/2018/beijing/schedule
评论