活动中台:揭秘vivo的千万级DAU活动中台
上QQ阅读APP看书,第一时间看更新

2.2 让研发人员也成为平台的用户

活动运营、产品经理是活动中台的主要用户,他们根据活动需求,在线可视化设计生成最终的H5页面。H5页面的核心组成部分是由各研发团队提交的活动制品,所以业务团队的研发成员也是平台的主要拥护。

为研发用户设计一款开箱即用的在线开发平台,是突破常规活动支撑模式的核心要点。我们带来了一站式的开发体验,提升开发效率,缩短平台活动制品的生产时间,更好地去支撑线上营销活动的开展。

回归最原始的开发诉求,该平台本质是在基础架构上重新架设了一款代码生成器,建立平台与第三方业务的开发桥梁。提升活动开发者的开发体验,主要是围绕质量、效率进行的一系列功能和流程优化。我们从开发环境、开发管理两个维度出发,武装我们的代码工具,帮助开发者快速交付活动。

1. 开发环境

如果系统提供的基本组件和任务不能满足业务方的需求,则业务端开发人员应根据自己的业务场景开发相应的活动产品。这些产品可能仅在业务场景中有所不同,但是基本功能是相同的。接下来,我们将从工具库、内置组件、代码开发助手、开发人员文档这4个角度来讨论开发环境的可支持性。

(1)工具库

活动投放场景多种多样,交互触发的方式也会各不相同。例如同样的唤醒客户端分享能力的方法,A场景的方法为showShare,B场景的方法可能就会变换为goShare。为了适应不同的终端环境,我们需要封装能力统一、支持按需加载的工具类库。其中包含了强业务性的能力封装,如环境判断、用户信息获取、不同环境的分享或下载能力唤起等。

在此基础上,我们还需要提供常用的研发级的能力封装,例如Cookie操作、Fetch能力、Stat统一埋点操作等工具方法,帮助开发者进一步将精力聚焦于业务开发,提升活动组件开发的效率。同时,我们可以将该工具类库在公司内部开源,持续跟进最新、最优的解决方案。

(2)内置组件

内置组件是由活动平台官方的开发团队提供的快速场景获取的组件,它经常作用于活动的配置面板,例如媒体选择器、富文本、弹框、通用表单等。封装常见研发的场景,节省业务团队开发配置面板的成本。内置组件另一大优势是,可以直接调用平台的系统能力,如上传素材、获取系统数据等能力,让平台的能力更直接地服务于业务团队。

(3)代码开发助手

为了统一开发环境,不改变开发习惯,提供高效的开发工具,我们开发了一个基于VSCode的代码开发辅助插件。它集成了初始产品代码、远程代码托管、插件私服托管、开发素材存储等功能,从初始化代码生成、本地开发环境调试预览到代码自动托管,提供一站式的开发体验,帮助研发人员实现快速交付。同时,该插件集成了本地开发工作台,支持跨设备配置同步、本地存储组件组合关系等功能,开发者所见即所得。

(4)开发人员文档

同时我们需要提供完善的手册说明。建立了在线开发者手册,可以帮助开发者快速上手,降低入门成本。对于理解开发环境所具备的能力来说,文档只起辅助作用,我们还需要通过将指导渗透到各个关键功能项中,因此,完善的功能提示也是提高易用性的关键。

2. 开发管理

上述的开发环境的能力支撑都是从线下的维度进行的,而线上维度的管理,则需要提供活动在线开放平台去完成研发产物的管理、活动制品的流程闭环、通用能力沉淀、横向交流渠道等功能。通过在线开发平台,可以改善活动的生态,快速提高组织活动的开发效率。因此,最基本的物料素材管理、权限管理、组件管理、开发社区都是必不可少的。

(1)物料素材管理

在开发活动的过程中,我们需要托管字体、图像、音频、视频和数据文件。传统开发过程中素材物料需要在活动完成后进行统一的上线,而开发素材往往缺少线上的管理和托管,通过统一的文件服务,我们可以帮助研发人员快速完成物料的存储。

(2)权限管理

独立完成活动或者组件开发的场景毕竟属于少数,活动的开发一般少不了多个开发者的通力协作。当活动需要多个研发人员进行协作时,就需要一套权限逻辑维护活动与开发者的关系,方便开发者配置权限。同时,该权限逻辑会关联至VSCode开发工具,从而实现线上、线下权限一致。借助权限管理,所有业务发展都变得更易于管理,问题也更容易定位和跟踪。

(3)组件管理

组件管理不仅停留在上述的权限管理,我们对组件还要进行更加细粒度的控制,例如增加了组件状态、组件版本、组件预览、组件API等一系列围绕组件使用的功能:

  • 组件的状态分为上架、下架、已删除,方便研发将开发完善的组件交付给产品运营;
  • 组件版本是为了解决组件升级、回滚等场景出现,有了版本切换的功能,可以更加方便地应对线上诉求,避免突发情况发生;
  • 组件预览是为开发者提供了一套内容容器,让组件可以脱离活动直接在前台被预览,方便研发人员快速了解历史组件;
  • 组件API结合了组件使用手册和组件能力暴露的双重作用,通过提供场景化富文本形式的输入机制,帮助使用组件的用户快速理解组件的功能。

(4)开发社区

我们在活动开发过程会遇到各式各样的开发问题,这些问题或多或少可以通过开发自治去解决,但是如果没有一套规范的开发社区,来自开发者技术相关的探讨不能有效落地,也没有人牵头对接解决,就会急剧地降低开发者体验,影响开发效率。因此,我们需要搭建一个开发者社区,方便开发用户交流、表达诉求。

至此,我们完成了活动中台对研发的全方位的生态支撑,通过我们的预研和实践,同时满足了开箱即用的活动搭建和在线定制的活动开发的能力,双管齐下才是真正的活动支撑方案的制胜利器。