- Published on
对B端C端业务差异从技术侧(前端)上的一点理解
- Authors
- Name
- noodles
- 每个人的花期不同,不必在乎别人比你提前拥有
最近在梳理B端场景一些技术点,重新又思考了下B端场景和C端场景在技术侧一些差异点。抛开场景说技术都是耍流氓。自己刚好有B端和C端广告业务的背景经历,下面就结合广告业务来梳理下自己对B端和C端前端技术侧差异的一点理解。
面向用户的差异
面向用户的差异决定着业务具体的展现形式区别。
- 在C端的广告场景中,有可能通过互动玩法、多端分发、样式和场景的迭代来吸引用户对广告的关注,达到广告主的推广诉求。从这点上看在C端的广告场景中就涉及到跨端技术、样式动态化、互动玩法沉淀等。
- 在B端的广告场景中, 面向的是广告主,广告主的诉求就是如何高效快速的创建并且优化广告进行持续投放,广告投放的好更多在冰山水下的部分,比如引擎算法、策略、流量分发等,这里面需要结合整个平台的用户体验进行考量。 在冰山的水面部分,就涉及到广告的搭建而不同的广告会有不同的展示形式。也就意味着平台需要储备广告的同构渲染技术、低代码方案、配置化能力等
面向端的渲染技术差异
B端特点
- 在B端业务中主要的渲染场景是浏览器,容器相对单一。在业务编写的时候只需要关注主流PC浏览器的差异即可。
- 广告同构渲染技术,一个广告的搭建需要在B端给用户及时页面展示,同时在C端场景结合具体的容器渲染对应的广告。这里面有可能涉及到一码多投(编译成不同容器的代码)、SSR渲染等
- B端主要是PC浏览器场景,资源的编译发布流程相对简单,静态资源多通过部署到CDN平台即可。可能会涉及到SPA/MPA/SEO/SSR等技术方案
C端特点
- 在C端业务中,主要涉及到端容器的不同。比如安卓IOS容器、特定端不同版本容器、用户手机浏览器、微信小程序等,需要处理端差异并且涉及到的技术挑战也更多
- C端的发布场景涉及到多容器,就涉及到编译过程的多版本构建和分发并且由于C端对用户的触达诉求高,就涉及到端的动态下发,容器的预渲染技术等。
面向业务的复杂度差异
B端特点
B端业务主要在于流程的完善,以一个普通的广告为例
- 在广告创建阶段有投前工具和广告预览能力
- 在投中阶段有广告数据展示、相关操作、投中工具等
- 在投后阶段有数据报表等
从上面的分析中,可以分阶段梳理一些技术点,
- 动态化表单(react-jsonschema-form, Formily)、配置化列表(ANT DESIGN PRO), 配置化报表能力。主要为了解决迭代的效率问题
- 状态管理工具比如mobx,redux-toolkit,recoil,在相对复杂的场景需要考虑状态管理库对页面性能的影响和内存占用等
- B端在项目复杂度治理上有可能涉及到monorepo、微前端方案等
- 数据请求库会使用一些功能相对较多的请求方案比如react-query
C端特点
C端业务的复杂度在于变化,同样的广告有可能会有不同的样式或者不同的玩法,不像B端业务相对在发展路径上是有一定预期的。主要涉及到的一些技术点
- 动效(动画)等能力储备
- 多端环境差异的磨平,比如胶水层bridge方法的封装、编译层功能的优化
- 轻量级的状态管理方案,比如React的context API,zustand,同时需要做好粒度的空间,减少组件的重复渲染
性能考量的差异
在C端场景中,以广告为例如果广告加载速度慢或者广告加载失败,就意味这次广告流量的丢失,可能存在的广告收入就丢失了。所以在C端场景在性能考量上要更极致,更细致。
- 有不同的动态化技术出现,比如React Native或者其他的编译DSL方案减少中间层直接渲染Native View.
- 链路埋点
- 页面展示和操作的优化,页面操作可能涉及到与容器通信,需要进行优化 在B端场景,有可能涉及多个模块、多个资源的加载问题,就需要对项目资源进行划分,做好加载策略。异步资源、动态加载资源拆分、大文件处理等问题。
一些共同点
- 项目稳定性 报错的降噪处理、排障流程、CR流程、开发流程规范
- 普适的性能优化考量