当前位置: 首页 > news >正文

3 分钟,带你了解低代码开发

一、低代码平台存在的意义

传统软件开发交付链中,需求经过3次传递,用户→业务→架构师→开发,每一层传递都可能使需求失真,导致最终交付的功能返工。

业务的变化促使软件开发过程不断更新、迭代和演进,而低代码开发即是软件开发衍生的其中一条分支。低代码是传统软件的进一步演变,以其高效、灵活和稳定的特点应用到企业的业务场景。

低代码开发降低了应用搭建门槛,减轻对专业工程师的依赖,使得业务人员用拖拽的方式即可自行搭建应用平台,满足业务部门的个性化需求,降低人力成本,缩短项目整体开发周期。

在后期运维上,低代码平台的迭代速度快,灵活性更高。低代码开发的核心价值是敏捷响应用户需求,增加应对复杂应用场景的能力。

二、国内外低代码开发研究现状

IBM在1980年首次提出低代码开发,在随后的近30年内发展缓慢,随着技术的沉淀和应用软件的深度应用,低代码迅速发展,主要经历4个阶段。

1)萌芽阶段:1980—2000年,IBM的快速应用程序开发工具(RAD)被命名为低代码。美国公司和实验室开始研究可视化编程,推出第四代编程语言(4GL),后来衍生为可视化编程语言(VPL)。

2)缓慢发展阶段:2000—2015年,企业逐渐涉足低代码开发领域,如1999年成立的Salesforce,2001年成立的OutSystem。

3)升温阶段:2015—2018年,AWS、Google、Microsoft和Oracle等软件行业巨头的加入,使低代码领域的发展逐步升温。

4)快速发展阶段:2018—2021年,低代码领域进入快速发展阶段,根据Gartner研究报告,国外共有18家供应商进入低代码应用平台领域。2018年,西门子以6亿欧元收购低代码应用开发领域的领导者Mendix,快速应用开发的低代码平台OutSystems获得3.6亿美元的投资。

国外对低代码平台的重视程度和研究投入在2018年以来显著增加,美国仍是技术的先驱者和领导者,随着云计算技术的发展,传统平台向PaaS平台转移。多数厂商的产品能够支持私有云和本地部署,个别产品如LightningPlatform、PowerApps仅支持自身的云平台。这种捆绑销售模式虽然在一定程度上有利于自身云平台的推广,但由于云平台和低代码平台的竞品都较多,对低代码平台的推广非常不利。

国内涉足低代码领域比国外晚近20年,自2000年之后才开始研究探索低代码技术,主要经历了2个阶段。

1)早期探索阶段:2000—2015年,少数公司开始尝试对低代码进行研究,如较早的活字格。

2)快速发展阶段:2015—2021年,国内低代码开发平台进入爆发期,各厂商纷纷推出商用产品。2019年开始,互联网大厂阿里、腾讯和字节的加入,使低代码进入快速发展阶段,引迈JNPF也是由这时候发展起来的。传统软件厂商也基于自身产品构建低代码开发平台,如ERP厂商金蝶、用友、明源云和黑帕云,OA厂商致远、蓝凌、泛微等。

国内低代码平台起步晚于国外,成熟度与国外主流供应商存在较大差距,但自2018年以来人力和资金投入加大,创业型公司、互联网生态型公司、传统企业管理软件公司开始转型和孵化自己的产品,出现百家争鸣的局面,与国外平台的差距也在逐步缩小。

三、低代码开发平台设计与实现

系统架构总体设计

这是一个基于Java Boot/.Net Core构建的简单、跨平台快速开发框架。前后端封装了上千个常用类,方便扩展;集成了代码生成器,支持前后端业务代码生成,实现快速开发,提升工作效率;框架集成了表单、报表、图表、大屏等各种常用的Demo方便直接使用;后端框架支持Vue2、Vue3。

体验官网:https://www.jnpfsoft.com/?csdn

01.表单引擎设计

表单引擎是快速实现表单开发的轻量级设计工具。表单设计器将表单元素存储到关系数据库,并为每个表单生成一个ID;表单模板将从表单设计器上设计的组件关系存储到数据库,由各个组件表组成的数据关系,组合成表单模板;表单解析执行器解析表单模板数据,并在网页上展示。

02.流程引擎设计

流程引擎用于为表单的审批提供支持,可自定义流程模板和节点驱动。可视化流程配置,用户对触发条件、处理节点、节点参与者进行配置,实现自定义业务流程。

03.数据库设计

提供多数据源,帮助应用快速与第三方系统完成数据整合,将第三方系统数据整合在平台里。包括主流数据库SQL Server、MySQL、Oracle、PostgreSQL,兼容国产数据库达梦、人大金仓等。

……

四、总结

以上仅是简要的低代码知识,想要了解更多内容可以参考作者的往期文章。无论您是企业开发者还是个人开发者,低代码平台都为您提供了加速应用程序开发的有效工具,助力您在数字化时代取得成功。

相关文章:

3 分钟,带你了解低代码开发

一、低代码平台存在的意义 传统软件开发交付链中,需求经过3次传递,用户→业务→架构师→开发,每一层传递都可能使需求失真,导致最终交付的功能返工。 业务的变化促使软件开发过程不断更新、迭代和演进,而低代码开发即是…...

小白学Unity03-太空漫游游戏脚本,控制飞船移动旋转

首先搭建好太阳系以及飞机的场景 需要用到3个脚本 1.控制飞机移动旋转 2.控制摄像机LookAt朝向飞机和差值平滑跟踪飞机 3.控制各个星球自转以及围绕太阳旋转(rotate()和RotateAround()) 1.控制飞机移动旋转的脚本 using System.Collections; using…...

接口自动化测试推荐用什么框架?

在推荐接口自动化测试框架时,需要考虑多个因素,包括项目需求、技术栈、团队经验和个人偏好。 以下是几个常用的接口自动化测试框架供你参考: Postman: Postman是一个功能强大且易于上手的接口测试工具,它提供了许多…...

防火墙 FireWall

这里写自定义目录标题 一、概述二、防火墙分类三、防火墙性能四、硬件防火墙定义五、硬件防火墙作用(拓扑图 ups)六、硬件防火墙品牌七、软件防火墙八、iptables一、iptables是什么?二、netfilter/iptables功能三、iptables概念四、iptables中…...

【Linix-Day12-线程同步和线程安全】

线程同步 和 线程安全 线程同步 除了信号量和互斥锁(互斥锁和条件变量上次介绍过),还有两种方式同步 1.读写锁 当同时对一块内存读写时,会出现下列问题,故而引入读写锁 接口介绍: 1.int pthread_rwloc…...

C++中使用嵌套循环遍历多维数组

C中使用嵌套循环遍历多维数组 一维数组:数组元素可以看做是一行数据。 二维数组:更像是一个表格,既有行数据又有列数据。 C没有提供二维数组类型,但用户可以创建每个元素本身都是数组的数组。例如,假设要存储 5 个城…...

linux入门---命名管道

如何创建命名管道 使用mkfifo函数就可以在程序里面创建管道文件,该函数的声明如下: 该函数需要两个参数,第一个参数表示要在哪个路径下创建管道文件并且这个路径得待上管道文件的名字,因为每个文件都有对应的权限,所…...

SpringBoot2.0入门(详细文档)

文章目录 Springboot是什么Springboot2.x依赖环境和版本新特性说明为什么学习Springboot从springboot优点来看从未来发展的趋势来看 开发环境Spring Boot开发环境搭建和项目启动jdk 的配置Spring Boot 工程的构建maven配置IDEA 快速构建maven 创建工程常用注解 完整代码 Spring…...

Aztec的隐私抽象:在尊重EVM合约开发习惯的情况下实现智能合约隐私

1. 引言 Aztec的架构,不同于当前“通过EVM兼容执行环境”所实现的区块链水平扩容趋势。Aztec内部笑称其构建的为首个非zkEVM协议。 Aztec专注于实现: 成为理解和需要智能合约隐私的开发者的终极解决方案。 Aztec为开发者提供构建隐私优先app所需的网…...

【Vue】详细介绍Vue项目的目录结构及各个核心文件的示例代码

Vue.js并没有严格的文件和目录结构要求,但一般情况下,我们的Vue项目目录结构如下: ├── node_modules/ # 项目依赖的 node 模块 ├── public/ # 公共资源目录 │ ├── favicon.ico # 网页图标 │ └──…...

【人大金仓】迁移MySql数据库到人大金仓,出现sys_config表重复

需要迁移的数据库中有张表名称为sys_config,查询的时候查询结果不符合我们的预期,经咨询金仓售后人员后得知和系统表重名… 解决问题方法如下: alter database [数据库名] set search_path to "$user", [模式名,(可选&…...

linux内核进程间通信IPC----消息队列

消息队列:提供一种从一个进程向另一个进程发送一个数据块的方法。与FIFO相比,消息队列的优势在于,它独立于发送和接收进程而存在。 1.链表式结构组织,存放于内核。 2.通过队列标识来引用。 3.通过一个数据类型来索引指定的数据。 …...

PHP实现微信小程序状态检测(违规、暂停服务、维护中、正在修复)

实现原理 进入那些状态不正常的小程序会被重定向至一个Url&#xff0c;使用抓包软件抓取这个Url&#xff0c;剔除不必要参数&#xff0c;使用cURl函数请求网页获得HTML内容&#xff0c;根据内容解析出当前APPID的小程序的状态。 代码 <?php// 编码header(Content-type:ap…...

ubuntu在线直接升级

前几天VMware上安装了ubuntu&#xff0c;当时的内核版本支持(ipguard,加密软件)&#xff0c;后来ubuntu自动升级了linux内核&#xff0c;导致加入软件不支持&#xff0c;无法访问加密文件了。后来加密软件商更新了软件&#xff0c;但还是赶不上linux内核更新速度&#xff0c;还…...

学习笔记:卸载nav2 navigation2导航

nav2二进制文件安装 nav2导航安装方式分为二进制文件安装和源码方式安装&#xff0c;如果想用最快的方式跑通代码&#xff0c;推荐二进制安装&#xff0c;不用编译&#xff0c;没有缺少依赖编译失败的烦恼&#xff0c; 安装命令&#xff1a; sudo apt install ros-$ROS_DISTR…...

觉非科技数据闭环系列 | BEV感知研发实践

随着自动驾驶迈向量产场景&#xff0c;“BEV感知数据闭环”已成为新一代自动驾驶量产系统的核心架构。数据成为了至关重要的技术驱动力&#xff0c;发挥数据闭环的飞轮效应或将成为下半场从1到N的胜负关键。 觉非科技在此方面已进行了大量的研究工作&#xff0c;并在实际量产项…...

程序员情绪把控

文章目录 建议情绪 建议 保持稳定的情绪在工作中非常重要&#xff0c;以下是一些建议&#xff1a; 自我意识&#xff1a;保持对自己情绪的觉察和理解&#xff0c;了解自己的情绪状态和触发情绪的因素。通过自我反省和观察&#xff0c;你可以更好地管理和调节情绪。 健康生活方…...

弱监督目标检测:ALWOD: Active Learning for Weakly-Supervised Object Detection

论文作者&#xff1a;Yuting Wang,Velibor Ilic,Jiatong Li,Branislav Kisacanin,Vladimir Pavlovic 作者单位&#xff1a;Rutgers University;The Institute for Artificial Intelligence Research and Development of Serbia;Nvidia Corporation 论文链接&#xff1a;http:…...

驱动开发 day3

总结&#xff1a;自动创建设备节点udev的流程 1.如何创建节点 手动创建&#xff1a;mknod 地址 设备文件类型 主设备号 次设备号(0 - 255) 自动创建&#xff1a;devfs (创建节点的逻辑在内核 ---> 2.4版本以前使用) udev (创建节点的逻辑在应用层) mdev (轻量级的udev) 2.…...

许可license分析 第一章

许可分析是指对软件许可证进行详细的分析和评估&#xff0c;以了解组织内部对软件许可的需求和使用情况。通过许可分析&#xff0c;可以帮助组织更好地管理和优化软件许可证的使用。以下是一些可能的许可分析方法和步骤&#xff1a; 收集许可证信息&#xff1a;首先&#xff0c…...

golang循环变量捕获问题​​

在 Go 语言中&#xff0c;当在循环中启动协程&#xff08;goroutine&#xff09;时&#xff0c;如果在协程闭包中直接引用循环变量&#xff0c;可能会遇到一个常见的陷阱 - ​​循环变量捕获问题​​。让我详细解释一下&#xff1a; 问题背景 看这个代码片段&#xff1a; fo…...

Zustand 状态管理库:极简而强大的解决方案

Zustand 是一个轻量级、快速和可扩展的状态管理库&#xff0c;特别适合 React 应用。它以简洁的 API 和高效的性能解决了 Redux 等状态管理方案中的繁琐问题。 核心优势对比 基本使用指南 1. 创建 Store // store.js import create from zustandconst useStore create((set)…...

MySQL 隔离级别:脏读、幻读及不可重复读的原理与示例

一、MySQL 隔离级别 MySQL 提供了四种隔离级别,用于控制事务之间的并发访问以及数据的可见性,不同隔离级别对脏读、幻读、不可重复读这几种并发数据问题有着不同的处理方式,具体如下: 隔离级别脏读不可重复读幻读性能特点及锁机制读未提交(READ UNCOMMITTED)允许出现允许…...

Redis相关知识总结(缓存雪崩,缓存穿透,缓存击穿,Redis实现分布式锁,如何保持数据库和缓存一致)

文章目录 1.什么是Redis&#xff1f;2.为什么要使用redis作为mysql的缓存&#xff1f;3.什么是缓存雪崩、缓存穿透、缓存击穿&#xff1f;3.1缓存雪崩3.1.1 大量缓存同时过期3.1.2 Redis宕机 3.2 缓存击穿3.3 缓存穿透3.4 总结 4. 数据库和缓存如何保持一致性5. Redis实现分布式…...

【HarmonyOS 5.0】DevEco Testing:鸿蒙应用质量保障的终极武器

——全方位测试解决方案与代码实战 一、工具定位与核心能力 DevEco Testing是HarmonyOS官方推出的​​一体化测试平台​​&#xff0c;覆盖应用全生命周期测试需求&#xff0c;主要提供五大核心能力&#xff1a; ​​测试类型​​​​检测目标​​​​关键指标​​功能体验基…...

2024年赣州旅游投资集团社会招聘笔试真

2024年赣州旅游投资集团社会招聘笔试真 题 ( 满 分 1 0 0 分 时 间 1 2 0 分 钟 ) 一、单选题(每题只有一个正确答案,答错、不答或多答均不得分) 1.纪要的特点不包括()。 A.概括重点 B.指导传达 C. 客观纪实 D.有言必录 【答案】: D 2.1864年,()预言了电磁波的存在,并指出…...

屋顶变身“发电站” ,中天合创屋面分布式光伏发电项目顺利并网!

5月28日&#xff0c;中天合创屋面分布式光伏发电项目顺利并网发电&#xff0c;该项目位于内蒙古自治区鄂尔多斯市乌审旗&#xff0c;项目利用中天合创聚乙烯、聚丙烯仓库屋面作为场地建设光伏电站&#xff0c;总装机容量为9.96MWp。 项目投运后&#xff0c;每年可节约标煤3670…...

Unit 1 深度强化学习简介

Deep RL Course ——Unit 1 Introduction 从理论和实践层面深入学习深度强化学习。学会使用知名的深度强化学习库&#xff0c;例如 Stable Baselines3、RL Baselines3 Zoo、Sample Factory 和 CleanRL。在独特的环境中训练智能体&#xff0c;比如 SnowballFight、Huggy the Do…...

JS手写代码篇----使用Promise封装AJAX请求

15、使用Promise封装AJAX请求 promise就有reject和resolve了&#xff0c;就不必写成功和失败的回调函数了 const BASEURL ./手写ajax/test.jsonfunction promiseAjax() {return new Promise((resolve, reject) > {const xhr new XMLHttpRequest();xhr.open("get&quo…...

【从零开始学习JVM | 第四篇】类加载器和双亲委派机制(高频面试题)

前言&#xff1a; 双亲委派机制对于面试这块来说非常重要&#xff0c;在实际开发中也是经常遇见需要打破双亲委派的需求&#xff0c;今天我们一起来探索一下什么是双亲委派机制&#xff0c;在此之前我们先介绍一下类的加载器。 目录 ​编辑 前言&#xff1a; 类加载器 1. …...