当前位置:网站首页>JVS开发套件产品定位
JVS开发套件产品定位
2022-07-31 11:39:00 【jonyleek】
------------------------------------------------------------------------------------------------------------------------
JVS是软开企服倾力打造的企业数字化快速开发平台,平台支持原生应用与轻应用,其中部分功能已经在gitee上开源,开源地址:gitee.com/software-minister/jvs,此文作为系列文章之一。
--------------------------------------------------------------------------------------------------------------------------
低代码是有场景的
低代码不是银弹,低代码不能干掉程序员,相反,是提升开发团队的实时效率与实时质量。
JVS瞄准企业级数字化的底座,开发套件则为底座上的针对企业管理平台系统,高效交付的可视化配置工具,结合代码开发,可以快速形成交付的系统。
产品的定位
- 产品定位与企业的应用辅助工具,企业级的应用,支持较复杂的逻辑处理场景
- 能降低应用的研发成本,尽量多的配置化,降低编码量,提升产品人员/业务人员的参与深入
- 信息安全自主可控,私有化部署是基本条件
- 能降低技术门槛,包含应用配置、应用运行的基础功能
方案设计背景
企业信息化一般包含三个方面
- 个人办公的信息化所需要的系统(比如 office、OA等)
- 企业管理所需要的系统(HR 系统、OKR、 OA、财务系统、人事系统、经营分析系统、项目任务管理等等)
- 企业业务支撑系统(企业的主营收入所需要的系统,比如物流、仓储、物业、等等)
我们这里主要分析企业业务支撑系统,这种系统一般核心的逻辑主要是对整个业务的生命周期管理,从业务的发生,到内部的业务流转,到产品或者服务的输出,然后是商业合作的管理,最后到财务管理等整个生命周期。
企业业务一般分为业务前台(业务发展或者受理),业务支撑中台(业务流转支持),业务管理后台(对业务的统计分析、决策):
- 业务前台,一般是表单数据的录入,支持多端设备情况
- 业务中台,一般是数据分解,逻辑加工,流程的转化
- 业务后台,一般是数据统计,图形分析,系统管理配置
通过对管理系统的拆解分析,管理系统=列表页+表单页+流程+逻辑处理+数据统计,其中不可见的是数据存储的交付,这个也是核心。。
核心要解决的问题:
- 构建包容性的应用运行环境:支持传统开发的应用与新工具的生成的应用
- 数据模型的实现模式:建数据模型、存储、与搜索、数据处理的方式
- 可视化的配置器:能尽量将业务配置抽象出来,可视化的实现所见即所得的UED交互
- 各配置器的融合链接:多种配置器的链接方式。
技术路线
快速开发工具实现的途径有两条:代码生成与模型驱动两种主流方式选择。
代码生成模式: 数据表+模板的模式生成原始代码,生成出来的代码通过开发人员整合进项目,重新构建发布,是对生产代码的自动化工具。
模型驱动模式: 模型在线执行器+模型数据,将对应功能抽象出来在线的执行器,通过模型加载到执行器中,从而实现业务功能,是对生成功能的自动化工具。
代码生成模式(代码级自动) | 模型驱动模式(业务级自动) | |
优点 | 1、对于交付有目标系统的源代码,便于目前国内源代码交付的模式 2、技术比较轻便,对于技术人员比较友好,将机械性的工作通过工具生成代码 3、技术代码的理解度上相对简单 4、与已有的技术积累整合相对容易 | 1、所见即所得,可以实时生效,调整、发布、使用整体化解决,让系统具备更好的伸缩性与灵活性,从而有效降低系统变动的成本 2、对使用人员的范围相对较广,用户体验远远优于其他模式,大大降低参与人员的技术门槛 3、让业务人员深度参与,缩短业务信息表达的路径,有效降低需求变更量,从而有效控制因需求模糊带来的开发浪费。 4、更能有效积累行业的技术,在产品、应用层面提升复用度,从而更容易形成行业、场景的专业应用,从而才能有效的提升技术的复用度 |
缺点 | 1、本质是通过固定模式下的模板生成代码,这种对模型的依赖度高 2、不能实现所见即所得,需要按照传统方式编译、构建、部署 3、使用对象必须是技术人员,需要对传统编码了解 4、复用度停留在代码层面 | 1、技术复杂度相对较大 2、需要实现多种执行引擎,而且需要对业务高度抽象 3、 |
JVS模式 | × | √ |
产品实现思路
将企业的内部管理系统高度抽象 ,如下图所示,

企业内部可能存在多个应用,然后在讲上述的模型抽象加工,每个应用基本上是通过列表页、表单、统计,数据模型、业务流程、逻辑处理

前三种为可见的页面,后三种是属于隐性化的设置
如果就这8个方面分别各做一个配置器,且能良好的互相兼容,那么 应用配置的效果将大大增加,那么设计的思路:
应用配置器:对应用的配置,其中包含应用的基本信息、调用用户体系、包括权限体系等
列表配置器:对列表页进行配置
表单配置器:对数据录入、展示的表单进行配置
统计与展示配置器:对数据统计、图表展现进行配置
数据模型配置:能实现系统需要的数据库表配置
流程配置器:能实现业务自动业务流转的配置
逻辑配置:能实现对数据的处理
接口配置器:能配置接口返回的数据变量进行加工配置处理
这8个方面如果做到良好的兼容性配置,那么很多场景都可以支持配置化。
边栏推荐
- 数据湖(十九):SQL API 读取Kafka数据实时写入Iceberg表
- Distributed Transactions - Introduction to Distributed Transactions, Distributed Transaction Framework Seata (AT Mode, Tcc Mode, Tcc Vs AT), Distributed Transactions - MQ
- 502 bad gateway causes and solutions
- Read through the interface to call the artifact RestTemplate
- After Effects 教程,如何在 After Effects 中修复曝光不足的镜头?
- The principle of v-model
- After class, watching the documentation and walking back to the lab, I picked up the forgotten SQL operators again
- 5 个开源的 Rust Web 开发框架,你选择哪个?
- 音视频基础
- Different lower_case_table_names settings for server ('1') and data dictionary ('0') solution
猜你喜欢

【虚拟化生态平台】平台架构图&思路和实现细节

SQL - Left join, Right join, Inner join

学自动化测试哪个培训机构好 试听课程后就选了这个地方学习

IDEA 配置方法注释自动参数

MySql模糊查询大全

After class, watching the documentation and walking back to the lab, I picked up the forgotten SQL operators again

ApiPost 真香真强大,是时候丢掉 Postman、Swagger 了

基于C51实现按键控制

3D激光SLAM:LeGO-LOAM论文解读---完整篇

LeetCode 1161.最大层内元素和:层序遍历
随机推荐
mpu9150(driverack pa简明教程)
apisix-入门使用篇
7 days to learn Go, Go structure + Go range to learn
关于==和equals的区别和联系,面试这么回答就可以
基于C51实现按键控制
SAP Commerce Cloud Product Review 的添加逻辑
St. Regis Takeaway Project: New dishes and dishes paged query
安装MYSQL遇到问题:write configuration file卡主
PyQt5快速开发与实战 9.5 PyQtGraph在PyQt中的应用 && 9.6 Plotly在PyQt中的应用
若枚举映射的值不存在,则不进行反序列化
VBA输出日志到工作簿demo
unity computeshader的可读写buffer
Threading(in thread main)
IDEA configure method annotation automatic parameters
If the value of the enum map does not exist, deserialization is not performed
DCM middleware family welcomes a new member
5 个开源的 Rust Web 开发框架,你选择哪个?
DCM 中间件家族迎来新成员
最新MySql安装教学,非常详细
St. Regis Takeaway Project: File Upload and Download