编者按:近些年来,低代码发展火热,各种低代码平台如雨后春笋纷纷崛起,这些平台各定位不同,优劣不同,用户的选择空间很大。那么,如果用户想从零开始设计一个低代码平台,该如何做呢?

一、面向领域

低代码的本质是面向领域的,所以低代码平台也是面向领域的,例如面向游戏的、面向业务管理的、面向网站建设的。

什么是领域,即大家熟知的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),不同服务执行不同工作,以保证平台性能处于最好状态。

最下面是数据访问层,主要是一些中间件服务,包含数据库服务、数据缓存服务、消息队列表服务、文件存储服务。

如何设计一个低代码平台相关推荐

  1. 如何从零开发一个低代码平台,有哪些成熟技术组件可用

    目前国内主流的低代码开发平台有:宜搭.云程.简道云.明道云.氚云.伙伴云.道一云.JEPaaS.华炎魔方.搭搭云.JeecgBoot .RuoYi等.这些平台各有优劣势,定位也不同,用户可以根据自己需 ...

  2. 建设企业中台?你可能缺一个低代码平台!

    00 引言 [中台] 是IT圈这两年热议的一个话题,与此同时 [低代码开发平台] 的概念也正在逐渐被关注.两个概念的兴起并不是一种巧合,他们都是由时代发展的趋势(人类技术与社会环境变化的速度不断被刷新 ...

  3. 手把手教学:如何用低代码平台开发一个软件?

    编者按:作为近年来在IT界掀起一轮热议的快速开发工具,低代码一直为大家所好奇,本文以低代码平台为主题,谈一谈为什么要用低代码.怎么用低代码. 为什么要选择低代码开发 低代码快速开发这个概念火爆,大概要 ...

  4. 你真的了解低代码平台吗?

    从 2020 年疫情之后,低代码这个概念就突然变得火热起来,各大自媒体纷纷推出介绍低代码的文章,InfoQ 也曾发表过一篇<为什么我说低代码是"行业毒瘤"?>引发了热议 ...

  5. 低代码发展专访系列之六:低代码平台能解决业务重构的问题么?

    编辑 | 曹芊芊 话题:低代码发展系列专访 前言:2019年开始,低代码爆火.有人认为它是第四代编程语言,有人认为它是开发模式的颠覆,也有人认为是企业管理模式的变革--有很多声音,社区讨论很热烈.CS ...

  6. 低代码发展专访系列之四:低代码平台会带动企业的组织变革吗?

    前言:2019年开始,低代码爆火.有人认为它是第四代编程语言,有人认为它是开发模式的颠覆,也有人认为是企业管理模式的变革--有很多声音,社区讨论很热烈.CSDN随后展开低代码平台产品系列活动,包括低代 ...

  7. 低代码平台会成为企业数字化基础设施么?

    前言:2019年开始,低代码爆火.有人认为它是第四代编程语言,有人认为它是开发模式的颠覆,也有人认为是企业管理模式的变革--有很多声音,社区讨论很热烈.CSDN随后展开低代码平台产品系列活动,包括低代 ...

  8. 低代码平台和专业开发人员——完美搭档?

    使用前端和后端框架从头开始开发企业级 Web 应用程序需要很长时间.如今,客户正在寻找快速且具有成本效益的解决方案,并倾向于使用无代码和低代码应用程序开发平台. 使用前端和后端框架从头开始开发企业级 ...

  9. 天画项目-低代码平台-总体设计与实现

    一.背景&需求 1.1 总体背景 我在业余时间构建了一个租房平台,采用springboot微服务的架构模式,同时结合服务化思想进行代码实践,但是由于存在很多重复且低效的变更导致业余时间对这个租 ...

最新文章

  1. cpp map 获取所有 key_Flutter 中最熟悉的陌生人之 Key 全面解析
  2. 适应各个浏览器的iframe高度自动调整
  3. 比乐高便宜十倍!4合1电动遥控积木玩法百变
  4. 计算机操作系统(11):负载均衡
  5. mysql more和tail_cat、less、more、head、tail这几个命令区别
  6. VC++实现自定义切换按钮
  7. 公众号内打开提示404_200元500元/篇 | 她家小酒馆儿公众号征稿!(三天内审核、有额外稿费)...
  8. mysql查询市区县_通过数据库获取省份城市区县的名字
  9. Ghostexp.exe
  10. Oracle等待事件之buffer busy waits
  11. Unity客户端开发面试题记录
  12. 基于springboot项目中使用docker-compose+es+kibana+logstash+mysql 提高数据查询效率
  13. 探秘手机距离传感器工作背后的那些事儿
  14. 有符号整型加法与乘法
  15. ByteV打造3D海上风电监控平台 ——助力风电能源可持续发展
  16. TongWeb上应用部署方式
  17. 《工程伦理与学术道德》之《工程与伦理》
  18. 从Python到NumPy,细说最接近人类思维的in操作
  19. android 剪切板监听_android剪切板操作
  20. i.MX 8M Mini Cortex-M4 Hello World

热门文章

  1. Windows 无法启动xx服务 错误1053
  2. Outlook2007设置手册
  3. 梦幻诛仙手游服务器维护中,《梦幻诛仙》手游3月2日更新公告 维护优化系统
  4. 诛仙哪里炼器服务器最稳定,让你又爱又恨的NPC:《诛仙3》的炼器师坑了无数玩家...
  5. windows系统的信使服务
  6. 运放放大倍数计算公式_四倍运算放大器电路设计原理图汇总
  7. php qq jssdk,QQ登录JS SDK教程,调用openapi接口
  8. [MTK][FAQ14772] 如何实现插上电池自动开机
  9. MongoDB安装与基本操作
  10. ubuntu16.04下安装QQ教程