
本文主要探讨DX(DinamicX)的发展历程以及过去两年的重点建设事项。DX是淘宝乃至整个阿里集团内广泛使用的Native动态化方案,其核心优势在于性能和稳定性。尽管过去几年有许多关于DX的文章,但DX一直未对外做过全面介绍,因此对外界来说它仍然具有一定的神秘色彩。本文将揭开DX的神秘面纱,探究其研发模式及近期的发展变化。
一、DX的起源与发展
DX最初是为了解决业务两端一致性和动态性问题而诞生的,经过数次升级和迭代,它已经从一个简单的首页动态化方案,逐步发展为集团共建的动态化方案,并最终成为集团移动小组标准的Native研发模式。随着接入的业务和开发者越来越多,使用场景越来越复杂和多样,DX的技术范畴也从端侧SDK延展到动态化技术体系,再到Native研发模式。特别是在淘宝的技术选型中,DX在核心域标准技术选型中的地位举足轻重。
二、面临的挑战与解决方案
作为核心域标准技术选型的DX,过去几年面临着诸多挑战。随着业务竞争的加剧和集团战略的变化,对交付量和效率的要求越来越高。随着直播、短视频、AR、3D等技术的发展,移动端正在迈入沉浸式、富交互体验的时代,Native技术栈的优势更加明显。淘宝的购物效率提高,用户访问时长和频率降低,大部分购买决策发生在淘外,因此淘宝需要打造自己的内容/社区来吸引更多的消费购前决策。为了应对这些挑战,我们在研发模式和体验升级方面进行了大量工作。
三、研发模式的升级与分层
针对研发模式的问题,我们决定将其进行分层。对于定制性强、动态逻辑要求高的业务场景,采用ProCode模式进行开发,通过强大的DX IDE和Git进行工程化多人协作开发,并进行UI和动态逻辑的调试(事件链)。对于定制性弱、复用性高的业务场景,则采用LowCode模式进行搭建与配置。我们不断沉淀组件库和能力库,使越来越多的交互和功能可以通过可视化方式生成。
四、ProCode的“三驾马车”
为了让ProCode模式成型,我们解决了动态逻辑、复杂容器和研发支撑问题,这就是ProCode的“三驾马车”:IDE、列表容器和事件链。我们基于Katian IDE(兼容VSCode API)来提供强大的视图扩展能力,并通过灵活的部署方式(远程开发、云端部署)实现更高效、快速的研发与协作。列表容器则提供了强大的页面布局能力,支持嵌套容器、联动框架、动态Template和Slot等功能。事件链则满足了逻辑动态化的需求,通过事件链JSON的智能感知能力和事件链回放功能来便捷问题的排查。
五、性能优化的思考与实践
在性能优化方面,我们主要通过异步化管线来解决load的耗时问题,通过异步绘制和高性能组件来解决render的耗时问题。同时我们也实现了计算资源管控框架来解决视频、直播等多媒体内容的性能问题。此外我们还设计了一系列性能工具来辅助开发者在面对性能问题时能够迅速定位和解决问题。这些优化措施确保了DX在功能丰富的同时性能不退反升。
六、未来展望与技术演进
未来DX的演进将实现三化:标准化、一体化。我们将向客户端行业标准看齐以降低开发门槛吸引更多开发者;实现端云一体以提升前后端协作效率将Serverless打造成客户端的基础能力之一;在一个集成研发环境中以同一个技术栈同时开发端侧和云侧代码简化开发成本提升部署效率。通过这一系列措施我们将为开发者提供更加高效、便捷的开发环境和工具支持。关注【阿里巴巴移动技术】获取更多阿里前沿移动技术和实践干货!
