NET 领域驱动设计实战系列总结
NET 领域驱动设计实战系列总结
一、引用
其实在去年本人已经看过很多关于领域驱动设计的书籍了,包括Microsoft .NET企业级应用框架设计、领域驱动设计C# 2008实现、领域驱动设计:软件核心复杂性应对之道、实现领域驱动设计和Asp.net 设计模式等书,但是去年的学习仅仅限制于看书,当时看下来感觉,领域驱动设计并没有那么难,并且感觉有些领域驱动设计的内容并没有好的,反而觉得有点华而不实的感觉,所以去年也就放弃了领域驱动设计系列的分享了,但是到今年,在博客园看到还是有很多人写领域驱动的文章,以及介绍了领域驱动设计相关的好处,这时候我就想,领域驱动设计真有这么好吗?但是我并不觉得好了,这时候就想是不是我没有实战没有深刻的感受呢?因此我在今年3月份的时候又重拾领域驱动设计,打算分享一系列关于领域驱动设计实现的文章,所以也就有了这个系列。
二、本系列所有专题目录
在刚开始打算写的时候,本以为对领域驱动设计相关理论知识掌握的不错,但当真正打算写的时候,发现之前的知识储备差不多忘的差不多了,无奈下只有重新再拿起书本来温习一遍,不过这次温习很快,因为之前都已经看过一篇。这里分享出来就是想告诉大家,没有真正实践过的东西是很容易忘记的,这时更加坚定了我要写这一系列的文章了。这个初衷也是我一直坚持写这个系列的动力。现在这个系列也告一段落了,从中我确实体会了领域驱动设计的美妙之处,以及现在软件设计的发展和改变。下面是本系列中所有专题的一个目录,为了帮助更好地收藏和自己进行索引,关于实践下来的体会将在下一部分分享给大家。
[.NET领域驱动设计实战系列]专题一:前期准备之EF CodeFirst
[.NET领域驱动设计实战系列]专题二:结合领域驱动设计的面向服务架构来搭建网上书店
[.NET领域驱动设计实战系列]专题三:前期准备之规约模式(Specification Pattern)
[.NET领域驱动设计实战系列]专题四:前期准备之工作单元模式(Unit Of Work)
[.NET领域驱动设计实战系列]专题五:网上书店规约模式、工作单元模式的引入以及购物车的实现
[.NET领域驱动设计实战系列]专题六:DDD实践案例:网上书店订单功能的实现
[.NET领域驱动设计实战系列]专题七:DDD实践案例:引入事件驱动与中间件机制来实现后台管理功能
[.NET领域驱动设计实战系列]专题八:DDD案例:网上书店分布式消息队列和分布式缓存的实现
[.NET领域驱动设计实战系列]专题九:DDD案例:网上书店AOP和站点地图的实现
[.NET领域驱动设计实战系列]专题十:DDD扩展内容:全面剖析CQRS模式实现
三、总结
通过对领域驱动设计的实践,本人对领域驱动设计的有点和缺点都有了一个清晰的认识。并不是所有软件都适合应用领域驱动来实现的,例如在一些公司还是用三层框架来进行软件的开发,这样并没有什么不好,针对一些业务逻辑简单和后期需求变更不大的软件,完全可以使用三层框架来进行开发,因为三层框架尽管各层之间的依赖关系比较大,不利于扩展。但其好处就是简单,快捷。对于一些小型项目用三层框架是极好的。但对于一些大型项目来说,三层框架可能就不怎么适合了,尤其是大型网站项目。这时候就可以考虑使用领域驱动设计,领域驱动设计推崇的富领域模型,即将相关实体的业务逻辑放在领域实体里面。领域驱动设计思想分层结构更细,使得各层之间的依赖降低,通过引入依赖注入框架拉进入达到低耦合,高内聚原则。并且通过仓储模式,可以使得针对其他数据库的存储也可以很方便的进行扩展。采用领域驱动设计也可以更多实施测试驱动开发,早在以前的项目,哪里会有单元测试这个东西啊。
通过这个系列最深刻的感受,除了对领域驱动设计有了更进一步的认识外,还有一点更深刻的感受就是做软件的一定要把自己学到的内容实践起来,并且通过博文或其他方式进行总结,这样才能更好的积累。尽管通过博文的方式不经常用一样会忘记,但是很多东西你总结了就是和没总结的不一样,总结了可以对知识有一个系统的梳理,这样可以让你深刻理解知识点,尽管忘记了,它也是被记录在大脑的某个角度,当重新遇到问题时,你完全可以通过自己写的博文重新找回来,并且找回来的认识并不会比之前的理解少,可能更加多,但是不总结的话,那种忘记可能就是真的忘记了,等于没看一样。所以,对于做软件来说,真需要多实践。所以,还是奉劝大家可以多总结,多实践,抛下浮躁的心态,想做好技术,需要的静下心来专研和实践。最近,刚接触的一个项目用到了一个一些非关系数据的内容。所以接下来,我将会新开一个非关系数据库的系列来进行总结自己这段时间里的经历。其中包括Mongodb、Redis等非关系数据库的相关内容。
最后附上,所有专题的完整DDD实践案例下载地址:
DDD实践案例下载地址:DDD实践案例:网上书店
NET 领域驱动设计实战系列总结的更多相关文章
- [.NET领域驱动设计实战系列]专题十一:.NET 领域驱动设计实战系列总结
一.引用 其实在去年本人已经看过很多关于领域驱动设计的书籍了,包括Microsoft .NET企业级应用框架设计.领域驱动设计C# 2008实现.领域驱动设计:软件核心复杂性应对之道.实现领域驱动设计 ...
- [.NET领域驱动设计实战系列]专题一:前期准备之EF CodeFirst
一.前言 从去年已经接触领域驱动设计(Domain-Driven Design)了,当时就想自己搭建一个DDD框架,所以当时看了很多DDD方面的书,例如领域驱动模式与实战,领域驱动设计:软件核心复杂性 ...
- [.NET领域驱动设计实战系列]专题二:结合领域驱动设计的面向服务架构来搭建网上书店
一.前言 在前面专题一中,我已经介绍了我写这系列文章的初衷了.由于dax.net中的DDD框架和Byteart Retail案例并没有对其形成过程做一步步分析,而是把整个DDD的实现案例展现给我们,这 ...
- [.NET领域驱动设计实战系列]专题十:DDD扩展内容:全面剖析CQRS模式实现
一.引言 前面介绍的所有专题都是基于经典的领域驱动实现的,然而,领域驱动除了经典的实现外,还可以基于CQRS模式来进行实现.本专题将全面剖析如何基于CQRS模式(Command Query Respo ...
- [.NET领域驱动设计实战系列]专题七:DDD实践案例:引入事件驱动与中间件机制来实现后台管理功能
一.引言 在当前的电子商务平台中,用户下完订单之后,然后店家会在后台看到客户下的订单,然后店家可以对客户的订单进行发货操作.此时客户会在自己的订单状态看到店家已经发货.从上面的业务逻辑可以看出,当用户 ...
- [.NET领域驱动设计实战系列]专题五:网上书店规约模式、工作单元模式的引入以及购物车的实现
一.前言 在前面2篇博文中,我分别介绍了规约模式和工作单元模式,有了前面2篇博文的铺垫之后,下面就具体看看如何把这两种模式引入到之前的网上书店案例里. 二.规约模式的引入 在第三专题我们已经详细介绍了 ...
- [.NET领域驱动设计实战系列]专题六:DDD实践案例:网上书店订单功能的实现
一.引言 上一专题已经为网上书店实现了购物车的功能了,在这一专题中,将继续对网上书店案例进行完善,本专题将对网上书店订单功能的实现进行介绍,现在废话不多说了,让我们来一起看看订单功能是如何实现的吧. ...
- [.NET领域驱动设计实战系列]专题四:前期准备之工作单元模式(Unit Of Work)
一.前言 在前一专题中介绍了规约模式的实现,然后在仓储实现中,经常会涉及工作单元模式的实现.然而,在我的网上书店案例中也将引入工作单元模式,所以本专题将详细介绍下该模式,为后面案例的实现做一个铺垫. ...
- [.NET领域驱动设计实战系列]专题三:前期准备之规约模式(Specification Pattern)
一.前言 在专题二中已经应用DDD和SOA的思想简单构建了一个网上书店的网站,接下来的专题中将会对该网站补充更多的DDD的内容.本专题作为一个准备专题,因为在后面一个专题中将会网上书店中的仓储实现引入 ...
随机推荐
- FileStream:The process cannot access the file because it is being used by another process
先看下面一段代码(先以共享的方式打开文件读写,然后以只读的方式打开相同文件): FileStream fs = new FileStream(filePath, FileMode.Open, Fil ...
- asp.net使用mysql数据库
Asp.net连接mysql 不推荐使用ODBC,推荐是用mysql官网提供的组件MySQL.Data.Dll,放在bin下面,添加引用即可 下面是封装的几个常用操作 using System; us ...
- Java 大数类
划分结果存在数组.供应商下标0 在剩下的标记1 import java.math.BigInteger; import java.util.Scanner; public class Main { p ...
- SQL学习之--触发器
USE [learn2] GO /****** Object: Trigger [dbo].[trigger_AdClass] Script Date: 09/30/2014 09:01:03 *** ...
- 【课程分享】基于plusgantt的项目管理系统实战开发(Spring3+JDBC+RMI的架构、自己定义工作流)
基于plusgantt的项目管理系统实战开发(Spring3+JDBC+RMI的架构.自己定义工作流) 课程讲师:张弘 课程分类:Java 适合人群:中级 课时数量:37课时 用到技术:Spring ...
- 懒与馋的平衡:餐饮O2O市场广阔,发展不易
餐饮行业是众多行业中O2O起步较早的,现在方兴未艾的团购站点中最先涉足的领域就有餐饮版块.长时间的合作推广,很多餐饮商家已经从中尝到甜头,可以说餐饮行业市场基础培育的比較好,所以餐饮O2O 已经是大势 ...
- Spark 1.0.0版本发布
前言 如今Spark终于迈出了里程碑一步,1.0.0标记的版本号出版物Spark1.0时代.1.0.0版本号不仅增加了非常多新特性.而且提供了更好的API支持.Spark SQL作为一个新的组件增加. ...
- 调整CentOS的文字登陆界面的分辨率
通过文字界面登陆到系统,切换到root权限. 用vi打开 /boot/grub/menu.lst 文件 ,因为menu.lst是grub.conf文件的快捷方式,终于打开的还是grub.conf文 ...
- 自己写CPU第四阶段(2)——验证该第一指令ori实现效果
我们会继续上传新书<自己写CPU>(未公布),今天是12片,四篇 书名又之前的<自己动手写处理器>改为<自己动手写CPU> 4.3 验证OpenMIPS实现效果 4 ...
- Tomcat—怎样在Tomcat Webserver下部署Web项目
总结一下怎样在Tomcat Webserver下部署Web项目: