DDD实战进阶第一波(一):开发一般业务的大健康行业直销系统(概述)
本系列文章
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实战进阶第一波(一):开发一般业务的大健康行业直销系统(概述)的更多相关文章
- DDD实战进阶第一波(二):开发一般业务的大健康行业直销系统(搭建支持DDD的轻量级框架一)
要实现软件设计.软件开发在一个统一的思想.统一的节奏下进行,就应该有一个轻量级的框架对开发过程与代码编写做一定的约束. 虽然DDD是一个软件开发的方法,而不是具体的技术或框架,但拥有一个轻量级的框架仍 ...
- DDD实战进阶第一波(八):开发一般业务的大健康行业直销系统(业务逻辑条件判断最佳实践)
这篇文章其实是大健康行业直销系统的番外篇,主要给大家讲讲如何在领域逻辑中,有效的处理业务逻辑条件判断的最佳实践问题. 大家都知道,聚合根.实体和值对象这些领域对象都自身处理自己的业务逻辑.在业务处理过 ...
- DDD实战进阶第一波(三):开发一般业务的大健康行业直销系统(搭建支持DDD的轻量级框架二)
了解了DDD的好处与基本的核心组件后,我们先不急着进入支持DDD思想的轻量级框架开发,也不急于直销系统需求分析和具体代码实现,我们还少一块, 那就是经典DDD的架构,只有了解了经典DDD的架构,你才能 ...
- DDD实战进阶第一波(五):开发一般业务的大健康行业直销系统(实现产品上下文领域层)
从这篇文章开始,我们根据前面的DDD理论与DDD框架的约束,正式进入直销系统案例的开发. 本篇文章主要讲产品上下文中的领域层的主要实现,先简单讲下业务方面的需求:产品SPU与产品SKU,产品SPU主要 ...
- DDD实战进阶第一波(十五):开发一般业务的大健康行业直销系统(总结篇)
前面我们花了14篇的文章来给大家介绍经典DDD的概念.架构和实践.这篇文章我们来做一个完整的总结,另外生成一个Api接口文档. 一.DDD解决传统的开发的几大问题: 没有描述需求的设计模型:而是直接通 ...
- DDD实战进阶第一波(六):开发一般业务的大健康行业直销系统(实现产品上下文仓储与应用服务层)
前一篇文章我们完成了产品上下文的领域层,我们已经有了关于产品方面的简单领域逻辑,我们接着来实现产品上下文关于仓储持久化与应用层的用例如何来协调 领域逻辑与仓储持久化. 首先大家需要明确的是,产品上下文 ...
- DDD实战进阶第一波(十二):开发一般业务的大健康行业直销系统(订单上下文POCO模型)
在本系列前面的文章中,我们主要讨论了产品上下文与经销商上下文相关的实现,大家对DDD的方法与架构已经有了初步的了解. 但是在这两个界限上下文中,业务逻辑很简单,也没有用到更多的值对象的内容.从这篇文章 ...
- DDD实战进阶第一波(四):开发一般业务的大健康行业直销系统(搭建支持DDD的轻量级框架三)
上一篇文章我们讲了经典DDD架构对比传统三层架构的优势,以及经典DDD架构每一层的职责后,本篇文章将介绍基础结构层中支持DDD的轻量级框架的主要代码. 这里需要说明的是,DDD轻量级框架能够体现DDD ...
- DDD实战进阶第一波(九):开发一般业务的大健康行业直销系统(实现经销商上下文仓储与领域逻辑)
上篇文章主要讲述了经销商上下文的需求与POCO对象,这篇文章主要讲述该界限上下文的仓储与领域逻辑的实现. 关于界限上下文与EF Core数据访问上下文参考产品上下文相应的实现,这里不再累述. 因为在经 ...
随机推荐
- ios6和ios5横竖屏切换
记录于2013/8/5 在切换横竖屏的时候调用到的一些委托方法: #pragma mark - UIApplicationDelegate //写在Appdelegate中,在具体的某一视图控制器 ...
- VUE2+elementUI前端实现 三级省市联动select
html: <el-form-item label="选择地区:"> <el-select size="small" style=" ...
- react 的进阶
一 react 中table报错 validateDOMNesting(...): <tr> cannot appear as a child of <table>. See ...
- Tomcat6,7,8的日志切割
使用的日志切割工具cronolog(yum就可以了) 确定好路径后,开始配置 Tomcat6 Tomcat6/bin/catalina.sh 292-317行(修改两处) 修改之后为下面的内容 # t ...
- vue 源码学习二 实例初始化和挂载过程
vue 入口 从vue的构建过程可以知道,web环境下,入口文件在 src/platforms/web/entry-runtime-with-compiler.js(以Runtime + Compil ...
- 20175324 《Java程序设计》第七周学习总结
教材学习内容总结 常用实用类 String类 - 程序可以直接使用String类,但不能进行扩展,即String类不可以有子类 - 常用构造方法 - String(char a[])用一个字符数组a创 ...
- conda 查看已有环境
conda info -e # conda environments: # dlcv /Users/enzhao/suanec/libs/anaconda2/envs/dlcv py36 /Users ...
- 关于css中为什么要设置html和body的高度?
1.在怪异模式下,也就是网页的头部不写DOCTYPE的时候,body作为根元素,设置高度为百分百的时候.可以是页面的高度和浏览高度相同,在标准模式下也就是有DOCTYPE的时候,html才是根元素这时 ...
- 封装一个 员工类 使用preparedStatement 查询数据 (2) 使用 arrayList 集合
创建 员工=类生成 有参构造 get set 方法 toString 方法 package cn.hph; public class emp1 { //创建员工类的属性 private int id; ...
- 2018申请淘宝客AppKey
1.www.alimama.com 申请账号进入后2.进入我的联盟,按下面的步骤 完成以后等待网站审核. 3.审核完成后 按以下的图,申请进入开放平台或得appkey 4.最后就可以进入开放平台申请看 ...