我们先看一下汽车的基本构造,由车身、发动机、方向盘等多个零部件构成,因为它是一个工业产品,有实物存在,摸得着看得见,所以大家很容易理解。日本丰田汽车是如何做到自动化流水线生产的,本质上是把产品xBOM定义得很清晰,而且完全结构化了,才能用数字化技术生产汽车产品。
软件系统也是有构成要素的,只不过软件系统跟汽车相比,比较抽象,难以理解,但是想做到低代码/零代码方式开发应用系统,必须对应用系统构成要素进行抽象,层层拆解,直到最小的元素,其实也是一个产品结构树BOM。反过来,如果每个最小的元素都可以通过拖拉拽可视化方式开发,然后可以把这些元素通过配置方式组合起来,就达到了低代码平台开发的要求。
从上分析可以得出,那我们需要实现应用组装,那就需要对一个软件系统进行解剖,通常将系统打散到能力、能力打散到模块、模块打散到功能、功能打散到原子能力、组件、api。
模型驱动是一种软件开发方法,利用一系列模型的设计、映射、引用、转换,来驱动软件的需求、设计、实现的软件工程过程。
目前部分低代码采用的模型驱动,有些低代码呢是试图驱动,但个人感觉模型驱动更便于和专业开发打通和融合,所以氢原平台采用的模型驱动。
模型驱动的好处大概总结咯一下:
- 模型积累和重用,模型可以导入导出,模型可以分享,相比代码更具备复用性;
- 使用模型从较低级别的代码中抽象出来,使团队中的每个人(包括技术和业务专业人员)能够专注于更高级别的概念和解决方案;
- 与程序员的传统编程思维更加贴切,便于专业开发人员进行开发和扩展。
既然采用模型驱动对应的核心模块功能如下:
1、领域建模:前台通过界面定义领域对象,定义领域字段属性和类型,后台根据定义信息动态建表、修改表。
2、唯一性约束:可以是通过id,也可能是根据业务的唯一性约束来建立规则。
3、领域实体关系梳理:比如树形实体、流程实体、普通实体,需要预制哪些字段?其实这是需要一定开发经验和开发积累的。
4、字段类型设置:字段类型可以是根据数据库类型来设置,也可以根据试图显示类型来设置,但平台为了更好操作,采用的试图类型。可以减少用户界面组装的难度。
5、数据存放,因为低代码存在大量描述数据,又要保证性能,所以要采用redis或者es这种存储方式。