自动化统一化生产的前提一定是要有一个标准化的表达做支撑的,这个中间 DSL 该如何设计才能承载住全量的需求内容呢?另外通过什么样的方式可以让运营能接受和理解这部分的逻辑编排?
首先我们解决的问题一定是有边界的是处在一个业务领域的,并在这个业务域下进行分析。因此我们分析了一下我们最常见的业务形态- 模块。而据统计“相同业务能力,不同技术实现”的模块在整个天马体系中的占比非常的高,单单拿通用商品坑来看就有上千个,而这些模块大部分都是相同的逻辑实现,也有很多是处于不同时期的技术产品。
一个模块在前端的开发设计里,大概可以分为4 部分,通用组件,通用Action,视觉代码,驱动逻辑。
我们可以看到视觉和通用组件以及Action 都是已经有了的,变动周期比较低。而驱动逻辑部分是是业务中的主要实现逻辑,如何让这部分逻辑能让运营进行产出呢?
首先我们将这部分能力进行一个拆解,我们得出一个初步的结构,就是由 运算符 + 表达式 + 基础action + pipeline 组成的表达结构,这个表达也可以组成一个新的action,再加上trigger,整体就完成一个workflow 的能力了。
new Expression = Variable + Operator + Expression + Pipeline
new Action = Expression + Action
Workflow = Action + Expression + Trigger
业务模块的四个部分中,驱动逻辑就是我们主要核心产出的内容,根据我们的经验这部分ProCode 大部分都是表达式 Expression 内容。因此我们只要能让运营能够自主的完成 ProCode 部分的编排即可高级定制需求的产出物。
让运营完成所有的ProCode 也显然是不现实的,但是对于IFTTT 这种简单的逻辑表达,只要将这部分内容的表达可以使用更接近自然语言的表达方式,自然会降低整个的理解难度。
以上内容摘自《大促背后的前端核心业务实践》电子书,点击https://developer.aliyun.com/topic/download?id=728可下载完整版。
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。