博君一肖
楼主
发布于 2023-8-18 15:52:31
阅读 920
查看全部
编者按:近些年来,低代码开展火热,各种低代码平台如雨后春笋纷纷崛起,这些平台各定位不同,优劣不同,用户的选择空间很大。那么,假设用户想从零开端设计一个低代码平台,该如何做呢?
一、面向领域
低代码的实质是面向领域的,所以低代码平台也是面向领域的,例如面向游戏的、面向业务管理的、面向网站建立的。
什么是领域,即大家熟知的DDD(领域驱动设计,Domain-driven design,缩写 DDD),是一种通过将实现连接到持续进化的模型来满足复杂需求的软件开发方法。
领域是为需求分析工作效劳的,目的是开掘、分析、理解业务工作的实质。设计低代码平台的目的是把一些业务领域内要处置的问题停止笼统。对于不同的用户群体来说,低代码平台处置的主要问题也不尽相同。
本次讨论主要是业务管理领域,低代码平台面向的业务管理领域通常分为两个方面,政府的和企业的。在业务管理领域的低代码平台,通过可视化界面,利用少量代码搭建简单应用或复杂企业级应用,常见为APaaS产品,例如国内老厂商天翎。
对于政府机构,天翎低代码平台通过提供方便使用和构建的智能化处置方案来协助政府。平台提供一个拖放式的可视化界面,可供各部门用于自动化流程和构建应用程序。在满足不同部门和业务的定制化要求前提下,节约了本钱和时间。
对于企业机构,天翎低代码平台协助企业将本增效,推动企业数字化转型。企业可以快速构建最低限度可行的产品,即时部署这些应用程序,协助企业实现持续的创新和扩展。
二、引擎化
低码平台的核心是笼统业务需求,满足详细应用设计,提供统一规范的应用引擎,所以优秀的一个低代码平台必定是引擎化的,核心引擎主要包括:数据引擎、表单引擎、流程引擎、规则引擎、报表引擎、高级宏语言等。
数据引擎,即建模引擎。基于模型驱动,低代码平台内置功能强大的建模引擎,能为企业快速创建智能化、挪动化的应用程序。通过实体、数据构造、枚举等构建低代码数据模型。可视化定义数据之间的关联关系,平台自动生成数据库表和通用接口。
基于模板创建页面或在空白页面上通过拖、拉、拽组件的方式完成页面搭建。平台提供规范化组件,以及组件扩展才干,可维护自有组件库。
例如:MyApps提供“印刷”和“托拽”两种流程业务表单设计形式,印刷形式编辑简单明了,拖拽式编辑快速便利,控件调用区、表单内容区和属性配置区一览无余。
涵盖了流程设计、流程运行、管理维护、统计分析与流程优化等各类工具,协助企业快速部署、有效监控并持续优化业务流程。低代码平台集成流程引擎,支持BPMN2.0规范的业务流程开发,并在此根底上停止了模型和符号规范化。
规则引擎由推理引擎开展而来,是一种嵌入在应用程序中的组件,实现了将业务决策从应用程序代码中分别出来,并使用预定义的语义模块编写业务决策。
使用规则引擎可以通过降低实现复杂业务逻辑的组件的复杂性,降低应用程序的维护和可扩展性本钱。
无需开发人员协助,业务人员也能配置出功能强大的统计报表。报表运行时自动按当前用户权限过滤报表数据,动态显示业务统计结果。可通过拖拽组件的方式实现折线图、柱状图、饼状图、散点图等,有的平台可实现支持地图/冒泡/蜘蛛/瀑布/温度/旭日/漏斗图等炫酷的图表款式。
也可在BI产品上完成从数据到模型再到报表的设计,低代码可以直接将生成的复杂报表集成到应用中。例如,MyApps智能报表引擎支持数据大屏将数据指标动态直观化展示,辅以电子围栏和红黄绿灯等个性化功能。
宏语言是一类编程语言,可以用来描绘软件和处置软件移植等问题,用于书写宏指命和宏定义的表示法和规则。其全部或多数计算是由扩展宏完成的,扩展宏可用于扩展原软件的功能,满足用户自身需求。
低代码平台基于高级宏语言设计,使用可视化设计开发图形界面,具备灵敏的拓展性,不只能满足企业的根本软件开发需求,而且具备长大属性,可以持续为政企软件开发提速和组织力晋级赋能。
三、技术逻辑和业务逻辑分别
什么是技术逻辑,业务逻辑?
技术逻辑:一种应用逻辑,研究如何将逻辑理论应用于各种技术系统,特别是应用于对自动化机器(如计算机、自动翻译机等)停止综合分析。
它们和业务无关,仅仅代表应用中的一种技术才干。如,我的数据库表如何设计,验证谁来做,是前后端分别还是不分别,数据是从前端来,还是从后端给。
业务逻辑:在智能网中,对利用积木式组件(SIB)和根本呼叫处置(BCP)模块的组合来完成每项业务特征的过程描绘。(智能网是用于生成和提供电信新业务的网路构造体系。主要由业务交换点、业务控制点、业务管理点和业务创建点组成。主要目的是实现新业务的快速引入。)
它们和业务相关,代表应用中的一种业务才干。如,填入电话,邮箱,头像图片,图片大小的规定,以及短信验证码。
技术逻辑是为理处置业务逻辑问题的,只要在实现业务、给人们带来便利的前提下,技术的存在才有意义,即业务决定技术、业务统领技术。另一方面,没有技术逻辑,业务逻辑就无法被虚拟化,消费效率就很难有效提升。随着软件技术和业务开展到一定水平,在项目管理工作上必需停止的一种晋级,技术逻辑和业务逻辑分别。
为什么要分别?
最优认知方式——整体到细节
美国心理学家乔治·A·米勒(George Armitage Miller)曾在《金字塔原理》中指出:大多数大脑的短期记忆无法一次容纳约7个以上的记忆项目,有的人可能一次能记住9个项目,而有的人则只能记住5个。大脑比较容易记住的是3个项目,当然最容易记住的是1个项目。
这意味着,当大脑面对一个新的事物时,假设有多个项目,会通过逻辑形式将这些事物组织起来,即认识整体。
当一个开发人员面对一个新项目的时,首先会从整体(业务逻辑)去理解这个项目,然后再会去看每个功能详细的实现细节(技术细节/逻辑)是什么。假设先从细节动手,很容易因缺少全局观而无视重点。
当把业务逻辑的代码和详细的技术实现停止分别,由整体到细节,先理解业务逻辑,再去做技术细节的展开,这能让开发人员更容易意识到真正的关注点所在,而不是沉溺于技术和编程细节,更有利于认知和技术的实现。
如何实现技术逻辑和业务逻辑的分别?把他们停止分区,将业务逻辑放到一个口袋里,将技术细节放到一个口袋里,实现分层设计。
分层设计,即多层架构。多层架构是开发人员在开发过程当中面对复杂且易变的需求采取的一种以隔离控制为主的应对战略。每一层都可以单独部署。将整个项目自下而上的分为:数据耐久(数据访问)层,逻辑(业务)层,UI(展示)层。
1)数据访问层(Infrastructure Layer):负责将数据耐久化响应的数据存储设备上,如DataBase,Txt,Excel等。
2)业务层(Service Layer):封装了核心业务逻辑,负责处置为满足软件需求而订制的一系列的逻辑与业务。
3)展示层(Presentation Layer):负责与用户交互的界面,良好的用户体验多是使用在这里。
MyApps低代码平台就是分层架构,如下图所示。
最上面是展示层,支持第三方应用、业务系统、企业微信、APP等,用户可以从这里获得良好的的交互体验;通过展示层进入业务层,MyApps采用的是SpringBoot微效劳架构,并且平台分成运行时效劳(Runtime-service)、设计时效劳(Designtime-service)、受权时效劳(Authtime-service),不同效劳执行不同工作,以保证平台性能处于最好状态。
最下面是数据访问层,主要是一些中间件效劳,包含数据库效劳、数据缓存效劳、消息队列表效劳、文件存储效劳。 |
|