移动互联网,一浪高过一浪

专题出品人: 
专题日期: 
星期六下午专题分享

我们都生在了一个好时代,赶上了移动互联网的浪潮,从最初的第一代iPhone开始,见证了整个智能手机席卷全球的过程。在应用开发上,移动应用的架构也从最初的单个开发者,使用简单的MVC架构,慢慢演变成多人协作开发,提供了各种强大功能的复杂架构。永不满足的产品经理对应用提出了要支持动态更新、数据统计、用户反馈、崩溃日志记录分析、灰度发布、AB Test、多平台分享、数据压缩与缓存、自动化测试以及各种新奇的效互效果,与此同时,我们的应用还要保证高效的开发进度、应用安全和流畅的使用体验。

在代码快速膨胀的同时,应用的架框也越发趋于复杂,本次专题的各个演讲人会从应用架构角度,剖析移动应用架构演变中出现的各种问题,分享大家在架构调整中所积累的各种宝贵经验。

作为移动搜索的主要组成部分,内容发现和消费在用户使用智能设备的时间中占有重要比例。考虑到移动设备的输入不便、续航能力弱等设备特性,以及用户在移动环境下浏览为主、关键词搜索为辅的使用习惯,在用户的浏览和搜索过程中为用户提供精准的内容推荐,会极大提升用户的内容发现和消费满意度。

作为移动内容搜索的先行者,豌豆荚积累了超过三亿用户的浏览和搜索行为,基于这些行为数据对用户进行建模,我们正在产品中为用户提供高质量的内容推荐服务。经过一年多的摸索和总结,得到了一些经验和教训,同大家一起探讨:

  1. 为什么要做移动内容推荐?
  2. 移动环境下用户行为建模如何做?
  3. 如何利用多种类型的内容(应用、游戏、视频等)浏览和搜索行为进行跨类型的内容推荐?
  4. 在不同的产品入口中,对于不同类型的用户,如何设计不同的内容推荐算法和策略?

手机淘宝是阿里集团在移动互联网战场的重要布局,不同于支付宝的强工具性和来往的重IM化,手机淘宝体现的是一个高度多样化的生态,它承载了大淘宝业务群之中几乎所有的业务形态。客户端底层架构如何支撑如此灵活多样的业务,并顺利接入整个集团10多个不同团队开发的客户端代码,无缝集成在同一个App内,还能确保这个App的质量和性能,对手机淘宝的客户端底层架构提出了非常严峻的挑战。

从2012年开始,我们先后进行了不同路径的多种架构探索,在实践过程中也经历了各种曲折与压力,最终走到了2014年的这个全新架构,实现了客户端的完全模块化开发、测试与部署,支持运行期的模块级动态升级和代码级热补丁。逐步推动数百人的客户端开发团队由不堪重负的大版本火车式开发模式向模块间独立迭代、发布的轻量化开发方向演进。

【观众受益】

  1. 了解在App及团队的不同发展时期,所需的架构设计。
  2. 了解大规模团队在App开发协同中的现实挑战和困境。
  3. 认识客户端架构设计与服务端架构的关键异同,架构设计中的『过犹不及』。
  4. 国内移动App土壤下所面对的独特架构挑战及破解之道。

分享基于 MQTT 协议的、面向移动互联网的 实时消息、实时统计、实时在线系统的架构设计;团队在云主机、部署自动化、监控自动化实践;团队在高性能分布式 Key/Value 存储的实践。

听众受益:

  • 了解 MQTT 协议在移动互联网、智能设备上使用的优势
  • 了解大型实时系统的基本架构设计原理
  • 小团队如何利用云端资源快速实现、运营产品
  • 自动化 部署、监控 系统及实践方法
  • 高性能 Key/Value 系统的新设计理念

ReactiveCocoa是Github工程师们开发的一套FRP(函数响应式编程)框架,改变了传统的Cocoa编程模式。由于编程理念的巨大差异,加上可借鉴的项目和文档都比较少,所以往往不敢贸然用在生产环境中。

就像轮滑鞋一样,初次接触时,往往会动作笨拙,重心不稳,各种摔跤,因为会很自然地使用「走路」模式去驾驭它。但这并不是说轮滑鞋有问题,只是我们需要换一种模式。

「走路」模式可以应对大多数的场景,如水泥路、山路、台阶、独木桥等等,但正是因为它的普适性,导致了在不同的环境下,它往往不是最高效的。而Cocoa开发就像平坦的水泥路,「走路」模式没有问题,因为这是我们最习惯的也最适应的,但针对它平坦的特点,只要我们改变下思维模式,就可以获得更好的效果。

RAC提供了一套UIKit Extension,只要大致了解RAC的理念,就可以用了,哪怕只是作为「BlocksKit」来用。

「更高的效率、更易维护的代码」对于程序员来说这个诱惑是足够大的,而RAC正好可以达到这两个效果,为什么不试试呢?

本次分享会从Cocoa编程现状、RAC介绍、MVVM、Demo和使用经验这几个角度出发,来帮助大家更好更全面地了解这个框架。