第四章:表单引擎、Views引擎和流程引擎——架构降低迭代成本

发布于

本文结构:

这三个东西有什么用?架构是用来干嘛的?

一、表单引擎(SAAS用户的行为特征和表单引擎的价值)

二、Views引擎

三、流程引擎

这都是什么东西?有什么用?

很多人以为做个SAAS、做个APP等,就是实现一些功能,就行了。

当老板的这么想,所以无法理解做产品的和做架构的都是在做什么。于是就逼着写代码的用最快的速度把功能给实现了。

写代码的都是打工的,没有办法,反正老板要个什么功能就给做个什么功能就完事了。

皆大欢喜。

至于什么架构?这么复杂,这么吃力不讨好的事,就别想了,反正做了也不给钱,还嫌弃你做得慢。

。。。。。。

然后,然后的然后,就发现这东西最终给做烂了。想要改动个小东西、想要增加个小功能,不好意思,改不了,加不了,你得推到重来。。。。。。。。

可能,这个故事太普遍了吧,最近这些年,已经不止一次地听到、见到类似的故事了。

全都是传统行业转型互联网的老板+打工的开发人员的故事。

经典啊。

上一篇,说了,架构。

架构的最终目的是迭代的边际成本最低。

这个系列的文章不深入讨论这个事情。以后,会专门写一个系列的文章来说说架构。

总之,对于SAAS来说,不管采用什么样的架构,有三个家伙是必须要提一下的。

表单引擎、VIEWS引擎和流程引擎。

你可以把这三个家伙认为是一个SAAS产品的三剑客。这三个家伙在SAAS产品中的使用是非常高频的。当然,除了这三个引擎,还有其它的一些东西也是相对高频的,比如:模板引擎、编辑器等等。

一、表单引擎

SAAS类产品,相对于其它的一些非社交类的互联网产品,普遍的一个特点,就是大量的POST行为,甚至主要是POST行为。

注:POST行为,没玩过代码的朋友,可以这样理解:用户从客户端向云端提交数据,包括写入数据库和上传图片、文件等。

1、表单引擎是做什么的?

表单引擎就是处理POST行为的。通过配置,形成需要的表单。对于用户通过这个表单提交的数据,经过一系列的处理后,提交给云端保存。

表现出来,可能是一个正常的、有很多表单项(输入框、选择器等)的表单,也可能只是一个按钮。具体长什么样,完全是根据实际业务的需要来配置的。

2、表单引擎的基本架构

表单引擎一般可以分为表单渲染层、前端数据处理层、后端数据处理层。表单渲染层都是通过配置,配置出来的。前端和后端的数据处理,都是根据用户提交的数据进行自动化处理和保存的。

3、表单引擎与form builder的区别

Form builder 就是通过可视化的配置和编辑,最后生成一个表单的工具。

Form builder类的产品是用途很广泛的,它让用户有能力设计一个个性化的表单用在自己需要的场景中。对于很多办公场景,form builder都是一个必须的工具。

正是因为它的用途广泛、需求量大,从Google、微软等巨头到一些小的互联网企业都有相应的产品。

不过form builder和表单引擎可不是一回事。

准确地说,form builder是架构在表单引擎的基础上的。

我们知道,开发人员使用表单引擎,其实就是配置参数。所以,如果能够可视化地实现参数的配置,那么,就可以让普通用户创建自己需要的表单了。

所以,大多数form builder都是在表单引擎的基础上,增加一个表单编辑器,实现对表单引擎进行可视化的配置。

表单引擎在SAAS中的用途是很广的。你经常见到的在线文档、在线作图等编辑类的功能、各种修改、编辑、提交类的操作等都是建立在表单引擎的架构上的,或是把表单引擎作为一个不可或缺的模块引入的。

二、Views引擎

views是个什么鬼?

[pms-restrict subscription_plans = “1125”]

翻译成中文就是视图,别说没玩过代码的,就是玩过代码的估计都猜不对这个views引擎是个什么东西。

因为在技术上,view这个词至少有两个意思。一个是架构方面的视图层(MVC架构、MVVC架构),另一个意思是指数据库方面的数据视图。

这个views引擎,严格地说,两个意思都涉及到。但主要还是数据视图。

简单地说,views引擎就是从各个维度检索数据,然后按照设定好的模板将数据列表列出来呈现在页面上。

也可以理解成,views引擎,实际上就是通过配置,能列出各种列表的列表引擎。

不仅能列出列表,还能在每一个列表项后边加上各种操作,比如:查看、编辑、删除等等。

相信,说到这儿,玩过代码的朋友,尤其是做过后台和管理类SAAS的朋友都知道这个东西的价值了吧。

应该说,一个系统的列表页,无论是前端还是后台,无论是列表样式还是各种卡片样式,无论每一个列表项后是不是要加上各种操作,都可以通过views引擎的配置来完成。

三、流程引擎

这是个好东西。

通过配置,就可以配置出各种各样的流程,实现各种业务的高效协作。

和表单引擎类似,很多流程引擎为了方便自己的用户创建自己的流程,也会使用可视化的流程图编辑器,然后把流程图转化成配置文件,实现流程引擎的配置。

流程引擎的核心,简单地说是对状态的有序化管理。所以,流程引擎就是对状态的有序化、配置化来实现一个又一个的流程的。而,有序化和配置化又会涉及到很多东西,比如表单引擎、用户角色权限体系的设计等等。尤其是角色权限体系的设计,对流程引擎的影响是比较大的。

注:这段话,对很多人来说,可能不好理解。后边有一章会专门讲流程设计的方法论。会说得比较详细一些。

现在比较流行BPM,也就是业务流程管理。成熟的BPM系统的核心其实就是流程引擎。

[/pms-restrict]