本系列文章

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

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

近年来,关于如何开发基于业务的软件系统与产品一直是软件行业的一个重要内容。对于架构师与软件开发人员来说,开发此类系统头痛的问题大概是以下几个方面:

1.如何将需求准确的转为软件的设计?

2.系统的架构与代码如何有效的体现我们的设计?

3.如何将领域逻辑与技术分离?

4.如何能够让团队人员的开发能够专注与业务,而不是技术本身?

5.如何交付高质量的软件,如何在出现问题时能够快速定位到代码?

6.如何快速响应需求的变更?

7.如何能够有一个框架或思想限定,让开发人员遵循一个约束,有节奏感的开发?

为了解决以上问题,软件行业提出了一个成熟的思想(或叫方法论):领域驱动设计(DDD)。通过DDD,我们能够很好的对需求应对到设计,能够让开发聚焦业务本身,能够让代码体现我们设计,

能够让团队在一个框架内有节奏的开发。

有些开发人员或架构师也许了解过DDD,但总时认为很难落地,本系列文章就是通过一个大健康行业的直销系统实战案例,让大家了解如何能够基于DDD的思想和框架,开发一个业务系统。

本系列文章将达到以下几个目的:

1.熟悉DDD基本概念。

2.基于DDD基本概念构建一个轻量级的框架。

3.基于DDD设计与开发一个实际的直销系统的后端。

4.能够举一反三,开发其他的业务系统或产品。

5.本系列文章不涉及高性能、大并发的系统开发。

本系列文章需要你具备的技术基础:

1.熟悉C#。

2.熟悉Asp.net 或Asp.net Core。

3.熟悉EF或EF Core。

4.有一定的系统开发经验。

本系列文章大体的内容安排:

1.直销系统概述。

2.DDD基本概念、开发支持DDD基本概念的轻量级框架。

3.开发直销系统的产品上下文。

4.开发直销系统的经销商上下文。

5.开发直销系统的订单上下文。

6.简单了解对前端的其他支持、前端的开发。

直销系统需求(裁剪后,便于大家理解DDD应用即可)概述:

一.产品管理

1.产品上架,产品分为主产品与多个子产品规格。

2.子产品用于经销商购买。

3.子产品有价格与相应的PV(PV用于经销商购买产品后累加,用于核算经销商奖金)。

二.经销商发展

1.子经销商由上级经销商介绍并注册。

2.根据注册时的电子币确定子经销商的会员级别。

3.被注册的子经销商属于一个介绍层级。

4.一个经销商最多介绍两个子经销商。

三.产品下单

1.经销商通过电子币购买产品。

2.确定邮寄地址。

3.其他功能与普通电商类似。

QQ讨论群:309287205

DDD实战进阶视频请关注微信公众号:

我的博客即将搬运同步至腾讯云+社区,邀请大家一同入驻:https://cloud.tencent.com/developer/support-plan?invite_code=2rpbe9xkuzggg

DDD实战进阶第一波(一):开发一般业务的大健康行业直销系统(概述)的更多相关文章

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

    要实现软件设计.软件开发在一个统一的思想.统一的节奏下进行,就应该有一个轻量级的框架对开发过程与代码编写做一定的约束. 虽然DDD是一个软件开发的方法,而不是具体的技术或框架,但拥有一个轻量级的框架仍 ...

  2. DDD实战进阶第一波(八):开发一般业务的大健康行业直销系统(业务逻辑条件判断最佳实践)

    这篇文章其实是大健康行业直销系统的番外篇,主要给大家讲讲如何在领域逻辑中,有效的处理业务逻辑条件判断的最佳实践问题. 大家都知道,聚合根.实体和值对象这些领域对象都自身处理自己的业务逻辑.在业务处理过 ...

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

    了解了DDD的好处与基本的核心组件后,我们先不急着进入支持DDD思想的轻量级框架开发,也不急于直销系统需求分析和具体代码实现,我们还少一块, 那就是经典DDD的架构,只有了解了经典DDD的架构,你才能 ...

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

    从这篇文章开始,我们根据前面的DDD理论与DDD框架的约束,正式进入直销系统案例的开发. 本篇文章主要讲产品上下文中的领域层的主要实现,先简单讲下业务方面的需求:产品SPU与产品SKU,产品SPU主要 ...

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

    前面我们花了14篇的文章来给大家介绍经典DDD的概念.架构和实践.这篇文章我们来做一个完整的总结,另外生成一个Api接口文档. 一.DDD解决传统的开发的几大问题: 没有描述需求的设计模型:而是直接通 ...

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

    前一篇文章我们完成了产品上下文的领域层,我们已经有了关于产品方面的简单领域逻辑,我们接着来实现产品上下文关于仓储持久化与应用层的用例如何来协调 领域逻辑与仓储持久化. 首先大家需要明确的是,产品上下文 ...

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

    在本系列前面的文章中,我们主要讨论了产品上下文与经销商上下文相关的实现,大家对DDD的方法与架构已经有了初步的了解. 但是在这两个界限上下文中,业务逻辑很简单,也没有用到更多的值对象的内容.从这篇文章 ...

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

    上一篇文章我们讲了经典DDD架构对比传统三层架构的优势,以及经典DDD架构每一层的职责后,本篇文章将介绍基础结构层中支持DDD的轻量级框架的主要代码. 这里需要说明的是,DDD轻量级框架能够体现DDD ...

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

    上篇文章主要讲述了经销商上下文的需求与POCO对象,这篇文章主要讲述该界限上下文的仓储与领域逻辑的实现. 关于界限上下文与EF Core数据访问上下文参考产品上下文相应的实现,这里不再累述. 因为在经 ...

随机推荐

  1. MyBatis sqlsession 简化 使用工具类创建

    2019-04-09 @Test public void Test() throws Exception { // 1.读取配置文件 String resource = "mybatis-c ...

  2. dos choice 命令

    dos choice 命令 choice /c YNC /m "Are you sure?" if %errorlevel%==1 goto Y if %errorlevel%== ...

  3. 洛谷.5300.[GXOI/GZOI2019]与或和(单调栈)

    LOJ BZOJ 洛谷 想了一个奇葩的单调栈,算的时候要在中间取\(\min\),感觉不靠谱不写了=-= 调了十分钟发现输出没取模=v= BZOJ好逗逼啊 题面连pdf都不挂了 哈哈哈哈 枚举每一位. ...

  4. nginx.conf 中php-ftp配置

    location ~ .php$ { root /home/www; fastcgi_pass 127.0.0.1:9000; fastcgi_index index.php; fastcgi_par ...

  5. ubuntu系统下matplotlib中文乱码问题

    参考 [ubuntu系统下matplotlib中文乱码问题 - CSDN博客](https://blog.csdn.net/jeff_liu_sky_/article/details/54023745 ...

  6. margin与padding的bug

    1.在页面布局时,值对于块元素来说,相邻的两个兄弟块元素间的margin-top与上一个兄弟的margin-bottom重合时, 解决办法:对其中一个块元素中设置    display:inline- ...

  7. esb和eai的区别

    话说SOA也推了很多年了,出现了比如ESB.SCA.jbi等各类技术和标准,乱的很.各类比较也说的云里雾里,在下理一理,按自己的观点说说. 先说说esb和eai的区别. 个人观点:esb就是eai+设 ...

  8. 关于阿里云Centos7 Mailx发送邮件失败的处理

    开始通过配置系统自带的mail 发送邮件 在其中一台服务器怎么都不行 /etc/mail.rc配置: set from="邮箱名" set smtp="smtp.163. ...

  9. 2019年我的OKR(objectives and key results)目标与关键成果法

     一.学习目标目标1:每天必背诵英语单词(可可英语App,百词斩App),掌握英语的基本从句语法,听力训练必备(英语四六级听力题,主要是为通过四六级考试)目标2:考研准备,高数(大一上下册),现代(大 ...

  10. R语言读取EXCEL文件的各种方法

    路径问题 原始文件路径C:\Users\air\Desktop\1.txt R中有两种方法读取该路径 C:\\Users\\air\\Desktop\\1.txt C:/Users/air/Deskt ...