云原生时代的开发利器
云原生时代的开发工具集之中,至少应有这样一种利器:基于微服务架构的低代码开发平台,同时与业界标准的云原生技术支撑设施能够完全协同和融合。低代码开发平台的构建不仅仅是采用微服务开发框架,更加重要的是符合当前主流的中台和微服务架构思想。因此本项目低代码开发平台不是走零代码开发的思路,而是真正的基于模型驱动和SOA思想,允许少量代码开发和融合。
其核心思想是:
•低代码开发的小应用应该是一个个独立的微服务
•应用的构建进一步贯彻SOA体系分层构建的思路,通过服务层解耦
•低代码开发应该是模型驱动的,这个模型核心是对象和数据模型
•技术层面
通过在低代码平台中实现前后端分离、负载均衡、J2Cache 二级缓存、Redis缓存、流程异步方案等技术手段,提升软/硬件服务层的吞吐量和处理能力。
•业务层面
通过低代码平台的代码生成器和自定义表单减少大量重复性开发工作,大幅度提高开发效率。
低代码开发平台与其它支撑平台紧密协同,低代码开发完成的应用可以快速的部署和交付到容器云环境。部署于云原生环境下的低代码开发平台更加开放和友好,比如提供相应的代码导出以及部署包导出,对于导出的内容可以直接在标准的代码开发环境(如Eclipse)编译构建,可以进行部署,并脱离低代码开发平台本身运行。
流程引擎本身是低代码平台底层很重要的一个技术服务能力支持,同时流程引擎本身和组织模型绑定紧密,以进行相应的细粒度数据权限控制和流程动态权限控制,此处先不描述具体的组织引擎和流程引擎集成点,而重点分析表单和流程引擎的集成。
如上图,对表单数据进行分组,并建立流程活动节点和表单分组之间的映射和授权关系。
表单和规则引擎,需要调用后端数据才能够完成计算的规则,此类规则实际才是规则引擎可能涉及的场景。
如上图所示,此类场景下整体开发流程可以理解为
1.在规则模型中定义规则,规则接受输入并产生输出
2.表单传入关键param参数到规则引擎
3.规则引起基于param参数从数据库后台获取数据
4.基于提前定义的规则进行规则计算
5.返回规则计算结果给表单前端
那么,一个基于云原生时代良好定义低代码平台的核心要素究竟由哪些组件构成,具体可见下图:
如上图所示:LCDP平台的核心包括了上图中的数据建模、表单建模、流程建模、权限建模、报表建模和规则建模几个关键部分的内容,通过这些建模组件,包括这些组件之间本身的协同来完成一个完整业务系统和功能的构建。
核心对象分析
表单和流程引擎、规则引擎集成:当前市面上很多低代码平台本身即是从传统的BPM软件或工作流引擎平台演变而来的,因此流程引擎本身是低代码平台底层很重要的一个技术服务能力支持。对于流程引擎本身和组织模型绑定紧密,以进行相应的细粒度数据权限控制和流程动态权限控制,这里重点分析表单和流程引擎的集成,如下图所示:
综上所述,可以看到,通过引入低代码平台,基于统一流程引擎及快速表单能力,使具有不同经验水平的开发人员可以通过图形化的用户界面,使用拖拽、连线等操作,快速搭建复杂的表单、配置或发布流程审批节点,生成符合业务部门需求的表单和工作流,从而快速上线新流程。相对传统的开发方式,低代码平台+流程引擎带来了以下三个方面的改变:
1)可在表单基础上配置,应用查询条件、列表字段排序、列表的操作按钮、表单操作按钮等,一键生成到系统菜单,快速实现流程低代码开发;
2)表单挂接到流程节点,变成流程表单,可根据每个节点的业务情况再次配置表单权限、表单前后置事件,根据每个节点进行打印模块配置;
3)通过表单器配置表单布局、权限、数据视图等基本要素后,结合代码生成器生成前端、微服务接口、持久层等各个层次代码,只需手动特殊业务代码即可,节省80%以上代码开发时间。
低代码平台+流程引擎的应用让业务流程顺畅流转、高效运行,为业务部门的数智化、流程化转型提供快速的IT流程支撑能力:
1) 降低门槛:无需丰富的开发经验,拥有基本的开发经验的开发人员即可通过可视化建模来完成表单、流程的设计与前端页面搭建;
2) 降本增效:区别开传统写代码开发模式,优化开发流程,节省流程新增与优化的成本,提升企业运作效率;
3) 快速响应:维护升级方便,即改即生效,快速响应业务调整及变化;
4) 快速交付:低代码开发,复用率高,提升交付效率;
5) 提高业务部门满意度:能够快速响应业务部门多样化需求,业务流程能够顺畅流转、高效运行,使业务部门满意度大幅提升。
相关文章:
云原生时代的开发利器
云原生时代的开发工具集之中,至少应有这样一种利器:基于微服务架构的低代码开发平台,同时与业界标准的云原生技术支撑设施能够完全协同和融合。低代码开发平台的构建不仅仅是采用微服务开发框架,更加重要的是符合当前主流的中台和…...
利用IDEA将Java.class文件反编译为Java文件:原理、实践与深度解析
文章目录 引言:当.class文件遇到源代码缺失第一章:反编译技术基础认知1.1 Java编译执行原理1.2 反编译的本质1.3 法律与道德边界 第二章:IDEA内置反编译工具详解2.1 环境准备2.2 三步完成基础反编译2.3 高级反编译技巧2.3.1 调试模式反编译2.…...
C++ Primer 参数传递
欢迎阅读我的 【CPrimer】专栏 专栏简介:本专栏主要面向C初学者,解释C的一些基本概念和基础语言特性,涉及C标准库的用法,面向对象特性,泛型特性高级用法。通过使用标准库中定义的抽象设施,使你更加适应高级…...
2.7 静态方法/构造函数Mock
静态方法/构造函数Mock 在单元测试中,静态方法和构造函数的Mock是相对复杂的需求,因为Mockito的核心设计基于对象实例的模拟。然而,通过扩展工具或特定技巧,可以实现对这些场景的处理。本章详解两种主流方案:PowerMoc…...
注册Gmail如何跳过手机验证环节?
很多小伙伴在注册Gmail的时候都会遇到一个难题:手机号码验证,有可能包括了“手机号无法验证” “国内手机号验证失败” “收不到验证码”等等问题,但 根据真实案例,还有部分人则是“幸运地”没有手机号验证环节,那么今…...
【算法专场】哈希表
目录 前言 哈希表 1. 两数之和 - 力扣(LeetCode) 算法分析 算法代码 面试题 01.02. 判定是否互为字符重排 编辑算法分析 算法代码 217. 存在重复元素 算法分析 算法代码 219. 存在重复元素 II 算法分析 算法代码 解法二 算法代码 算法…...
5、pod 详解 (kubernetes)
pod 详解 (kubernetes) Pod 的基础概念pause 容器Pod 的分类与创建自主式 Pod控制器管理的 Pod静态 Pod Pod容器的分类基础容器(infrastructure container)初始化容器(initcontainers)应用容器(…...
二叉树详解:Java实现与应用
在计算机科学中,数据结构是构建高效算法的基石,而二叉树作为一种基础且重要的树形结构,在诸多领域都有着广泛应用,如数据库索引、文件系统、编译器设计等。本文将从基础概念入手,带你逐步深入理解二叉树,并…...
GPT和BERT
笔记来源: Transformer、GPT、BERT,预训练语言模型的前世今生(目录) - B站-水论文的程序猿 - 博客园 ShusenWang的个人空间-ShusenWang个人主页-哔哩哔哩视频(RNN模型与NLP应用) 一、GPT 1.1 GPT 模型的…...
【工业安全】-CVE-2024-30891- Tenda AC18路由器 命令注入漏洞
1.漏洞描述 2.漏洞复现 2.1 qemu-user 模拟: 2.2 qemu-system模拟: 3.漏洞分析 4.poc代码: 1.漏洞描述 漏洞编号:CVE-2024-30891 漏洞名称:Tenda AC18 命令注入 威胁等级:高危 漏洞详情:Ten…...
如何从0开始将vscode源码编译、运行、打包桌面APP
** 网上关于此的内容很少,今天第二次的完整运行了,按照下文的顺序走不会出什么问题。最重要的就是环境的安装,否则极其容易报错,请参考我的依赖版本以及文末附上的vscode官方指南 ** 第一步:克隆 VSCode 源码 首先…...
登录弹窗效果
1,要求 点击登录按钮,弹出登录窗口 提示1:登录窗口 display:none 隐藏状态; 提示2:登录按钮点击后,触发事件,修改 display:block 显示状态 提示3:登录窗口中点击关闭按钮࿰…...
wps或office的word接入豆包API(VBA版本)
直接上代码,由于时间匆忙,以后写个详细的教程 #If VBA7 ThenPrivate Declare PtrSafe Function URLDownloadToFile Lib "urlmon" Alias "URLDownloadToFileA" (ByVal pCaller As Long, ByVal szURL As String, ByVal szFileName As…...
深入浅出 Python Logging:从基础到进阶日志管理
在 Python 开发过程中,日志(Logging)是不可或缺的调试和监控工具。合理的日志管理不仅能帮助开发者快速定位问题,还能提供丰富的数据支持,让应用更具可观测性。本文将带你全面了解 Python logging 模块,涵盖…...
系统巡检脚本分享:守护服务器的“健康卫士”
在日常的运维工作中,系统巡检是一项至关重要的任务。它可以帮助我们及时发现服务器的潜在问题,确保系统的稳定运行。今天,我想和大家分享一个实用的系统巡检脚本,它能够帮助我们快速、全面地检查服务器的健康状况。 一、为什么需…...
【Elasticsearch】运行时字段(Runtime Fields)索引时定义运行时字段
在 Elasticsearch 中,运行时字段(Runtime Fields)是一种在查询时动态计算的字段,而不是在索引时预先存储的字段。运行时字段为数据处理提供了极大的灵活性,尤其是在处理结构不固定的日志数据或需要动态生成字段值的场景…...
C++从入门到实战(四)C++引用与inline,nullptr
C从入门到实战(四)C引用与inline,nullptr 前言一、C 引用(一)什么是引用(二)引用的特点(三)引用作为函数参数(四)引用作为函数返回值(…...
DeepSeek 助力 Vue 开发:打造丝滑的卡片(Card)
前言:哈喽,大家好,今天给大家分享一篇文章!并提供具体代码帮助大家深入理解,彻底掌握!创作不易,如果能帮助到大家或者给大家一些灵感和启发,欢迎收藏关注哦 💕 目录 Deep…...
Azure Synapse Dedicated SQL Pool统计指定表中各字段的空值、空字符串或零值比例
-- 创建临时表存储结果 CREATE TABLE #Results (DatabaseName NVARCHAR(128),TableName NVARCHAR(128),ColumnName NVARCHAR(128),DataType NVARCHAR(128),NullOrEmptyCount INT,TotalRows INT,Percentage DECIMAL(10,2) );DECLARE db_name SYSNAME DB_NAME(); -- 获取当前数…...
【深度学习】计算机视觉(CV)-目标检测-SSD(Single Shot MultiBox Detector)—— 单次检测多框检测器
🔹 SSD(Single Shot MultiBox Detector)—— 单次检测多框检测器 1️⃣ 什么是 SSD? SSD (Single Shot MultiBox Detector) 是一种用于 目标检测(Object Detection) 的 深度学习模型,由 Wei L…...
力扣100. 相同的树(利用分解思想解决)
Problem: 100. 相同的树 文章目录 题目描述思路Code 题目描述 思路 题目要求判断两个二叉树是否完全相同,而此要求可以利用问题分解的思想解决,即判断当前节点的左右子树是否完全相同,而在二叉树问题分解的一般题目中均会带有返回值ÿ…...
在SpringBoot服务器端采购上,如何选择操作系统、Cpu、内存和带宽、流量套餐
在Spring Boot服务器端采购时,选择操作系统、CPU、内存、带宽和流量套餐需根据应用需求、预算和性能要求综合考虑。以下是具体建议: 1. 操作系统 Linux发行版(如Ubuntu、CentOS):适合大多数Spring Boot应用ÿ…...
我的新书《青少年Python趣学编程(微课视频版)》出版了!
🎉 激动人心的时刻来临啦! 🎉 小伙伴们久等了,我的第一本新书 《青少年Python趣学编程(微课视频版)》 正式出版啦! 📚✨ 在这个AI时代,市面上的Python书籍常常过于枯燥&…...
elementUI rules 判断 el-cascader控件修改值未生效
今天修改一个前端项目,增加一个多选字段,使用的是el-cascader控件,因页面是通过引用子页面组件形式使用,出现一个点选后再勾选原有值,输入框内不展示或取消后的也未正常隐藏,如果勾选的值是全新的则其他已选…...
深度学习与人工智能:解锁未来的无限可能
在当今这个科技飞速发展的时代,深度学习和人工智能已不再只是科幻小说中的概念,它们正以惊人的速度渗透到我们生活的方方面面,从智能手机上的语音助手到医疗领域的疾病诊断,从自动驾驶汽车到金融市场的风险预测,其影响…...
pwa应用进阶2-动态加载manifest.json文件
接pwa应用进阶-区分AB面-添加安装按钮而且区分不同的系统和浏览器的各种情况继续优化,主要是让manifest.json文件动态加载。 pwa应用进阶2-动态加载manifest.json文件 主要用途如下: 动态切换PWA的清单文件,例如根据不同的语言或者主题加载不…...
UI用例调试_元素能定位到且不在frame内_无法点击/录入文本
关于单据新增,编辑子集信息遇到的2个阻塞点,做记录已供后续参考 1、新增按钮元素能定位,就是无法点击 实现效果: 单据新增时,前面单据数据编辑完之后,开始新增证件信息,需要先点击新增按钮。…...
Python的web框架Flask适合哪些具体的应用开发?
Flask 适用的具体应用及实现案例代码 Flask 是一个轻量级的 Web 应用框架,以其简洁性和灵活性而广受欢迎。以下是 Flask 适合的具体应用场景及相关的实现案例代码: 1. 小型网站或博客 由于 Flask 的简洁性和易于使用的特性,它非常适合用来搭建个人博客或者小型的企业网站…...
oracle使用动态sql将多层级组织展平
ERP或者其他企业管理软件中都会有一张组织机构表,可以写固定sql的方式将其展平获取组织表中的字段信息,如负责人、上级组织负责人、分管领导、成立时间等。但是这种方式有个缺陷,就是如果只写到处理4个层级,那么后期层级增多就无法…...
vue学习笔记10
ChatGPT & Copilot AI 的认知 两个工具 1、ChatGPT 3.5 2、Github Copilot ChatGPT 的基本使用 - Prompt 优化 AI 互动的过程中,容易出现的问题: 1、 AI未能理解问题的核心要点 2、 AI的回答过于宽泛 或 过于具体 3、 AI提供了错误的信息或…...
网络安全常识
随着互联网和移动互联网的持续火热,人们的生活也越来越离不开网络,网络安全,在这个信息化时代显得尤为重要,那么网络攻击和安全,这一攻守之间,主要涵盖哪些要点呢,下面我们就来对此进行抽丝剥茧…...
如何在 Visual Studio Code 中使用 DeepSeek R1 和 Cline?
让我们面对现实吧:像 GitHub Copilot 这样的 AI 编码助手非常棒,但它们的订阅费用可能会在你的钱包里烧一个洞。进入 DeepSeek R1 — 一个免费的开源语言模型,在推理和编码任务方面可与 GPT-4 和 Claude 3.5 相媲美。将它与 Cline 配对&#…...
从Sora到有言:3D视频生成技术的突破与应用
近年来,AIGC领域飞速发展,这个词也越来越高频地出现在了大家的生活中。AIGC 能完成的任务也越来越多,大模型的能力飞速增长 —— 从Deepseek生成文字,到StableDiffusion生成图像,再到Sora可以生成视频。 而现在&#x…...
算法18(力扣136)只出现一次的数字
1、问题 给你一个 非空 整数数组 nums,除了某个元素只出现一次以外,其余每个元素均出现两次。找出那个只出现了一次的元素。 你必须设计并实现线性时间复杂度的算法来解决此问题,且该算法只使用常量额外空间。 2、示例 (1&…...
基于HTML5 Canvas 和 JavaScript 实现的烟花动画效果
以下是一个使用 HTML5 Canvas 和 JavaScript 实现的烟花动画效果代码盒子: <!DOCTYPE html> <html> <head><title>烟花效果...
网络变压器的主要电性参数与测试方法(1)
Hqst盈盛(华强盛)电子导读:网络变压器的主要电性参数与测试方法(1).. 今天我们就一起先来看看网络变压器的2个主要电性参数与它的测试方法: 1. 开路电感(OCL or Lx----Open Circuit Ind…...
Python + WhisperX:解锁语音识别的高效新姿势
大家好,我是烤鸭: 最近在尝试做视频的质量分析,打算利用asr针对声音判断是否有人声,以及识别出来的文本进行进一步操作。asr看了几个开源的,最终选择了openai的whisper,后来发现性能不行,又换了…...
Qt的isVisible ()函数介绍和判断窗口是否在当前界面显示
1、现象:当Qt的窗口最小化时,isVisible值一定是true,这是正常的。 解释:在Qt中,当你点击窗口的最小化按钮时,Qt内部不会自动调用 hide() 方或 setVisible(false) 来隐藏窗口。相反,它会改变窗口…...
Github 2025-02-12 C开源项目日报 Top7
根据Github Trendings的统计,今日(2025-02-12统计)共有7个项目上榜。根据开发语言中项目的数量,汇总情况如下: 开发语言项目数量C项目7Python项目2OpenSSL - 强大的开源加密工具包 创建周期:4012 天开发语言:C协议类型:Apache License 2.0Star数量:23449 个Fork数量:10…...
PostgreSQL 数据类型
PostgreSQL 数据类型 PostgreSQL 是一款功能强大的开源关系型数据库管理系统,它以其出色的性能、灵活的数据类型和强大的扩展性而闻名。在 PostgreSQL 中,数据类型是构建数据库表和执行各种操作的基础。本文将详细介绍 PostgreSQL 中常用的数据类型,并探讨它们的使用场景。…...
synchronized关键字
文章目录 synchronized 关键字介绍synchronized 的内存语义 synchronized 关键字介绍 synchronized 块是 Java 提供的一种原子性 内 置锁, Java 中的每个对象都可以把它当作一个 同步锁来使用 , 这些 Java 内置的使用者看不到的锁被称为内部锁 …...
MATLAB计算反映热需求和能源消耗的度数日指标(HDD+CDD)(全代码)
目录 度数日(Degree Days, DD)概述计算公式MATLAB计算代码调用函数1:计算单站点的 CDD参考度数日(Degree Days, DD)概述 度数日(Degree Days, DD)是用于衡量建筑、城市和地区的热需求和能源消耗模式的指标。它分为两部分: 加热度日(Heating Degree Days, HDD):当室…...
在Linux中Redis不支持lua脚本的处理方法
redis安装在IP为x.x.x.x的服务器上 redis安装 第一步,安装前,检测系统是否安装了redis。若安装了redis,则需要删除redis;若没有安装redis,则需要安装2.6版本以上的redis。 # 确保Redis版本支持Lua脚本。从Redis 2.6…...
第39周:猫狗识别 2(Tensorflow实战第九周)
目录 前言 一、前期工作 1.1 设置GPU 1.2 导入数据 输出 二、数据预处理 2.1 加载数据 2.2 再次检查数据 2.3 配置数据集 2.4 可视化数据 三、构建VGG-16网络 3.1 VGG-16网络介绍 3.2 搭建VGG-16模型 四、编译 五、训练模型 5.1 上次程序的主要Bug 5.2 修改版…...
SpringBoot自定义starter
首先创建Maven项目 引入依赖 <dependencies><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-autoconfigure</artifactId><version>3.4.2</version></dependency> </dependencies…...
JVM学习
JVM 1、JVM是一个跨语言的平台,与语言无关 2、java虚拟机规范:一流企业做标准,二流企业做品牌,三流企业做产品 JVM种类 Hotspot:Oracle 公司,有商业版和免费版 open jdk 内部包含免费版本hotspot虚拟机 Jr…...
RAG入门: RetroMAE、BGE、M3、MemoRAG
RAG实际上第一步都是先做Retrieval,关于Retrieval的思路有很多,持续更新: RetroMAE (论文RetroMAE: Pre-Training Retrieval-oriented Language Models Via Masked Auto-Encoder) RetraoMAE包括两个模块,…...
ruby 的安装
在51cto搜索的资料 ruby on rails的安装 http://developer.51cto.com/art/200906/129669.htm http://developer.51cto.com/art/200912/169391.htm http://developer.51cto.com/art/200908/147276.htm 史上最完整的ruby,rails环境架设配置(Apachefast…...
MySQL的备份与还原
备份数据库 使用mysqldump工具是备份MySQL数据库的一种常用方法。mysqldump可以导出数据库的结构和数据到一个SQL文件中,这个文件稍后可以被用来重新创建数据库或恢复数据。以下是mysqldump命令的详细扩写: mysqldump -u <username> -p<passw…...
文心快码|AI重构开发新范式,从工具到人机协同
本系列视频来自百度前端架构师张立理,他在以“应用来了”为主题的2024百度世界大会上,进行了文心快码3.0能力演示,端到端能力展示。 以下视频是关于文心快码全栈编程智能体-AI重构开发新范式 文心快码AI重构开发新范式 百度前端架构师张立理认…...