Qcon上海2014

移动开发中的痛点

专题出品人: 
专题日期: 
星期五专题
地点: 
光大1号厅

不同的公司不同的业务,不同公司的不同阶段,在研发过程中都会遇到不同的问题。希望这个专题能尽量给大家展示不同行业不同规模公司的痛点,会挑有一些有特色的项目组织或者研发模式,让我们的参会同学了解到,世界上没有一个武功能解决所有问题,不同的问题应该怎么样去对待,去解决。移动负责人应该怎么去看待这些痛点,比如说:做硬件产品开发的人需要哪些问题,做操作系统的人需要考虑哪些问题等。

支付宝钱包从一个纯粹的工具应用,发展到今天的应用流量平台,不仅仅在业务规模上提升巨大,在钱包的架构、研发过程上也经历了诸多挑战和改进。本次演讲会从支付宝钱包这一年多来,从1.0走到2.0,以及从2.0逐步向3.0演进的过程中遇到的典型问题出发,重点和大家分享在客户端分层解耦、灰度发布、新产品持续打磨、开放业务应用的健康度监控反馈、基于服务端单元化的自动化测试以及研发协作支撑平台的建设等多个最佳实践,希望能够为业内同行提供参考,相互促进。

介绍为了满足业务需求而对携程无线系统的架构进行调整,着重介绍在Mobile 2.0下客户端H5/Hybrid/Native和服务端(H5 Service & Moblie Service)的架构调整和技术变迁,通过这些调整能否满足满足业务发展的需求并提高系统的稳定性。主要分享一下内容:

1. 前段App/H5的解耦以及Hybrid的引入和推广

2. 后端服务的解耦(H5/Hybrid服务以及针对App的TCP服务)

3. 增强了自动化(测试/发布等)和监控

4. 实现多开发团队下保证各个团队可以独立进行功能测试和集成测试的方案

UC浏览器在发展过程中遇到了一些机遇和转折点,其中研发U3自有内核,全力转向android平台是一个极大的机遇,而在中国从未有自有浏览器内核能力的情况下,同时面临相当激烈的竞争,摸索出一套自己的路子来,其中有一些关于团队,关于项目管理,以及技术管理的关键实践,有效提升了浏览器研发的能力,提升了产品竞争力,在转型的同时,保持了技术和市场领先地位,与这些实践密不可分。在这个过程中,技术一度决定了产品竞争的成败,其中的压力相当巨大,最终能顶住压力,在产品质量,技术指标,迭代速度上保持了优势,其中的一些经验,可做借鉴!

乐逗手游的商业模式围绕流量获取、流量变现、流量留存三部分。技术为业务提供服务,业务反向带动技术的完善,乐逗手游发行平台从零诞生到DAU千万、月活跃近亿的规模,中间经历了几个大的阶段,围绕商业模式完善了四大基础服务(账号、支付、营销、消息)、二大SDK(休闲、网游)、一数据分析平台。基于四大基础服务、二大SDK、一数据分析平台,乐逗发展了众多工作室,针对用户服务进行创新产品的研发(包含陌生人兴趣社交、广告平台等),也开展了自研游戏的研发(包含已上线微信渠道的全民切水果)。技术平台承担了海量的用户请求、数据处理,这里总结了遇到问题及对应的解决思路、方案和后续平台的演变规划,希望能对手游发行、自研的技术同行有一定参考。

作为国内市场占有率第一的安全软件和排名前10的移动应用,360手机卫士是一款功能繁多,规模很大的移动应用。在过去一年中,360安全卫士开发团队以巨大的身躯依然保持了每月3个Beta版,一个正式版的速度持续高速演进。在这样高速演进的过程中,360手机卫士仍然保持了很高的质量。

相比有深厚积累的传统软件行业,移动应用行业整体是比较年轻和稚嫩的,同时也表现出了很多和传统软件开发完全不一样的特性。在这样的环境中,如果让数百人的研发团队在一起协调一致,以近乎跑步的速度进行一场马拉松是一个非常严峻的挑战。

在本次演讲中,姚彤将和您分享360手机卫士研发团队在过去的一年中如何持续高速奔跑,内容涵盖移动开发的独有特性、兼容性问题、发布流程问题、开发流程问题和人员培养问题。

同时作为一个安全软件公司,360手机卫士团队也对世面上的流行应用进行了大量的人工和自动化分析,从这些分析结果来看,国内移动开发领域存在很多共性的问题。在这个演讲中,姚彤还将和您分享一些第一手的研究数据,希望能够帮助整个行业提升研发水平。

如何在 Android/iOS 两大移动平台的自动化 UI 测试中共用将近 95% 的代码?如何在开发过程中,维护产品代码与需求文档、测试文档、测试代码的一致性?如何有效的通过组织单元测试、集成测试、自动化测试以及手工测试来对测试分层,以兼顾测试覆盖率和测试效率?这,是不是你每天面临的挑战?

要知道,在手机应用的跨平台开发中,你首先要面对的是不同平台的差异化。不同的平台有着不同的操作方式和习惯,导致相同的功能需求在不同的平台上操作可能不一样,就算操作一样开发进度还一前一后,并且还存在不同的平台有着特定的不同需求。其次要面对不同的平台上可能有不一样的自动化测试工具,就算使用相同的自动化测试工具,在不同的平台上还有着不同的 API。别忘记,对于需求文档和测试文档来说,不同的平台上的需求和测试文档也会略有不同,你是否真的可以保证在代码发生变更后,也及时的变更这些平台对应的文档?如果还有其他平台要考虑,你不会真想要同时维护多套自动化测试脚本和相关文档吧,这无疑会大大增加维护成本。

对于单元测试、集成测试、自动化测试以及手工测试来说,你是否清楚每个测试层次分别关注的重点?如何通过测试分层在保障测试覆盖率的同时,也保障测试效率?

在这个话题中,将会分享在中国平安某金融社交产品项目中是如何面对这些挑战的,如何面对需求变更与自动化 UI 测试;如何通过测试分层来兼顾测试效率与测试覆盖率。