关于领域模型的总结

关于领域模型

领域特定语言(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配置的构造,并封装配置提取方法,对表格配置,搜索区域配置等进行独立的配置,以保证数据的清洁度。再调用对应的解析器,实现该板块的构建。
相关推荐
han_12 小时前
一篇看懂国内外主流大模型:GPT、Claude、Gemini、DeepSeek、通义千问有什么区别?
前端·人工智能·llm
一行代码一行诗++12 小时前
注释是什么和注释该怎么写(C语言)
java·前端·javascript
涂兵兵_青石疏影12 小时前
beginPath-vs-save详解
前端
泽_浪里白条12 小时前
我在 Superset 6.x 做自定义图表 + Embedded SDK 集成的实战复盘(附踩坑清单)
前端·数据可视化
幽络源小助理13 小时前
小六壬排盘工具源码 自适应双端 纯原生HTML+JS
前端·javascript·html
Championship.23.2413 小时前
Open Source Pipeline Skill深度解析:自动化开源贡献全流程
前端·javascript·html
Bigger13 小时前
🧠 前端岗位的"结构性调整":现象背后的冷思考
前端·程序员·ai编程
薯老板14 小时前
vue组件之间的通信
前端·vue.js
迪菲赫尔曼14 小时前
从 0 到 1 打造工业级推理控制台:UltraConsole(Ultralytics + FastAPI + React)开源啦!
前端·yolo·react.js·计算机视觉·开源·fastapi
万邦科技Lafite14 小时前
京东开放API接口:item_get返回参数指南
java·前端·javascript·api·电商开放平台