架构,改善程序复用性的设计~第二讲 什么应该提取出来,什么应该保留
在进行项目整体架构设计时,我们应该明确知道哪些项目是可以被重复再利用的,而哪些项目是与领域模块关系密切的,对于后者我们是应该在解决方案中保留的,而前者则是应该提取出来的。
在一个完整的解决方案中,应该是由“公用的类库”,“核心的项目基础层”和“与业务领域关系密切个性项目组”组成的,对于我开会的那个项目来说,也是遵循这样一个原则:
将与领域和项目无关的项目进行抽象,形成一个最基础的层,称为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
等等