关于领域模型的总结

关于领域模型

领域特定语言(Domain-Specific Language)的领域模型是DSL的核心组成部分,它定义了特定领域内的对象、属性、关系和约束规则,以形式化方式捕捉该领域的关键概念和结构。‌

为什么需要领域模型

对于开发后台管理系统的同学,一定会对于重复性的业务场景开发工作感到厌烦,好像做了很多工作,却没有实质上的能力提升,总结好像也没有什么亮点,跳槽的时候跟面试官都没有什么好聊的。 领域模型旨在通过对整个站点进行配置描述和解析,通过数据驱动显示,解决80%重复性工作的痛点,同时提升个人的系统架构能力和核心价值。

领域模型的设计特点

  • 通过配置化快速搭建和沉淀大部分功能和组件(下图黄色和蓝色部分)。
  • 保留部分定制化功能。可以嵌入三方页面,也可以手动开发(下图绿色部分)。
  • 可拓展、重载和继承。基于面向对象思想进行开发,所有子类模型继承于基类模型(相同类型的后台系统拥有部分同质化的功能,所以抽离出基类模型概念),子类没有描述的属性直接继承,相同属性进行重载。
  • 低耦合,抽离通用组件,不参与业务逻辑。业务代码通过业务组件作为桥梁连接通用组件,避免污染通用组件。

实现方式

  1. 描述站点结构-描述文档遵循JOSNSchema规范,其中基类model文件包含领域通用配置,project文件则是项目私有配置。描述文件包含菜单、表格以及表格搜索区,还可以描述组件配置,api配置以及数据库操作。schema配置中包含API(遵循RESTfull风格),表格配置,表格操作以及表单搜索项和动态组件。

2.解析配置文件-每个领域的项目可以拆分出不同的配置,通过对配置的解析,生成一个继承后的数据结构,该结构包含对每个站点的描述。

3.处理菜单-当菜单类型为group时,需要递归处理下拉菜单;side表示侧边栏菜单,同样需要递归处理。

4.完成对应页面的组建-当进入对应项目时,通过projectKey来获取指定项目的配置信息,板块的配置分为以下几种情况:

  • moduleType为iframe,解析iframeConfig,显示第三方页面信息。
  • moduleType为custom,读取customConfig,表示开发定制化内容,指向手动开发的页面路由即可。
  • moduleType为schema,解析schemaConfig,调用UseSchemaHooks实现schemaConfig配置的构造,并封装配置提取方法,对表格配置,搜索区域配置等进行独立的配置,以保证数据的清洁度。再调用对应的解析器,实现该板块的构建。
相关推荐
bmxy小明同学15 分钟前
2026-10-11-幻觉治理
服务器·前端·javascript
Coder_张三28 分钟前
iOS 26 适配
前端·ios·swift
m0_5873830030 分钟前
无人自助拼豆系统落地开发实战指南 核心逻辑实现与部署经验分享
前端·javascript·vue.js·人工智能·经验分享·需求分析
zhaiyy35 分钟前
HTML Popover API 实践
前端·javascript·html
牧艺1 小时前
SPA 也能像原生 App:View Transitions API 从原理到可上线实战
前端·javascript·css
Dovis(誓平步青云)1 小时前
现场问题先关闭还是先验收,建筑任务怎样处理依赖
前端·javascript·数据库·mysql·音视频
用户84298142418101 小时前
压缩 ≠ 加密:前端代码保护的三层实践与踩坑记录
前端·javascript
前端一课1 小时前
别把人生过成一场等待退休的倒计时
前端
CENTER SAYS2 小时前
企业400电话办理全流程详解与材料准备(实操向)
前端·crm
:mnong2 小时前
Web 三维可视化技术对比:ParaView Web vs 本项目 wasm + Three.js
前端·webgl·opengl·opencl·科学可视化