微信团队分享:微信支付代码重构带来的移动端软件架构上的思考
3 月,跳不动了?>>> 本文原文由微信客户端高级工程师方秋枋原创发表于WeMobileDev公众号,收录时有修订和加工,感谢作者的无私分享。 1、引言 作为一个重要业务,微信支付在客户端上面临着各种问题。 其中最核心问题就是分平台实现导致的问题: 1)iOS 和安卓实现不一致:容易出 Bug、通过沟通保证不了质量; 2)扩展性差且无法快速响应业务需求:需求变更迭代周期长、数据上报不全面; 3)质量保障体系不完善:缺少业务及设计知识沉淀、协议管理松散、缺少统一的自动化测试; 4)用户体验不一致:比如下图就是之前安卓和 iOS 没有统一前的收银台。 ▲ 微信安卓片和iOS版,没有统一用户体验前的收银台功能 为了解决分平台实现这个核心问题,并解决以往的技术债务。我们建立起了一整套基于 C++ 的跨平台框架,并对核心支付流程进行了重构。微信支付跨平台从 iOS 7.0.4 版本起, 安卓从 7.0.7 版本起全面覆盖。 重构后的软件架构原理如下图所示: 本文分享了微信团队基于 C++ 的移动端跨平台技术在重构整个微信支付功能的过程中,对于移动端软件架构设计方面的思考和实践总结。 术语约定: 本文中的名词 CGI 可以理解为一个网络请求,类似HTTP请求。 2、关于作者 方秋枋: 毕业于华中科技大学,现为微信客户端高级工程师。目前主要负责微信支付的跨平台开发框架与相关业务开发。 是开源项目