随着移动互联网近几年飞速的发展,单个APP的业务越来越丰富,功能越来越强大。导致... 展开 >
2011年加入腾讯负责过Android手机地图,地图SDK,底图渲染引擎,离线公交路线检索引擎,手机街景引擎的研发。2015年加入滴滴,现任滴滴终端技术部负责人兼工程技术委员会移动研发通道负责人,主导了滴滴APP的平台化演进和多个大版本的重构及移动研发领域的探索。
2011年加入腾讯负责过Android手机地图,地图SDK,底图渲染引擎,离线公交路线检索引擎,手机街景引擎的研发。2015年加入滴滴,现任滴滴终端技术部负责人兼工程技术委员会移动研发通道负责人,主导了滴滴APP的平台化演进和多个大版本的重构及移动研发领域的探索。
随着移动互联网近几年飞速的发展,单个APP的业务越来越丰富,功能越来越强大。导致协同开发的工程师数量倍增,代码也越来越臃肿,人员间的协同成本,业务的迭代成本,代码的维护成本均呈指数型增加。为解决上述难题,工程化改造和工具化建设应之而来。
工程化的本质是将复杂问题简单化,从而在业务不断增长,人员不断增加,代码不断膨胀的过程中,始终保持着研发效能的高效,将复杂业务模块化,通用模块不断沉淀,模块间物理解耦,研发人员按照模块划分工作边界,从而实现化繁为简的过程。
工具化是模块化的基础也是补充,依赖管理工具负责模块间的依赖关系和版本控制;构建流工具让模块间可按需集成,持续集成,预编译,自动化测试,代码漏洞审查,保证开发集成过程中的高效和发布前的质量;实时监控工具,动态化系统让APP可及时发现问题并快速修复。
类比我们用的台式机,CPU,显卡,主板,硬盘,显示器,电源,机箱等都是一个模块,将一个复杂的台式机设计成多个模块,模块可组装,模块间的接口可兼容,不同的模块可搭配的过程就是工程化的过程。每个模块形成了自己的科技黑箱,每个厂商只关注自己生产的模块内部实现以及自己模块对外提供的接口兼容性。在这个过程中将一个极其复杂的PC主机的制造过程大大简化,让台式机进入千家万户变为可能。而装机过程中的螺丝刀,胶水,排查故障时的电表等仪表都是工具化过程中积累出来的。
移动研发相较于传统工程领域只算是刚刚起步,各团队在业务中不断深化的工程实践经验都是非常宝贵的,同时已产出了很多优秀的工具,这个过程需要我们共同的努力。
美团点评伴随着业务的飞速发展,客户端研发团队的规模从初期的20余人的发展为数百人,且分散在不同的业务团队。如此大规模的研发团队,如何保证高效的内外部协同效率?
美团与大众点评原本是两家独立运营的大型互联网公司,分别有着不同的积累和储备。两家的合并为业务带来巨大的好处:更多的流量、更多的用户。但同时也为技术团队带来了巨大的挑战:如何能够同时高效的在美团和大众点评两个App上实施业务开发?
突破了这些难题之后,我们希望继续提高我们的研发效率。经过系统性的分析,我们判断测试效率当前阶段的效率瓶颈,对应的解决思路是实施自动化测试。那么问题又来了,类似美团点评的业务在不停的快速发展和迭代,是否适合实施大规模的自动化测试?
摘要:
整个演讲内容分为4个主要方向:
1- UC浏览器分为国内版和国际版,是移动出海的典范,通过GLOCAL(think global, act local)的打法深入当地,提供符合当地文化的定制化服务,这样导致国内版和国际版在业务功能上有很大的差别。那么App架构如何同时支撑国内,国际多个版本的快速迭代?构建系统做了哪些支持?在演讲过程中,会谈到能够满足一致需求及一致性能稳定性要求的架构解决方案,如容器化解决方案等。
2- UC有自己的内核团队,专注内核模块的开发,同时作为一个内容的综合入口,提供了搜索、小说、漫画、头条等业务功能,而要实现数百号人团队高效运作,这其中的挑战非常多,如:对快速搭建产品框架、快速引入成熟移动中间件、快速试错、A/B test有着强烈的时间性诉求等等。当然也有应对措施,如:提供体系的容器化解决方案,提供业务组件化的规范、工程结构,配置相应的开发调试机制及脚本等。
3- 随着移动互联网的发展,容器化、业务内容化、精细化运营成为大的趋势,UC是通过什么样的技术手段保证高效运营的?
4- 随着React Native以及Weex这样的跨平台技术的出现,PWA这样技术的出现,以及网络状态逐步优化,前端和客户端的边界越来越模糊,作为能做Web内核优化的团队,我们在布局大前端的融合。
提纲:
听众受益点:
随着滴滴出行业务的不断拓展,客户端开发团队人数激增,代码量急剧膨胀,开发人员物理地域不同(北京、上海、杭州),人员间的协同开发成本,代码维护成本成指数型增加。在如此前提下,如何保证稳定高效的协同开发?
滴滴业务的高速发展对滴滴客户端的组织架构提出了新的挑战,如何才能高效的进行代码复用,持续集成和按需集成?
工程涵盖业务组件繁多,代码量巨大,单次构建耗时长,一个组件出错就要重新再来。如何避免这种情况?
随着集团业务的不断发展,研发团队规模增大(100多人),App活跃持续增长(月活千万级),客户端单一的工程已经不能够满足当前业务需求。因此,多工程集成的客户端项目应用而生。
工程结构上的拆分(工程组件化),使整个项目层次分明,业务解耦,对研发效率明显提升。在此基础上,京东金融【再组件化平台】的建立,测试和研发人员可以任意快速的搭建自己需要的业务模块工程,进行单元开发和测试,提高研发和测试的团队协作的效率,简化团队协作流程,快速迭代,保证App的整体性能。
极客邦控股(北京)有限公司
北京市朝阳区望京利泽中二路洛娃大厦C座6层1607