企业级业务系统开发实战

企业级业务系统开发实战
通过一个系列讲述一个真实企业的ERP系统开发全过程。其中包括需求分析、设计建模、开发、测试全生命周期过程,其中会详细讲方法论与技术实践。涉及到的方法包括敏捷软件开发、四色原型、领域驱动设计、业务架构、技术架构与具体的EF、WF、EasyUI等技术在项目中的使用。
领域驱动设计案例之领域层框架搭建
摘要: 根据前面对领域驱动设计概念以及一些最佳实践的理解,领域模型是系统最核心的部分,我们还是采用前面销售订单的例子,这个案例系统的核心构建就从领域层开始。领域层框架搭建主要完成两个任务:1.领域模型的建立,聚合与聚合根的确定,关系的确定。2.建立支持DDD理论的领域层接口。这里先上代码图,再详细讲每个部分...阅读全文
posted @ 2015-11-26 11:10 曹剑 阅读(446) | 评论 (0) 编辑
 
领域驱动设计之体系架构模式交互过程与最佳实践
摘要: 上一文主要讲了DDD体系架构以及每一层主要的作用,这篇主要描述各层之间如何进行交互,以及交互的最佳实现方式。1.应用层某个应用层服务被界面层调用,开始启动。2.对于需要新增领域对象的情况,应用层调用领域层中某个领域对象(聚合根)的构造函数或工厂创建出领域对象,然后调用领域对象的某些方法进行相关的业务...阅读全文
posted @ 2015-11-25 15:07 曹剑 阅读(41) | 评论 (0) 编辑
 
领域驱动设计之体系架构模式
摘要: 我们传统的体系架构模式是三层架构:我认为传统的三层架构主要存在以下问题:1.业务层直接访问数据访问层,也就是业务层直接与数据打交道,与数据实现机制绑定太紧。2.数据访问层的地位太突出,而且没有体现系统所需要的其他基础服务机制。3.业务层并没有很好的指导应该如何进行构建。DDD经典分层架构:一.用户界...阅读全文
posted @ 2015-11-25 15:06 曹剑 阅读(22) | 评论 (0) 编辑
 
领域驱动设计之仓储
摘要: 在了解仓储之前,首先我们来看领域对象的生命周期。1.首先通过调用领域对象的构造函数或工厂创建出对象,对象处于活动状态,这时对象可以进行相关业务逻辑处理。2.对象如果需要进行持久化,则需要通过持久化操作将对象存储到持久化存储中,比如数据库。3.当需要使用某个对象时,可以通过访问持久化存储重建这个对象,...阅读全文
posted @ 2015-11-25 15:03 曹剑 阅读(16) | 评论 (0) 编辑
 
领域驱动设计之工厂
摘要: 领域模型包含领域对象,也就是实体、值对象、领域服务。领域对象除了包含状态信息外,还包含必要的业务逻辑。为了能够使用这些领域对象,就需要实例化这些领域对象。实例化领域对象可以采用两种方式:1.通过调用领域对象的构造函数对其进行实例化,比如Order order=new Order();2.通过调用领域...阅读全文
posted @ 2015-11-25 15:00 曹剑 阅读(12) | 评论 (0) 编辑
 
领域驱动设计之聚合与聚合根实例二
摘要: 这个实例主要说明一个论坛发帖与回复的场景。一般大家的理解是回复必须依赖与帖子,并且回复是没有单独存在的必要,并且帖子与回复通常具有一些不变性约束规则,比如发布一个回复,在帖子中同时增加一次回复次数;回复过的帖子就不再允许删除等,所以一般理解是帖子与回复属于一个聚合,帖子是聚合根,回复是聚合中的一个实...阅读全文
posted @ 2015-11-25 14:58 曹剑 阅读(13) | 评论 (0) 编辑
 
领域驱动设计之聚合与聚合根实例一
摘要: 通过一个实例来说明如何划分聚合与聚合根场景:一个下订单的业务,一个订单必须有相应的客户信息,订单下有订单项,每个订单项必须有相应的产品信息,产品有分类的信息。1.根据这个基本的需求,我们初步确定的实体、值对象与关联关系为(这里采用EF的Model First):2.经过业务深入分析,以及聚合与聚合根...阅读全文
posted @ 2015-11-25 01:14 曹剑 阅读(35) | 评论 (0) 编辑
 
领域驱动设计之聚合与聚合根
摘要: 对实体与值对象等进行关联设计后,就应该进行聚合的划分以及聚合根的确定。首先我们需要明确为什么需要进行聚合的划分?原来我们的系统对领域划分的最小单位通常是模块,比如客户信息管理模块、雇员信息管理模块。但模块的划分对于设计来说,还是显得粒度太粗。一.聚合与聚合根1.定义了对象之间清晰的关系和边界,并实现...阅读全文
posted @ 2015-11-25 00:19 曹剑 阅读(32) | 评论 (0) 编辑
 
领域驱动设计之关联设计
摘要: 在找到实体与值对象后,我们就需要进行对象之间的关联设计。1.关联尽量少,不要形成复杂的关系网。复杂的关系网不利于划分边界,理解与维护对象,同时对性能也有不利影响,通常关系只找出在整个业务生命周期都需要存在的关系。比如一个订单项需要关联到产品,但是仔细分析,一个订单项并不需要再整个业务生命周期都需要存...阅读全文
posted @ 2015-11-24 23:33 曹剑 阅读(33) | 评论 (1) 编辑
 
领域驱动设计之实体、值对象、领域服务
摘要: 建立领域模型的第一步就是需要识别出实体、值对象与领域服务。一.实体1.实体是领域中需要唯一标识的领域概念。通常在业务中,需要唯一标识与区分的对象并需要持续对它进行跟踪,这样的对象我们认为是实体。这里的唯一标识通常指的是业务上的唯一标识,比如订单号、雇员工号等信息,而不是数据库中因为技术需要存储的自增...阅读全文
posted @ 2015-11-24 23:23 曹剑 阅读(45) | 评论 (1) 编辑
 
领域驱动设计之基本概念
摘要: 企业级业务系统开发我们略过需求的采集、分析,直接进入设计。领域驱动设计(DDD)是近10年流行、比较成熟、比较成功的软件设计方法、理论。我们早期常见的软件开发方式是拿到产品需求后,直接考虑数据库中表应该如何设计,这种方式已经将设计与业务需求脱节,而更多的是直接考虑应该如何实现了,这有点本末倒置。而D...阅读全文
posted @ 2015-11-24 22:47 曹剑 阅读(433) | 评论 (5) 编辑
 
企业级业务系统开发实战-序言
摘要: 前些年一直在做微软的解决方案实施与软件开发的工作。在学习、项目实施、开发与管理的过程中学到了别人不少好的东西,也自身总结了大量的经验,希望能够通过一个系列来跟大家分享关于软件开发方面的内容。这个开发系列的由来是这样的,两年前作为一个软件公司的技术总监,完成了一个企业的ERP系统开发,我在这个项目中担...阅读全文
posted @ 2014-09-18 14:33 曹剑 阅读(110) | 评论 (1) 编辑
原文地址:https://www.cnblogs.com/Leo_wl/p/4999457.html