前言
微服务、平台化、云计算是当前IT技术热点,它们强调共享重用,促进了软件快速交付和部署。然而,大多数软件即使采用了微服务技术或者平台化思路,也难以做到通过软件共享重用来快速满足业务需求的变化,大部分需求仍需重新开发实现,导致软件交付时间长。然而,这些开发不仅工作量大、技术含量低、个性化程度高和共享度低,无非是在某个表中增加几个字段,然后在界面增加相关录入属性、调整后台服务逻辑和流程流转控制等细枝末节的改进,软件本身并没有发生重大变化。
因此,通过低代码开发平台快速配置发布软件成为当前软件业的一个热点。低代码开发平台的目标是通过图形化快速配置,尽可能不写代码或者编写极少量代码即可实现业务功能。本书系统地介绍一种低代码开发平台的设计思路和实现方式——元数据模型。在面向不同用户或者场景时,该方法可以通过简单配置或者低代码开发、甚至零代码开发,来快速实现业务需求,最终使得软件具有灵活性好、适应变化能力强、维护简单、稳定性好、重用度高等特点。
一般来说,软件由数据结构(模型)、服务、规则、数据库、流程和操作界面组成。软件的变化,一般是由模型变化带来的如服务、规则、流程和操作界面的一系列变化。目前,市场上常见的解决机制是引入规则引擎或者流程引擎,以提升软件的适应性,但实际上,单纯的规则或者流程变化的需求反而不多,常常要求模型变化之后带来系统性的变化。而模型变化通常被理所当然地认为只有经过代码开发才能实现。
因此,如何应对模型变化是低代码开发平台首先要解决的技术难点。元数据模型是模型变化问题的有效解决方案,在很多软件中都采用了该设计思路,尤其是某些产品化程度很高的软件。本书将系统地呈现这种设计思路——元数据模型——在不修改代码的前提下,实现模型的灵活变化,进而实现数据库、服务、规则、流程和操作界面的变化。
低代码开发平台有很多种实现方式,元数据模型驱动的设计是其中主要的一种方式。本书聚焦于系统化的元数据模型驱动的设计思路,采用该设计思路实现的软件具有低代码开发平台的软件特点。为了重点突出元数据模型驱动的设计思路,尽量避免其他内容干扰,本书不介绍与规则引擎和流程引擎相关的内容,而是重点介绍元数据模型、服务、持久化机制、元数据模型界面展现和元数据模型的模型,即通过元数据模型来描述元数据模型自身。
本书内容分为如下章节:
第1章介绍低代码开发平台的实现方式、元数据模型概念,并且综述本书所达到的需求目标;
第2章介绍基于元数据模型实例之上的通用服务设计,通过这些服务可以实现所有元数据实例的增删改查的功能;
第3章介绍如何将元数据模型的实例保存到数据库中,通过数据库映射配置,将实例映射到数据库;
第4章介绍如何将元数据模型实例从数据库中按照条件查询,通过配置查询条件和查询结果实现通用的实例查询功能;
第5章介绍主数据,这是元数据模型在主数据方面的简单应用,主数据也是后续章节的基础;
第6章介绍元数据实例在界面上如何展现,通过配置页面布局实现对实例的动态展现,而不需要定制开发界面程序代码;
第7章介绍元数据实例的功能配置,实现从前端界面到后台服务之间的联动,将模型、服务、数据库和界面展现有机地组织成一个完整的软件功能,并且可以动态配置新功能,动态扩展软件能力;
第8章介绍如何用元数据模型实例管理元数据自身,也就是元数据模型的模型(这里没有写错,是模型的模型),应对元数据模型自身的变化,这是本书最为抽象的地方,也是元数模型能够发挥到极致的能力表现。
由于元数据模型非常抽象,解释元数据本身就是非常困难的工作,因此本书的有些地方为了精确地表达意思,不厌其烦地加上了很多定语,同时提供比较多的程序代码来解释元数据模型的实现,以便读者充分理解。由于设计思路与平常的开发流程不同,读者在阅读过程中可能会遇到各种理解上的问题,希望大家能在阅读过程中,保持耐心,反复仔细体会。书中代码来自于真实软件,帮助用于对低代码开发平台设计的理解,不随本书提供源代码一。
我对元数据模型的理解和应用,是在长期软件项目实践中积累并逐渐成熟的。我从2006年开始参与Pharos系统,到最近设计开发的新一代保险核心业务系统,都采用了元数据模型的设计思路,取得了非常好的效果。我在保险核心业务系统中采用元数据模型,统一了产险、寿险和健康险的保单模型,在一个系统中同时支持了保险全产品线,大大减少了开发工作量。
感谢曾经共事的同事,特别感谢王凤燕、李晓强、蒋吉兆、常喜龙、谭慧敏、范泽清、曹立刚、段成伟、李强、范耀、刘永革、吕炜、朱振刚、李诺、潘勇、张禹、詹钧渊等老同事,最近几年我与你们一起项目实践,将元数据模型应用提升到一个新高度,使我确信元数据模型设计思路的正确性,并著成本书。
非常感谢编辑孙学瑛老师,在本书的出版过程中,逐句逐字推敲,付出了不少精力。
我虽然设计过基于元数据模型的系统,但由于模型非常抽象,将元数模型驱动设计思路清晰地表达出来更难,再加上本人水平有限,书中肯定存在各种不足之处,希望读者批评指正并反馈,以便我改进,谢谢!
谢用辉
读者服务
微信扫码回复:42352
加入本书交流群,与作者互动
获取【百场业界大咖直播合集】(持续更新),仅需1元