关于领域模型的总结

关于领域模型

领域特定语言(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配置的构造,并封装配置提取方法,对表格配置,搜索区域配置等进行独立的配置,以保证数据的清洁度。再调用对应的解析器,实现该板块的构建。
相关推荐
一晌小贪欢几秒前
python-第20天:关键字参数与不定长参数
java·开发语言·前端·python·数据可视化·函数参数·python办公
我命由我123452 分钟前
JS Mock(Mock 拦截请求的前提、Mock 使用、关闭 Mock)
开发语言·前端·javascript·前端框架·html·html5·js
开开心心就好8 分钟前
手机精确倒计时工具悬浮窗口秒数实时显示
android·前端·javascript·jupyter·智能手机·pdf·html
小江的记录本15 分钟前
【HTML】HTML5 新特性、语义化标签、浏览器渲染流程(附《思维导图》)
前端·css·面试·前端框架·html·css3·html5
风骏时光牛马30 分钟前
手机端高效实用技巧,看完直接上手用
前端
索西引擎33 分钟前
【Vue】Vue.js 3 声明式渲染架构的设计原理与模块协同机制研究
前端·javascript·vue.js
mayaairi3 小时前
Vue2 事件绑定完全指南:从入门到原理
前端·javascript·vue.js
ℋᙚᵐⁱᒻᵉ鲸落8 小时前
移动端滑动手势冲突:overflow: auto导致外层横向滑动失效
前端·javascript·css·vue.js·html
默_笙10 小时前
🎃 前端学了 Next.js,后端该学啥?NestJS 就是 Node 版的蜜雪冰城
前端·javascript