低代码最近几年真是站在了风口处,只要是能减少代码编写的,都冠上了低代码平台、或者产品,搞的乌烟瘴气,仿佛只要低代码才干代表软件开发,其它开发方式都太Low,不值得一提,这是误区,得治。
低代码由来已久
低代码不是新物种,应该说是一个新名称而已,很大水平上是资本的叫法,好听,能上档次,其实实质就是让客户或者使用者能利用或者使用平台实现自己的业务,而不是通过联络软件开发商或者二次开发来实现,以前就叫"客户自定义功能",假设是老码农,尤其是7~8年以上的老码农,差不多更熟悉这个名字。低代码也没什么,无非就是在最近几年呈现的前、后端及根底平台的新技术上更方便、规模更大、部署施行更方便落地。从满足需求上来说,不时没有变化,不论是以前叫客户自定义的时代,还是目前叫低代码,都是为了满足客户更灵敏多变的需求,在需求变动的情况下,系统或者平台能在极短的时间内快速响应,尽可能的做到无开发人员参与,客户自己在提供的平台上经过调整或者设计满足自己的业务变化。
如何实现低代码功能
低代码实现方式从十几年前到目前不时没有改变过,改变的是详细的技术,从javascript、vml、svg到目前的vue、react、canvas,但原理及实现架构设计没有多少改变,主要还是分为页面驱动、模型驱动。
页面驱动
功能说明:页面驱动就是指使用者直接设计页面、表单、规则,不考虑数据模型,用户根据提供的UI控件实现规划、表单、页面、单据设计,页面显示就是把设计的时候复原呈现,最后直接供最终使用者使用。使用场景:目前市场上常见的表单设计器、流程设计器、规则设计器根本都属于页面驱动,这类设计根本不用考虑数据模型,用户设计成什么样就是什么样,用户上手非常快,也容易上手,所以目前展示类、快速原型、示意图、To C类多以这类方式实现,功能实现:页面驱动由于只考虑呈现效果,所以实现上也简单,且主要对前端有要求,实现过程可以使用如下示意图表示
{ "formConfig": { "label-width": "80px" }, "fields": [{ "isRender": true, "isShow": true, "isAnalysis": true, "children": [], "__layoutConfig__": { "style": "", "props": { "span": 24 }, "attrs": {}, "on": {}, "userDefineProps": {} }, "__formItemConfig__": { "props": { "label": "活动名称", "rules": [], "required": true }, "prop": "name" }, "__controlConfig__": { "props": {}, "attrs": {}, "userDefineProps": {} }, "tagName": "el-input", "__layout__": "colFormItem", "id": 1593757474090, "model": "name", "name": "单行文框", "tagIcon": "input", "controlPanel": "el-input", "uuid": "el-input-0", "sortNum": 0 }], "formApiValid": []}
模型驱动
功能说明:模型驱动是指先把要表示的对象模型及模型关系规划并设计好,然后根据模型去设计页面、表单、单据等等,页面上能呈现的数据来源于提早设计好的数据模型,页面显示的时候跟页面驱动是一样的,都是根据表单设计器设计去复原页面,供使用者使用。使用场景:目前这类开发方式主要用在系统性的平台或者业务系统中,尤其是to B的系统、或者是在已有的系统上做扩展功能需求,像OA、EHR、理赔、物流系统等等。功能实现:功能实现其实跟页面驱动类似,可以先设计页面再跟模型映射,也可以根据模型映射页面上的控件,这两种方式都可以,最终形成的页面的页面设计构造类似
{ "formConfig": { "label-width": "80px" }, "fields": [{ "isRender": true, "isShow": true, "isAnalysis": true, "children": [], "__layoutConfig__": { "props": { "span": 24 }, "attrs": {}, "on": {}, "userDefineProps": {} }, "__formItemConfig__": { "props": { "label": "学历", "rules": [] }, "prop": "random50" }, "__controlConfig__": { "props": {}, "attrs": {}, "userDefineProps": { "optionType": "static", "optionCollection": [{ "label": "高中", "value": "1" }, { "label": "专科", "value": "2" }] } }, "tagName": "LElSelect", "__layout__": "colFormItem", "id": 1594263810269, "model": "random50", "name": "选择框", "tagIcon": "select", "serviceName": "LElSelect", "controlPanel": "LElSelect", "uuid": "LElSelect-3", "document": "https://element.eleme.cn/#/zh-CN/component/select", "sortNum": 0 }], "formApiValid": []}总结
低代码实现方式主流程就是设计页面、流程、业务需求规则等等,然后再复原,供最终使用者使用,真正落地使用到的技术都相差不大,根本的开发方式也就是文章中提到的页面驱动或者是模型驱动,但在详细开发过程中还是需要考虑很多问题的,比如:数据怎么保管、权限怎么设计、如何多业务系统互相交融、数据如何再利用、公有云&私有化如何部署等等问题,都是需要根据详细问题详细设计的处置方案的。
假设有低代码这方面的问题,可以留言或者私信沟通。
喜欢的朋友记得给个关注~ |