低代码平台:10分钟从入门到原理
编辑导读:低代码平台是最近被热议的话题,通过自动代码生成和可视化编程,只需要少量代码,即可快速搭建各种应用,满足了很多开发人员和业务人员的需求。本文作者将围绕低代码平台从三个维度展开分析,希望对你有帮助。
近两年来,伴随着企业数字化转型和云计算的发展,低代码平台成为一个热门话题被越来越多的人讨论,互联网行业的从业者应该多少都会有所听闻。最近我刚好查阅了大量资料并体验了相关产品,决定专门写篇总结文章,从低代码平台的概念到原理,希望能帮助非业内人士对低代码平台形成更全面的认识。
本篇文章主要分享以下内容:
低代码平台简介
低代码平台两种技术路线
低代码平台核心要素
结语
一、低代码平台简介
1. 概念
广义上的低代码平台包括低代码平台和零代码平台,它们都属于APaaS(Application Platform as a Service 应用平台即服务),两者的主要区别在于对代码的依赖程度:
低代码平台:通过自动代码生成和可视化编程,只需要少量代码,即可快速搭建各种应用
零代码平台:零开发经验的业务人员通过拖拽等方式,无需编写代码,即可快速搭建各种应用
以上可知,低代码平台面向开发人员,专业性较强,可以提高开发效率,但要求使用者具备一定的技术基础;零代码平台降低了开发门槛,从而将用户范围扩展到了业务人员。大家可以类比一下PhotoShop与美图秀秀,大概就是这么个区别。
2. 优势及局限
相较于原生开发模式,低代码开发平台能显著提升开发效率,尤其适合业务变化快、预算有限、开发时间紧迫的企业应用场景;相较于只能解决行业通用问题的SaaS租用模式,低代码平台适用范围更广,可以满足个性化需求,有较强的灵活性。
低代码平台也有明显的局限性,至少就目前来说,它主要用于搭建企业软件,因为此类软件架构是有一定规律的,低代码平台的产品设计者正是找到了这种规律(快看,这就是智慧呀!),但它并不适合娱乐、社交等软件开发。此外,低代码平台目前仍处于发展初期,成熟度也待进一步提升。
二、低代码平台两种技术路线
1. 基于IDE框架的快速开发平台
该方案将传统的集成开发环境(IDE)充分可视化,开发者对前端界面组件、数据源绑定方式、数据模型、业务逻辑和工作流等都可以自由定义,平台将自动生成代码,开发者也可以添加自己的代码,对程序具有较强的控制能力,因此该方案具备更高的灵活性,可以设计出定制化程度高、逻辑复杂的软件。
由于该方案仍涉及代码开发、部署等技术工作,所以它仍然是一个技术开发平台,需要较高的学习成本,主要价值是提高开发效率,减少重复劳动。
Outsystems就是采用该方案的典型产品,如下为产品截图:
2. 基于模型驱动的应用平台
用户通过可视化方式构建数据模型、视图、权限、工作流等,即可在平台提供的环境中运行,无需编译部署,更像一种傻瓜式的应用搭建平台。平台对各类组件、业务逻辑做了较高层级的封装,因此用户无法随心所欲修改界面风格、交互方式、处理逻辑等。
该方案可以实现完全零代码,对使用者技术要求不高,但需要具备业务抽象、建模能力。主要价值是降低开发门槛、快速适应变化。
明道云、伙伴云等都是此类方案的典型产品,如下为明道云的产品截图:
三、低代码平台核心要素
软件产品的搭建从原生代码开发到SaaS租用再到低代码平台,都是人们为了降低开发成本、控制项目风险(超过50%的软件项目都是失败的,无法为客户带来预期价值)、提高开发效率不断努力的结果,人们期望能找到更通用更高效的解决方案。前文也已经提到,低代码平台之所以能广泛用于企业软件的搭建就是因为人们吃透了企业软件的本质(底层思维能力是多么的重要!),找到了某种规律,那么是什么规律呢?
绝大部分的企业软件由以下四个部分组成:
业务实体:即操作对象,如客户、订单
业务活动:即进行何种操作,如采购申请、合同审批
业务权限:即何种人拥有何种权限,包括数据查看权限和数据操作权限,如部门经理可以管理所有下属的客户信息,而员工只能管理自己的客户信息
统计报表:即从哪些方面量化企业活动情况,如客户增长率、各月销售额趋势
低代码平台将以上进行抽象,支持数据模型、业务流程、用户权限、统计图表,因此可以作为更通用的企业软件解决方案,这四类能力也是任何一个低代码平台都必须具备的核心要素。下面我们来看一下低代码平台是如何支持这四个要素的:
1. 数据模型
建立数据模型就是提取业务实体的数据特征,抽象为数据表,建立表间关系。B端产品经理制作ER图的过程就是数据建模。市面上常见的低代码平台均提供了丰富的控件,可以拖拽完成数据模型搭建。此外,数据模型搭建与表单展示合二为一,每完成一个数据表的创建,就自动生成了该表的增删改查功能及相关页面,进而隐藏了数据库设计、前端开发这些专业技术。其实,这也就是我们常说的表单引擎。
这里顺便提一下,虽然很多低代码平台将数据建模与表单展示合二为一,但通过这种方式自动生成的表单只能实现最基础的增删改查页面,用户对界面展示内容及形式的控制程度很低,无法满足大部分企业软件的需求,所以低代码平台一般还会提供自定义页面功能,用户可根据需要在页面上配置按钮、图表等元素,满足个性化需求。
如下图分别为明道云单个业务实体创建界面及平台自动生成的新增该业务实体页面。这里我以学生、班级为例,配置了【班级】这个业务实体包含的字段,并设置了【班级】实体与已创建的【学生】实体的 1:n 关联关系:
2. 业务流程
业务流程指为了实现某项目标,由多人合作,按照一定的规则、顺序进行的一系列活动,在软件中,业务流程的参与者可以是人,也可以是程序。低代码平台实现了可视化流程配置,用户对触发条件、处理节点、节点参与者进行配置,实现自定义业务流程。
如下图是明道云业务流程配置界面:
想要深入了解业务流程的小伙伴,推荐阅读《流程的永恒之道:工作流及BPM技术的理论、规范、模式及最佳实践》
3. 用户权限
大部分的低代码平台都采用了非常经典的RABC(Role-Based Access Control )模型管理用户权限,简单来说就是将拥有相同权限的用户添加为相同角色,通过为角色分配权限,实现了“用户——角色——权限”的授权模式。由于企业是一个组织,一般都会有部门的概念,所以也可以将部门添加到某个角色,实现“用户——部门——角色——权限”的授权模式。
如下图为明道云的用户权限管控方式:
4. 统计图表
统计图表大家都比较熟悉,我就不再赘述了,可以类比Excel中的透视图,统计图表由数据源、统计规则、展示形式定义,低代码平台也正是遵循这种方式,实现统计图表的可视化配置。
如下图为明道云统计图表配置页面:
四、结语
无论是原生开发模式、SaaS模式、还是低代码平台,变化的是软件开发模式,而永远不变的是让技术赋能业务,为客户创造价值。对业务的理解能力、抽象能力、解决方案能力值得每位B端产品经理不断探索、提升,大家共勉!
本文由 @辣椒圈 原创发布于人人都是产品经理。
题图来自 Unsplash,基于CC0协议。