关于领域模型的总结

关于领域模型

领域特定语言(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配置的构造,并封装配置提取方法,对表格配置,搜索区域配置等进行独立的配置,以保证数据的清洁度。再调用对应的解析器,实现该板块的构建。
相关推荐
代码搬运媛4 小时前
Jest 测试框架详解与实现指南
前端
counterxing5 小时前
我把 Codex 里的 Skills 做成了一个 MCP,还支持分享
前端·agent·ai编程
wangqiaowq5 小时前
windows下nginx的安装
linux·服务器·前端
之歆5 小时前
DAY_12JavaScript DOM 完全指南(二):实战与性能篇
开发语言·前端·javascript·ecmascript
发现一只大呆瓜6 小时前
Vite凭什么这么快?3分钟带你彻底搞懂 Vite 热更新的幕后黑手
前端·面试·vite
Maimai108086 小时前
React如何用 @microsoft/fetch-event-source 落地 SSE:比原生 EventSource 更灵活的实时推送方案
前端·javascript·react.js·microsoft·前端框架·reactjs·webassembly
kyriewen7 小时前
产品经理把PRD写成“天书”,我用AI半小时重写了一遍,他当场愣住
前端·ai编程·cursor
humcomm8 小时前
元框架的工作原理详解
前端·前端框架
canonical_entropy8 小时前
Attractor Before Harness: AI 大规模开发的方法论
前端·aigc·ai编程
zhangxingchao9 小时前
多 Agent 架构到底怎么选?从 Claude Agent Teams、Cognition/Devin 到工程落地原则
前端·人工智能·后端