中级框架分层设计——从数据开始
我一直思考框架设计该如何简单,如何降低开发者难度,最后想出了相处了一个比较满意的框架设计。
框架大致分为 前端UI -后端API-数据库:
前端UI和后端API通过DTO 模型交互
后端API和数据库通过ORM 模型交互
数据库以及ORM模型之间的关系:
鉴于项目可能复用多个数据库,后端工程师可能需要掌握多种数据库SQL语句以及对应SQL语句优化,加大开发难度。
鉴于SQL语句掌握能力和SQL语句优化能力,我的觉得框架应该使用ORM技术 把 数据表拆解成ORM模型,模型与模型之间无关联。
我们在代码里面获取单表ORM模型,然后组装成前台需要的DTO模型。
这个想法取决于DDD领域聚合思想,为了降低领域开发模式,把每个单表看成聚合根。
这样有一下几个好处:
- 执行效率 前端语言的执行效率,和数据库语言执行效率,都没有后端执行效率高
- 优化难度 前端>数据库>后端
- 问题复杂 问题高度内聚在后端,方便调试以及跟踪
- 开发难度 开发人员只需要掌握对应开发语言,专注代码逻辑和代码优化
前端UI获取的DTO模型和后端API获取的ORM 模型之间的关系:
从数据库获取ORM 模型 可以直接通过Map 直接转为简单DTO模型,然后简单DTO模型通过代码组装成 复杂DTO模型 传输给前端UI,完成DTO模型复用。
这个框架思路 不是为了阿里腾讯构思,只为中小级公司构思,简化问题流程,加快开发。
我不是代码的生产者,只是代码的搬运工
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 【译】Visual Studio 中新的强大生产力特性
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构