DDD为开发模式的设计开发步骤可以是:
1)分析需求;
2)画出用例图,系统中各个角色如何使用系统,也包括外部系统如何使用系统,也包括系统中到某个时间点自动启动的某些功能(此时角色就是时间);
3)针对各个用例图,就知道了系统使用的各种业务场景,同时也明确了系统的边界,从而就明确了领域模型的边界;
4)在领域模型的边界内划分聚合,找出每个聚合的边界,找出边界内的聚合根,实体,值对象;这步是难点。这里一定不能混淆的一个概念是,领域建模不是以用户为中心的建模,而是以用户的需求为中心的建模。所以要努力寻找各种业务概念,切勿将所有行为都设计到User,Employee,Account,等对象上。而应该找出如Order,LeaveRecord,Payment,JobApplication,等业务概念。
5)如果是根据经典的DDD领域建模,我们可以接下来分析一些领域服务,领域服务用于协调多个领域对象之间的行为;
6)根据领域模型中的聚合根设计对应的仓储;这步完成就表示领域模型已经完成了。
7)对照前面的需求用例,检查领域模型是否都可以满足用例中提到的各种业务场景;
8)进一步分析领域模型,分析模型中哪些点是和特定系统相关的设计,哪些点可以进一步抽象出通用的领域模型,该通用领域模型可以满足此类相似系统的核心业务。比如积分系统中,可以抽象出“积分发放/消费”的模型。该模型可以在任何财务或积分系统中使用;
9)现在,可以让有经验的人检查一下你设计的领域模型了,也就是如果有可能就进行一下模型Review,确保在写代码之前,模型的正确性。
10)对领域模型进行单元测试,单元测试的时候,如果只想测试业务逻辑,可以设计Stub的仓储;如果想和持久化一起测试,那可以编写真实的仓储,如果你是用Hibernate来做数据存储,可以在此时建立ORM映射文件和数据库表;写完后,编写测试用例进行单元测试;
11)最后实现你的UI层。但是为了让你的UI层可以不依赖于你的模型设计和测试,可以在UI层编写他自己需要的ViewModel,然后他在Web Form或Controller或View上只要访问ViewModel即可。等到你的领域模型完成并测试通过后,把领域模型的数据填充到ViewModel即可;

以DDD为开发模式的设计开发步骤可以是的更多相关文章

  1. 3.NetDh框架之缓存操作类和二次开发模式简单设计(附源码和示例代码)

    前言 NetDh框架适用于C/S.B/S的服务端框架,可用于项目开发和学习.目前包含以下四个模块 1.数据库操作层封装Dapper,支持多种数据库类型.多库实例,简单强大: 此部分具体说明可参考博客: ...

  2. 【Android开发】如何设计开发一款Android App

    本文从开发工具选择,UI界面.图片模块.网络模块.数据库产品选择.性能.安全性等几个方面讲述了如果开发一个Android应用.现在整理出来分享给广大的Android程序员. 开发工具的选择 开发工具我 ...

  3. WEB开发模式浅析

    WEB技术随着互联网的崛起而崛起,又随着移动互联网的发展而呈现更加多样化的趋势. 黑暗时代:大约在2005年以前,所谓的WEB开发主要还是美工的活,HTML/CSS占主导,Dreamwaver做为页面 ...

  4. Django框架深入了解_01(Django请求生命周期、开发模式、cbv源码分析、restful规范、跨域、drf的安装及源码初识)

    一.Django请求生命周期: 前端发出请求到后端,通过Django处理.响应返回给前端相关结果的过程 先进入实现了wsgi协议的web服务器--->进入django中间件--->路由f分 ...

  5. Java Web开发模式

    一 Java Web开发模式的变迁 1 最初的Java web服务器端编程技术是Servlet,利用Servlet就可以开发出一个Web应用程序. 2 为了解决Servlet缺陷,SUN推出了JSP技 ...

  6. TDD、BDD、ATDD、DDD 软件开发模式

    TDD.BDD.ATDD.DDD 软件开发模式 四个开发模式意思: TDD:测试驱动开发(Test-Driven Development) BDD:行为驱动开发(Behavior Driven Dev ...

  7. 四种软件开发模式:tdd、bdd、atdd和ddd的概念

    看一些文章会看到TDD开发模式,搜索后发现有主流四种软件开发模式,这里对它们的概念做下笔记. TDD:测试驱动开发(Test-Driven Development) 测试驱动开发是敏捷开发中的一项核心 ...

  8. 13 JSP、MVC开发模式、EL表达式和JSPL标签+软件设计架构---学习笔记

    1.JSP (1)JSP概念:Java Server Pages 即java服务器端页面可以理解为:一个特殊的页面,其中既可以指定定义html标签,又可以定义java代码用于简化书写!!! (2)原理 ...

  9. MVC:开发模式&&三层架构:软件设计架构

    MVC:开发模式 jsp演变历史 早期只有servlet,只能使用response输出标签数据,非常麻烦 后来又jsp,简化了Servlet的开发,如果过度使用jsp,在jsp中即写大量的java代码 ...

随机推荐

  1. 九幽史程博:助力国内开发者借Win10东风出海

    微软Biuld2016大会刚刚结束,会议上微软CEO纳德拉Show出的一大波黑科技,又一次让软粉们心情为之振奋,信仰充值爆棚! 尽管过去一年微软的Win10 Mobile表现不尽如人意,可是凭借PC端 ...

  2. Bootstrap系列 -- 27. 下拉菜单对齐方式

    Bootstrap框架中下拉菜单默认是左对齐,如果你想让下拉菜单相对于父容器右对齐时,可以在“dropdown-menu”上添加一个“pull-right”或者“dropdown-menu-right ...

  3. [USACO2004][poj1985]Cow Marathon(2次bfs求树的直径)

    http://poj.org/problem?id=1985 题意:就是给你一颗树,求树的直径(即问哪两点之间的距离最长) 分析: 1.树形dp:只要考虑根节点和子节点的关系就可以了 2.两次bfs: ...

  4. 第四十二课:基于CSS的动画引擎

    由于低版本浏览器不支持css3 animation,因此我们需要根据浏览器来选择不同的动画引擎.如果浏览器支持css3 animation,那么就使用此动画引擎,如果不支持,就使用javascript ...

  5. Excel解析与导入导出

    第三次结对编程作业 结对成员: 031302610黄志鹏 031302603 陈波 功能分析 1.将初始排课表excel导入系统数据库 2.将系统数据库的排课数据显示在web界面 实现思路 一.实现将 ...

  6. 我眼中的Android IDE

    我作为一个Android小白,首先跟Android打交道的就是它的IDE(Integrated Development Environment,集成开发环境)了. 记得刚开始时是从图书馆借了本Andr ...

  7. Struts2 标签分类

  8. 模式匹配KMP算法

    关于KMP算法的原理网上有很详细的解释,我试着总结理解一下: KMP算法是什么 以这张图片为例子 匹配到j=5时失效了,BF算法里我们会使i=1,j=0,再看s的第i位开始能不能匹配,而KMP算法接下 ...

  9. 解决Oracle忘记密码问题

    在使用ORACLE的过程中,会出现各种各样的问题,各种各样的错误,其中ORA-12899就是前段时间我在将数据导入到我本地机器上的时候一直出现的问题.不过还好已经解决了这个问题,现在分享一下,解决方案 ...

  10. 【poj1274】 The Perfect Stall

    http://poj.org/problem?id=1274 (题目链接) 题意 懒得写了 Solution 二分图匹配裸题.注意清空数组. 代码 // poj3020 #include<alg ...