自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(19)
  • 收藏
  • 关注

原创 DDD实战进阶第一波(一):开发一般业务的大健康行业直销系统(概述)

近年来,关于如何开发基于业务的软件系统与产品一直是软件行业的一个重要内容。对于架构师与软件开发人员来说,开发此类系统头痛的问题大概是以下几个方面:1.如何将需求准确的转为软件的设计?2.系统的架构与代码如何有效的体现我们的设计?3.如何将领域逻辑与技术分离?4.如何能够让团队人员的开发能够专注与业务,而不是技术本身?5.如何交付高质量的软件,如何在出现问题时能够快速定位到代码?...

2018-04-04 15:38:15 272

原创 微服务实战(四):落地微服务架构到直销系统(将生产者与消费者接入消息总线)

微服务实战(四):落地微服务架构到直销系统(将生产者与消费者接入消息总线)前一篇文章我们已经完成了基于RabbitMq实现的的消息总线,这篇文章就来看看生产者(订单微服务)与消费者(经销商微服务)如何接入消息总线实现消息的发送与消息的接收处理。 定义需要发送的消息:下单消息要被发送到消息总线,并被经销商微服务的处理器处理。经销商微服务处理时,需要知道要对哪个经销商处理多少的PV值与...

2018-08-02 11:09:18 258

原创 微服务实战(三):落地微服务架构到直销系统(构建基于RabbitMq的消息总线)

微服务实战(三):落地微服务架构到直销系统(构建基于RabbitMq的消息总线)从前面文章可以看出,消息总线是EDA(事件驱动架构)与微服务架构的核心部件,没有消息总线,就无法很好的实现微服务之间的解耦与通讯。通常我们可以利用现有成熟的消息代理产品或云平台提供的消息服务来构建自己的消息总线;也可以自己完全写一个消息代理产品,然后基于它构建自己的消息总线。通常我们不用重复造轮子(除非公司有特殊的...

2018-08-02 11:07:21 179

原创 微服务实战(二):落地微服务架构到直销系统(构建消息总线框架接口)

微服务实战(二):落地微服务架构到直销系统(构建消息总线框架接口)从上一篇文章大家可以看出,实现一个自己的消息总线框架是非常重要的内容,消息总线可以将界限上下文之间进行解耦,也可以为大并发访问提供必要的支持。消息总线的作用:1.界限上下文解耦:在DDD第一波文章中,当更新了订单信息后,我们通过调用经销商界限上下文的领域模型和仓储,进行了经销商信息的更新,这造成了耦合。通过一个消息总...

2018-08-02 11:03:12 205

原创 微服务实战(一):落地微服务架构到直销系统(什么是微服务)

微服务实战(一):落地微服务架构到直销系统(什么是微服务)网上有很多关于微服务的文章,从不同的维度对微服务进行了相关的讲述;有些高屋建瓴,有些涉及细节,有些侧重理论,有些侧重代码,都是非常不错的了解微服务的文章。我们这个系列的文章的维度主要是实战落地,也就是我们在平常工作以及产品开发过程中,考虑为什么选择微服务架构风格,以及如何将微服务的架构风格落地到我们实际的一个大健康行业直销电商系统的...

2018-08-02 10:50:15 262

原创 DDD实战进阶第一波(十五):开发一般业务的大健康行业直销系统(总结篇)

DDD实战进阶第一波(十五):开发一般业务的大健康行业直销系统(总结篇)前面我们花了14篇的文章来给大家介绍经典DDD的概念、架构和实践。这篇文章我们来做一个完整的总结,另外生成一个Api接口文档。一.DDD解决传统的开发的几大问题:没有描述需求的设计模型;而是直接通过数据库表的方式体现,也就是需求与设计是脱节的。 编码的架构也没有与设计和需求对应起来。 业务逻辑与技术混在一起;业...

2018-08-02 10:49:58 323

原创 DDD实战进阶第一波(十四):开发一般业务的大健康行业直销系统(订单上下文应用服务用例与接口)

DDD实战进阶第一波(十四):开发一般业务的大健康行业直销系统(订单上下文应用服务用例与接口)上一篇文章我们主要讲了订单上下文的领域逻辑,在领域逻辑中完成了订单项的计算逻辑、订单的计算逻辑以及如何生成相应的实体code,这篇文章我们通过在应用服务中实现一个下单的用例,来将这些领域逻辑以及仓储整合起来,完成一个下单的用例。先看下单用例主体的代码: public class Create...

2018-08-02 10:49:33 154

原创 DDD实战进阶第一波(十三):开发一般业务的大健康行业直销系统(订单上下文领域逻辑)

DDD实战进阶第一波(十三):开发一般业务的大健康行业直销系统(订单上下文领域逻辑)前一篇文章主要讲了订单上下文的POCO模型,其中订单与订单项中有大量的值对象。这篇文章主要讲讲这些值对象以及订单项、订单相关的领域逻辑。1.ProductSKUs值对象领域逻辑:ProductSKUs值对象用于订单项实体中,它的信息应该来源于产品上下文的ProductSKU实体。public par...

2018-08-01 14:52:15 191

原创 DDD实战进阶第一波(十二):开发一般业务的大健康行业直销系统(订单上下文POCO模型)

DDD实战进阶第一波(十二):开发一般业务的大健康行业直销系统(订单上下文POCO模型)在本系列前面的文章中,我们主要讨论了产品上下文与经销商上下文相关的实现,大家对DDD的方法与架构已经有了初步的了解。但是在这两个界限上下文中,业务逻辑很简单,也没有用到更多的值对象的内容。从这篇文章开始,我们来讲讲订单界限上下文实现的内容,里面的业务逻辑相对复杂一些,而且有大量值对象的引入来进行逻辑的处...

2018-08-01 14:49:29 1008

原创 DDD实战进阶第一波(十一):开发一般业务的大健康行业直销系统(实现经销商代注册用例与登录令牌分发)

DDD实战进阶第一波(十一):开发一般业务的大健康行业直销系统(实现经销商代注册用例与登录令牌分发)前两篇文章主要实现了经销商代注册的仓储与领域逻辑、经销商登录的仓储与相关逻辑,这篇文章主要讲述经销商代注册的用例与经销商登录的查询功能。一.经销商代注册用例在经销商代注册用例中,我们需要传递经销商的基本注册信息,这个信息是做成了DTO对象。1.经销商注册的DTO对象: publ...

2018-08-01 14:43:46 143

原创 DDD实战进阶第一波(十):开发一般业务的大健康行业直销系统(实现经销商登录仓储与逻辑)

DDD实战进阶第一波(十):开发一般业务的大健康行业直销系统(实现经销商登录仓储与逻辑)上一篇文章主要讲了经销商注册的仓储和领域逻辑的实现,我们先把应用服务协调完成经销商注册这部分暂停一下,后面文章统一讲。这篇文章主要讲讲经销商登录的仓储和相关逻辑的实现。在现代应用程序前后端分离的实现中,通常不是将用户登录的信息存储在服务器端Session,因为会存在服务器Session无法传递的情况...

2018-08-01 14:41:28 289

原创 DDD实战进阶第一波(九):开发一般业务的大健康行业直销系统(实现经销商上下文仓储与领域逻辑)

DDD实战进阶第一波(九):开发一般业务的大健康行业直销系统(实现经销商上下文仓储与领域逻辑)上篇文章主要讲述了经销商上下文的需求与POCO对象,这篇文章主要讲述该界限上下文的仓储与领域逻辑的实现。关于界限上下文与EF Core数据访问上下文参考产品上下文相应的实现,这里不再累述。因为在经销商上下文中有两个聚合,一个是经销商聚合,一个是登录聚合,所以我们需要实现两个仓储接口:1.经...

2018-08-01 14:38:40 148

原创 DDD实战进阶第一波(八):开发一般业务的大健康行业直销系统(实现经销商上下文领域层之POCO模型)

DDD实战进阶第一波(八):开发一般业务的大健康行业直销系统(实现经销商上下文领域层之POCO模型)从这篇文章开始,我们开始介绍大健康行业直销系统领域层的实现。先简单讲下业务方面的需求:直销系统会有一个顶级的经销商,经销商的基本信息中包括经销商的名字、联系人(因为在平台购买产品后,会寄送给联系人)、总的电子币(电子币是由经销商支付产生,购买产品后会扣减电子币)、总的奖金币(系统周期性根据经...

2018-08-01 12:07:03 302

原创 DDD实战进阶第一波(七):开发一般业务的大健康行业直销系统(实现产品上下文接口与测试)

DDD实战进阶第一波(七):开发一般业务的大健康行业直销系统(实现产品上下文接口与测试)前一篇文章我们介绍了如何将创建产品的领域逻辑与产品的持久化仓储通过上架产品的用例组织起来,完成了一个功能。在实际的项目中,多种前端的形态比如PC Web、微信小程序、原生APP等要调用后端的功能,通常要将后端的功能包装成RESTFUL风格,这样前端就可以使用Http Get或Post方式调用后端的功能,所以...

2018-08-01 11:03:40 203

原创 DDD实战进阶第一波(六):开发一般业务的大健康行业直销系统(实现产品上下文仓储与应用服务层)

DDD实战进阶第一波(六):开发一般业务的大健康行业直销系统(实现产品上下文仓储与应用服务层)前一篇文章我们完成了产品上下文的领域层,我们已经有了关于产品方面的简单领域逻辑,我们接着来实现产品上下文关于仓储持久化与应用层的用例如何来协调领域逻辑与仓储持久化。首先大家需要明确的是,产品上下文的领域逻辑是系统的核心,它不应该依赖仓储,而仓储应该要依赖领域层,这样仓储才可以把领域逻辑执行完后,才...

2018-08-01 11:01:44 240

原创 DDD实战进阶第一波(五):开发一般业务的大健康行业直销系统(实现产品上下文领域层)

DDD实战进阶第一波(五):开发一般业务的大健康行业直销系统(实现产品上下文领域层)从这篇文章开始,我们根据前面的DDD理论与DDD框架的约束,正式进入直销系统案例的开发。本篇文章主要讲产品上下文中的领域层的主要实现,先简单讲下业务方面的需求:产品SPU与产品SKU,产品SPU主要是产品的名字和相关描述,产品SKU包括产品SPU的多个规格,每个规格有不同的价格与PV值。从我们对DDD概...

2018-08-01 10:58:48 312

原创 DDD实战进阶第一波(四):开发一般业务的大健康行业直销系统(搭建支持DDD的轻量级框架三)

DDD实战进阶第一波(四):开发一般业务的大健康行业直销系统(搭建支持DDD的轻量级框架三)上一篇文章我们讲了经典DDD架构对比传统三层架构的优势,以及经典DDD架构每一层的职责后,本篇文章将介绍基础结构层中支持DDD的轻量级框架的主要代码。这里需要说明的是,DDD轻量级框架能够体现DDD的思想即可,没必要做得很重,你也可以根据理解,自己实现支持DDD的框架。1.实体、聚合根与值对象的...

2018-08-01 10:56:10 214

原创 DDD实战进阶第一波(三):开发一般业务的大健康行业直销系统(搭建支持DDD的轻量级框架二)

DDD实战进阶第一波(三):开发一般业务的大健康行业直销系统(搭建支持DDD的轻量级框架二)了解了DDD的好处与基本的核心组件后,我们先不急着进入支持DDD思想的轻量级框架开发,也不急于直销系统需求分析和具体代码实现,我们还少一块,那就是经典DDD的架构,只有了解了经典DDD的架构,你才能知道具体在哪层要实现哪些功能,编写哪些代码,具体在开发DDD的轻量级框架与具体模块代码实现时,才能做到...

2018-05-02 12:13:29 506

原创 DDD实战进阶第一波(二):开发一般业务的大健康行业直销系统(搭建支持DDD的轻量级框架一)

要实现软件设计、软件开发在一个统一的思想、统一的节奏下进行,就应该有一个轻量级的框架对开发过程与代码编写做一定的约束。虽然DDD是一个软件开发的方法,而不是具体的技术或框架,但拥有一个轻量级的框架仍然是必要的,为了开发一个支持DDD的框架,首先需要理解DDD的基本概念和核心的组件。 一.什么是领域驱动设计(DDD) 首先要知道DDD是一种开发理念,核心是维护一个反应领域概念的模...

2018-04-07 10:46:34 341

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除