架构,改善程序复用性的设计~第二讲 什么应该提取出来,什么应该保留
在进行项目整体架构设计时,我们应该明确知道哪些项目是可以被重复再利用的,而哪些项目是与领域模块关系密切的,对于后者我们是应该在解决方案中保留的,而前者则是应该提取出来的。
在一个完整的解决方案中,应该是由“公用的类库”,“核心的项目基础层”和“与业务领域关系密切个性项目组”组成的,对于我开会的那个项目来说,也是遵循这样一个原则:
将与领域和项目无关的项目进行抽象,形成一个最基础的层,称为Project.Common
将与架构模式有关,而与领域无关的项目,形成一个架构模式核心层,称为Project.Core
将与指定领域有关的,个性化业务组成的代码,叫做领域层,它的名称由项目含义确定
在这篇文章里,我们主要是找到一个项目中,可以被抽象和被重复再利用的点,它可以是个方法,也可能是个类,再可以是个接口,一个项目等,在架构领域时,在代码重复再利用方法,我认为应该是以一个项目为单位的,一个项目里,可能包括的是一些可以被再利用的类的集合。恩,就是这样的。
对于电子商务网站,它的解决方案架构可能是:
ABC公司的电子商备平台架构
ABC_WEB (MVC or WebForm)
ABC_Service
ABC_Data
ABC_Entity
使用所有电子商务类网站的核心代码:
EC_Web
EC_Entity
EC_Service
EC_Data(可以被多个数据库公用的一些dbml模块)
使用通用核心代码:
WEB.Commons
Entity.Commons
Data.Commons
最底层才是公用类库
VCommons
Standard
VLogs
等等
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
· 没有源码,如何修改代码逻辑?
· 分享4款.NET开源、免费、实用的商城系统
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
· 记一次.NET内存居高不下排查解决与启示