猜你喜欢
低代码开发平台的设计与实现――基于元数据模型

低代码开发平台的设计与实现――基于元数据模型

书籍作者:谢用辉 ISBN:9787121423529
书籍语言:简体中文 连载状态:全集
电子书格式:pdf,txt,epub,mobi,azw3 下载次数:7370
创建日期:2022-11-05 发布日期:2022-11-05
运行环境:PC/Windows/Linux/Mac/IOS/iPhone/iPad/Kindle/Android/安卓/平板
内容简介

低代码开发平台是在不写或者只写极少量代码即可实现业务功能的软件平台,可以助力企业快速完成数字化转型。本书介绍低代码开发平台设计与开发的详细过程,以元数据模型为核心,介绍服务、数据库、主数据、界面展现、功能配置,以及元数据自身的管理,完整呈现元数据驱动的低代码开发平台的端到端的实现机制。本书面向的读者需要具备一定的开发基础,适合所有对低代码开发平台或对元数据模型感兴趣的软件工程师及相关从业人员学习阅读。

作者简介

谢用辉,20年软件架构工作,先后在东南融通、安邦保险、Oracle和IBM担任架构师。曾设计过5个保险核心业务系统,对如何构造高度灵活的应用具有非常深刻的理解和体会。擅长软件抽象,深入研究过元数据模型,并将其应用到系统设计中。曾著有《保险IT系统建设》一书。

编辑推荐

低代码开发平台可以降低企业采购成本、贴合业务场景,提高系统需求还原度,柔性拓展,适应瞬息万变的市场环境,助你数智化时代随需搭建数字化应用。

本书将全面呈现低代码开发平台设计与开发的详细过程,深入细节,容易上手,剖析源码,细说开发的开发,助你轻松开启低代码开发平台的开发之旅!

书中代码来自于真实软件,帮助用于对低代码开发平台设计的理解,不随本书提供源代码。

软件开发是一个从需求到模型再到代码的抽象过程。本书介绍一个从软件到软件工厂的再抽象过程,以元数据模型为核心,介绍

● 服务

● 数据库

● 主数据

● 界面展现

● 功能配置

● 元数据自身的管理

完整呈现元数据驱动的低代码开发平台的端到端的实现机制,用元数据描述模型,用元数据的元数据描述元数据模型。


前言

微服务、平台化、云计算是当前IT技术热点,它们强调共享重用,促进了软件快速交付和部署。然而,大多数软件即使采用了微服务技术或者平台化思路,也难以做到通过软件共享重用来快速满足业务需求的变化,大部分需求仍需重新开发实现,导致软件交付时间长。然而,这些开发不仅工作量大、技术含量低、个性化程度高和共享度低,无非是在某个表中增加几个字段,然后在界面增加相关录入属性、调整后台服务逻辑和流程流转控制等细枝末节的改进,软件本身并没有发生重大变化。

因此,通过低代码开发平台快速配置发布软件成为当前软件业的一个热点。低代码开发平台的目标是通过图形化快速配置,尽可能不写代码或者编写极少量代码即可实现业务功能。本书系统地介绍一种低代码开发平台的设计思路和实现方式——元数据模型。在面向不同用户或者场景时,该方法可以通过简单配置或者低代码开发、甚至零代码开发,来快速实现业务需求,最终使得软件具有灵活性好、适应变化能力强、维护简单、稳定性好、重用度高等特点。

一般来说,软件由数据结构(模型)、服务、规则、数据库、流程和操作界面组成。软件的变化,一般是由模型变化带来的如服务、规则、流程和操作界面的一系列变化。目前,市场上常见的解决机制是引入规则引擎或者流程引擎,以提升软件的适应性,但实际上,单纯的规则或者流程变化的需求反而不多,常常要求模型变化之后带来系统性的变化。而模型变化通常被理所当然地认为只有经过代码开发才能实现。

因此,如何应对模型变化是低代码开发平台首先要解决的技术难点。元数据模型是模型变化问题的有效解决方案,在很多软件中都采用了该设计思路,尤其是某些产品化程度很高的软件。本书将系统地呈现这种设计思路——元数据模型——在不修改代码的前提下,实现模型的灵活变化,进而实现数据库、服务、规则、流程和操作界面的变化。

低代码开发平台有很多种实现方式,元数据模型驱动的设计是其中主要的一种方式。本书聚焦于系统化的元数据模型驱动的设计思路,采用该设计思路实现的软件具有低代码开发平台的软件特点。为了重点突出元数据模型驱动的设计思路,尽量避免其他内容干扰,本书不介绍与规则引擎和流程引擎相关的内容,而是重点介绍元数据模型、服务、持久化机制、元数据模型界面展现和元数据模型的模型,即通过元数据模型来描述元数据模型自身。

本书内容分为如下章节:

第1章介绍低代码开发平台的实现方式、元数据模型概念,并且综述本书所达到的需求目标;

第2章介绍基于元数据模型实例之上的通用服务设计,通过这些服务可以实现所有元数据实例的增删改查的功能;

第3章介绍如何将元数据模型的实例保存到数据库中,通过数据库映射配置,将实例映射到数据库;

第4章介绍如何将元数据模型实例从数据库中按照条件查询,通过配置查询条件和查询结果实现通用的实例查询功能;

第5章介绍主数据,这是元数据模型在主数据方面的简单应用,主数据也是后续章节的基础;

第6章介绍元数据实例在界面上如何展现,通过配置页面布局实现对实例的动态展现,而不需要定制开发界面程序代码;

第7章介绍元数据实例的功能配置,实现从前端界面到后台服务之间的联动,将模型、服务、数据库和界面展现有机地组织成一个完整的软件功能,并且可以动态配置新功能,动态扩展软件能力;

第8章介绍如何用元数据模型实例管理元数据自身,也就是元数据模型的模型(这里没有写错,是模型的模型),应对元数据模型自身的变化,这是本书最为抽象的地方,也是元数模型能够发挥到极致的能力表现。

由于元数据模型非常抽象,解释元数据本身就是非常困难的工作,因此本书的有些地方为了精确地表达意思,不厌其烦地加上了很多定语,同时提供比较多的程序代码来解释元数据模型的实现,以便读者充分理解。由于设计思路与平常的开发流程不同,读者在阅读过程中可能会遇到各种理解上的问题,希望大家能在阅读过程中,保持耐心,反复仔细体会。书中代码来自于真实软件,帮助用于对低代码开发平台设计的理解,不随本书提供源代码一。

我对元数据模型的理解和应用,是在长期软件项目实践中积累并逐渐成熟的。我从2006年开始参与Pharos系统,到最近设计开发的新一代保险核心业务系统,都采用了元数据模型的设计思路,取得了非常好的效果。我在保险核心业务系统中采用元数据模型,统一了产险、寿险和健康险的保单模型,在一个系统中同时支持了保险全产品线,大大减少了开发工作量。

感谢曾经共事的同事,特别感谢王凤燕、李晓强、蒋吉兆、常喜龙、谭慧敏、范泽清、曹立刚、段成伟、李强、范耀、刘永革、吕炜、朱振刚、李诺、潘勇、张禹、詹钧渊等老同事,最近几年我与你们一起项目实践,将元数据模型应用提升到一个新高度,使我确信元数据模型设计思路的正确性,并著成本书。

非常感谢编辑孙学瑛老师,在本书的出版过程中,逐句逐字推敲,付出了不少精力。

我虽然设计过基于元数据模型的系统,但由于模型非常抽象,将元数模型驱动设计思路清晰地表达出来更难,再加上本人水平有限,书中肯定存在各种不足之处,希望读者批评指正并反馈,以便我改进,谢谢!

谢用辉


目录

目 录


第1章 元数据模型 1
1.1 低代码开发平台介绍 1
1.2 当事人领域模型 9
1.3 元数据模型定义 11
1.4 元数据模型实例类 16
1.5 元数据模型实例创建 19
1.6 元数据模型术语 23
1.7 主数据应用场景 25
1.8 本书实现目标 28
1.8.1 当事人录入功能 29
1.8.2 当事人查询功能配置 33
第2章 元数据实例服务 37
2.1 技术分层架构 37
2.2 元数据实例服务设计 38
2.2.1 新建当事人 38
2.2.2 修改当事人 40
2.2.3 删除当事人 41
2.2.4 创建实例 44
2.2.5 修改实例 45
2.2.6 删除实例 46
2.2.7 实例服务设计小结 47
2.3 元数据实例服务介绍 48
2.3.1 getDna服务 48
2.3.2 initInst服务 49
2.3.3 saveInst服务 50
2.3.4 getInst服务 52
2.3.5 deleteInst服务 53
2.3.6 当事人和元数据实例服务对比分析 54
2.4 元数据实例与POJO转换 55
2.4.1 元数据实例与POJO定制化转换 55
2.4.2 元数据实例与POJO基于参数转换 57
2.4.3 元数据实例与POJO基于注解转换 62
2.5 元数据实例与JSON转换 68
2.5.1 元数据实例的JSON格式转换 68
2.5.2 元数据实例JSON序列化 71
2.5.3 元数据实例JSON反序列化 73
2.5.4 Controller层JSON转换应用 76
第3章 元数据实例持久化 78
3.1 元数据实例数据库映射分析 78
3.2 通用数据库结构 79
3.3 元数据实例数据库映射配置 83
3.4 数据库映射的构造器 86
3.5 数据库映射的创建 90
3.6 DAO服务 95
3.6.1 insertCell服务 95
3.6.2 updateCell服务 98
3.6.3 deleteCellByKey服务 101
3.6.4 getInst服务 104
第4章 元数据实例查询 108
4.1 条件查询分析 108
4.2 基本数据结构 112
4.2.1 查询条件数据结构 112
4.2.2 查询相关树概念 114
4.2.3 构造查询相关树 118
4.3 查询服务的实现 123
4.3.1 查询服务接口 123
4.3.2 构造SQL组合对象 124
4.3.3 DAO层条件查询服务 135
4.3.4 查询服务调用示例 140
4.3.5 查询条件构造器 144
4.4 简单查询 147
第5章 主数据 150
5.1 主数据Dna 150
5.2 查询定义主数据 154
5.3 根据定义查询 160
第6章 元数据实例的界面展现 162
6.1 菜单主数据管理 162
6.2 当事人录入界面实现 168
6.3 实例通用界面实现 177
6.4 页面布局定义 181
6.5 当事人录入页面布局 187
6.6 InstLayout界面渲染 191
6.7 实例属性基础Vue组件 193
6.7.1 InstInput 193
6.7.2 InstSwitch 194
6.7.3 InstBoolSelect 195
6.7.4 DictionarySelect 196
6.7.5 InstButton 197
6.7.6 InstFilterSelect 198
6.7.7 InstSlaveSelect 200
6.8 InstFormLayout组件 204
6.9 InstGridLayout组件 208
6.10 InstTreeLayout组件 220
6.11 组件InstLayout间关系 229
第7章 功能配置 235
7.1 工作台 235
7.2 InstEntry组件 240
7.3 InstFilter组件 247
第8章 元数据定义配置 256
8.1 Dna管理 256
8.2 DnaDbMap管理 266
8.2.1 类DnaDbMap的Dna对象 267
8.2.2 Dna对象到数据库映射 272
8.2.3 DnaDbMap对象到数据库的映射 275
8.3 InstLayout管理 276
8.3.1 InstLayout中间类 277
8.3.2 InstLayout中间类的Dna对象 279
8.3.3 Dna的Dna对象展现 284
8.3.4 DnaDbMapAgent对象展现 287
8.3.5 InstLayoutAgent对象展现 289

短评

书的内容还是比较初级的 适合了解一下

2022-01-27 03:54:21

世界只有一个,不同的认知框架看到不同的世界。这是一本提升程序开发人员认知框架的好书,你值得拥有。作者依托20年软件架构工作经验,借助生动具体的代码示例,为你展示一个基于元数据模型的低代码世界。

2022-01-21 07:23:37

产品特色