文末福利:淘系前端团队 618 实践小册

NO.1

背景

  • 随着行业业务发展,需求不断增多,并且各个行业业务各自为政,没有通用化的动力和需求,导致模块无法通用化,复用度低。

  • 小程序成为行业运营趋势,多端(web/小程序)诉求增加,现有业务组件和模块无法满足跨端诉求,前端兼容成本高,工作量大。

天猫行业基于这样的诉求下,前端计划通过联合设计、产品将行业UI规范化(设计师规范设计稿,前端根据规范沉淀UI组件和模块),提升UI组件和模块复用度,沉淀通用物料和跨端解决方案。计划分为三步走:第一步,将行业UI规范化;第二步,制定并落地跨端解决方案;第三步UI智能化。接下来主要分为这三个部分进行拆解进行描述。

NO.2

行业UI规范化

不同的行业业务各自为政,设计师也有着自己的规范和想法,各个行业频道百花齐放,导致功能类似的模块重复设计、重复开发,解决行业效率痛点的第一个有力抓手便是推动行业进行UI规范化。我们方法是找行业其中一些频道进行分析,如下:

我们可以发现其实行业频道的模块大同小异,功能类似,一些高频模块的覆盖率达到了70%+,对这些高频模块进行规范和复用,理论上能省掉近一半的开发人力。于是,接下来对高频模块开始进行抽象和规范:

看到这里,大家可能会有疑问了,UI规范后真的能提升一倍效率么?答案是:基本不可能的。我们在落地的过程中发现行业和营销会场对比,行业对心智的要求非常高,不同的行业和频道需要自己的心智,所以在行业场景中,无法直接使用组件/模块,业务对模块和组件的皮肤提出了个性化的要求。针对于这个诉求,我们进一步设计了一套基于domKey的主题配置方案,来动态修改组件/模块主题。

在社区方案中,如果需要修改组件/模块的主题,大家可能第一个会想到是提供全局的css样式配置文件。但是在行业的搭建场景下,为了避免不同模块之间的样式污染,所有css样式在构建时便以css-inline的方式编译到了每个dom上,导致无法使用css样式覆盖方案来修改组件/模块主题。

还有另外一个原因,在规范的UI组件中,除了颜色等样式的变化,内容、属性和事件也需要变化,于是需要将可变的属性通过props抛出给到开发者使用。基于这种方案,目前的行业UI规范稿,部分组件的props会非常多,导致使用体验和可维护性大大减低。

基于上面两点考虑,设计了一套DomKey机制来达到样式/事件/属性/内容可灵活配置,来满足行业个性化的诉求。

domkey机制在落地的过程中,我们发现这个方案的一个缺点: 如果一个业务基于规范修改的点非常多, props字段修改就增多, 开发者使用组件的体验就会大大减低

为了增加开发者的使用体验,提升开发者的效率,我们修改了组件的实现方案,将组件和主题进行分离,然后基于iceluna开发了一套组件主题可视化生成的工具--织网_组件配置中心。我们可以通过此平台可视化的生成个性化的主题,发布成一个npm主题包。

到此为止,以上的方案已经能满足绝大多数的行业场景,基于这个方案我们落地了行业的一些频道,也取得了不错的结果。

NO.3

跨端解决方案

跨端方案是基于rax的构建时方案,使用rax语法,在构建时实时转化出原生的语法,天猫行业作为第一批试点业务,落地了8+小程序,业务实践中也踩了不少坑,如果大家想了解更多细节,可以参考这两篇文章《Rax多端小程序从0到1》和《Rax小程序踩坑踩坑指南》,后面陆续加推跨端解决方案的系列文章。

NO.4

UI智能化

众所周知,一个模块/组件是由UI+Data+逻辑组成,上面我们做了很多组件/模块UI层面上的规范和方案,在实际业务需求中,多变的诉求,使Data和逻辑有所变化,导致还是有相对比较大的开发量,我们在想是否可以对数据层也做一些约束和规范,使用直接的数据模型直接驱动组件,是不是大部分普适的模块就不需要开发了呢?于是我们有另外一个产品:织网_行业魔方来解决这个问题。

行业魔方刚开始切入的点是: 支持行业Feeds模块配置不同类型数据源,并对应不同的物料(UI)。针对于这样一个诉求我们开发了一个工具,支持投放数据源和物料关系的配置,通过和行业后端约定数据规范,使用阿拉丁方案能力,进行数据处理并渲染。关于行业魔方具体的细节可查看这篇文章《行业魔方》)

行业魔方第一期做了一个非常重要的实践,将数据源和物料进行解耦,通过配置进行关联。此方案落地了天猫新风尚大促业务,验证了丰富的UI表达类型,对用户点击的提升有显著的作用。基于这样的结论,我们设想是不是可以根据不同的人群属性,给其匹配最合适的UI表达式样,这样应该可以更大限度提升用户点击率。于是,千机变应运而生。

以上是物料在千机变的应用,关于千机变更加详细的方案后续再介绍。

NO.5

织网的诞生

目前在整个阿里,跨端物料方向上建设才刚刚起步,为了提供高频可复用的业务域跨端物料,提供跨端物料解决方案,我们规划了织网平台,服务于行业、轻店、淘小铺、营销导购的开发同学进行跨端生产的场景。有跨端诉求的业务欢迎一起交流~

推荐阅读
1、Chrome 大版本更新来了,这是一次「史诗级」增强2、你不知道的 TypeScript 泛型(万字长文,建议收藏)
3、尤大 3 天前发在 GitHub 上的 vue-lit 是啥?
4、字节跳动的算法面试题是什么难度?如果觉得文章不错,帮忙点个在看呗

跨端物料解决方案-织网相关推荐

  1. 前端 domparser未定义怎么解决_开源|wwto:小程序跨端迁移解决方案——微信转其他小程序...

    开源项目专题系列 (二) 1.开源项目名称:wwto 2.github地址: https://github.com/wuba/wwto 3.简介:wwto是58同城推出的一种小程序跨端迁移解决方案,可 ...

  2. 闲鱼的统一跨端 API 方案 —— Uni API

    本文将介绍跨端 API 解决方案应该解决什么问题,提供什么能力. 背景 随着 C 端流量红利的逐渐消失,端外投放已成为业务寻求增长的重要抓手之一.而不同 App 上存在不同应用场景.不同时期诞生的前端 ...

  3. 重磅!滴滴跨端框架Chameleon 1.0正式发布

    导读:滴滴在 GitHub 上开源的跨端解决方案 Chameleon(简写 CML)正式发布 1.0 版本,中文名卡梅龙:中文意思变色龙,意味着就像变色龙一样能适应不同环境的企业级跨端整体解决方案,具 ...

  4. 重磅!滴滴跨端框架Chameleon 1.0正式发布(学不动啦...)

    原文链接:重磅!滴滴跨端框架Chameleon 1.0正式发布 Chameleon社区 滴滴在 GitHub 上开源的跨端解决方案 Chameleon(简写 CML)正式发布 1.0 版本,中文名卡梅 ...

  5. *uni-app之H5端跨域问题解决方案

    场景:跨域问题只存在于浏览器端 ,App和小程序不存在跨域问题. 产生原因:由于uni-app是标准的前后端分离模式 开发h5应用时如果前端代码和后端接口没有部署在同域服务器,就会被浏览器报跨域. 前 ...

  6. JSON Web Token(缩写 JWT) 目前最流行、最常见的跨域认证解决方案,前端后端都需要会使用的东西

    JSON Web Token(缩写 JWT)是目前最流行,也是最常见的跨域认证解决方案.无论是咱们后端小伙伴,还是前端小伙伴对都是需要了解. 本文介绍它的原理.使用场景.用法. 关于封面:这个冬天你过 ...

  7. 滴滴跨端框架 Chameleon 正式支持快应用

    桔妹导读:抗击疫情,桔妹提醒大家出门带好口罩,勤洗手,多通风.武汉加油!中国加油!在大家开工之际,桔妹邀您阅读来滴滴开源专栏内容,为你分享滴滴跨端框架 Chameleon 的最新分享. 0. 目录 点 ...

  8. 小程序跨端框架(taro/uni-app/kbone)横评之2020版

    文章转自:https://www.cnblogs.com/hupingzui/p/12692509.html 微信竟然推出了跨端的kbone,说明跨端的开发已经深入人心:又是新的一年过去了,小程序开发 ...

  9. 目前主流跨端开发技术一览

    关键词:React Native, uniapp, Flutter ,Tauri, Ionic 和 weex 文章目录 前言 结论 几种常见跨端技术对比 加快ReactNative开发的Expo Ta ...

最新文章

  1. shell中字符串截取的几种方法
  2. 2020人工智能全球女性榜发布,致敬这些杰出的女科学家
  3. [转]布隆过滤器详解
  4. eclipse android或者Java应用查看jdk路径和版本与android studio查看jdk版本
  5. 树形结构递归初始化(父节点,统计字段等)
  6. AspxTreeList获取选中项的值
  7. 4.7_singleton_创建型模式:单例模式
  8. 操作xml文档的常用方式
  9. 大量思科设备存在IPv6死亡之Ping漏洞
  10. 从Python入门人工智能指南
  11. PS自学教程是Ads设计必备 盘点精彩对比式Ads
  12. Python中格式化操作漂亮打印文件的读取和写入
  13. PyWebIO 简单的Sanger截图应用
  14. 在html里ff3d3d是什么颜色,HTML一些颜色方面的参考
  15. pppoe协议和pppd源码分析
  16. Verilog RTL 代码实战 01——半加器全加器
  17. Defcon - 2015 - 初赛 - r0pbaby writeup
  18. 【.NET】IQueryable扩展方法实现复杂查询条件
  19. SenseTime Ace Coder Challenge 暨 商汤在线编程挑战赛*(抽球游戏-fwt开立方)
  20. Python 实现黑白棋

热门文章

  1. xshell6评估过期 如何激活
  2. 饱和气压与温度的关系_饱和水汽压与温度的关系.ppt
  3. 卡方分布(Chi-Square Distribution)
  4. IOS开发笔记之推广安装(用网页判断是否安装App)
  5. Java常用类练习01
  6. CSS的display的多种布局方式总结(inline-block,table,flex)
  7. 小乌龟Franklin总结
  8. 很酷,酷播wordpress视频插件(支持PC/安卓/苹果跨平台播放)
  9. 解决SQL Server2017的sa用户被禁用
  10. 了解SpringBoot