zoukankan      html  css  js  c++  java
  • Weapsy分析(二)项目分层

    简单罗列下Weapsy项目几个层,它们分别是

    1  Core  核心层

    2 Data 数据层

    3 Entites 实体层

    4 Service 服务层

    5 Web层

    我想通过对DDD(领域模型)的典型层次来分析这个项目,看看这个项目在架构上有啥优点,说的不好的地方别丢砖就行了- -

    首先看下比较公认的3层架构(希望看了后学习上不会有太大的曲线)和DDD的层次划分。(有空我会专门写几个DDD相关的东西)

    左边的是三层架构:表现层,业务层和数据访问层。

    右边的是DDD通用性分层架构:表现层,应用层,领域层和基础设施层。

    通过比较:

    1. Weapsy的Core 其实对应着基础设施层,不过这里的并不是指领域模型中的基础设施,更恰当的说应该是一些普通项目的核心层,封装一些常用的工具和服务。
    2. Data暂时好像没有找到对应的层
    3. Entities 这个对应着领域层,它是其中的一个部分。领域层如果进行细分,会出现一些专门对应的一些领域核心层,领域核心实体扩展层。
      1. 领域核心层:这个层专门用于进行对领域层的扩展:用于定义一些领域中常用模式的接口,属于上层建筑。如仓储,工作单元等,
      2. 领域核心扩展层:这个层专门用于对领域层中的实体进行扩展,如实体跟踪,合并等。
    4. Service:这个层对应着应用层。用于对外提供服务。
    5. Web层:毫无疑问属于表现层。

    OK,这里还有一个Data层,它到底干嘛的?仔细看看它的功能:

    1. 定义了上下文如何初始化(Initalizers文件夹)。
    2. 定义了实体之间的关联(Mapping文件夹)。
    3. 定义了仓储
    4. 定义了上下文的接口。
    5. 最后就是上下文。

    上下文的初始化和实体关系类这里属于CodeFirst,所以这层其实是由EntityFramework和DDD结合所产生的。(个人理解,有更好的阐述的可以发言哈!)

    结论:项目还是标准的,虽然层没有在细分,但是我感觉这个是可以的,因为层越多,有时候也不一定能hold住。对于小规模的项目来说简单点还是很重要的。哪天项目感觉有点烂了,考虑重构吧。^_^

     

  • 相关阅读:
    jqueryuidatepicker 可控制是否显示时分秒
    JQuery zTree v3.2和demo
    模拟网易163写的一个文本框触发效果
    不刷新页面,切换CSS文件
    Devs开源规则引擎介绍
    坑爹啊!!!win2003 x64企业版不支持tfs2010的源代码管理服务
    gui设计禁忌2.0读书笔记
    c#关于数据库自定义类型在存储过程中返回服务器端的问题
    vs2010 sp1在win2003不能安装的问题
    mysql真是不错!
  • 原文地址:https://www.cnblogs.com/fengxing/p/2477785.html
Copyright © 2011-2022 走看看