导航

摘要: 前面2篇DDD入门之理解面向对象(一), DDD入门之解决了什么问题(二) 已经说明了为什么要使用DDD,现在来看一个具体的例子: 明确需求 业务需求 假设我们要实现一个商品中心这个核心领域。要求如下: 商品包含一个或多个明细。一个明细也可以被包含在多个商品里。明细有三种:在线课程、实体书、线下服务 阅读全文

posted @ 2020-08-16 18:33 ahau10 阅读(4577) 评论(0) 推荐(0) 编辑

2020年8月19日

摘要: docker安装rabbitmq sudo docker pull rabbitmq:3.7.27-management 启动服务 sudo docker run -d -p 5672:5672 -p 15672:15672 --hostname myRabbit -e RABBITMQ_DEFAU 阅读全文

posted @ 2020-08-19 11:55 ahau10 阅读(234) 评论(0) 推荐(0) 编辑

2020年8月18日

摘要: 润色一下 记录sql语句及sql的执行时间 <properties> <p6spy.version>3.9.0</p6spy.version> </properties> <dependency> <groupId>p6spy</groupId> <artifactId>p6spy</artifac 阅读全文

posted @ 2020-08-18 17:47 ahau10 阅读(1759) 评论(0) 推荐(1) 编辑

摘要: 实现功能 篇幅所限,我们以创建商品、上下架商品 这两个功能为例: domain 我们已经有了一个创建商品的工厂方法of,但是里面没有业务逻辑,现在来补充业务逻辑。 of方法了参数太多了,我们把它放在Command类里。 Command不属于领域对象,应该放在哪个包下面呢?放在application包 阅读全文

posted @ 2020-08-18 17:45 ahau10 阅读(2861) 评论(9) 推荐(0) 编辑

摘要: 优化Entity,类型改为值对象 前面我们已经定义了2个聚合根,定义了2个聚合根之间的关系,并且自动生成了表结构。 在实现具体的业务前,优化一下我们的Entity。 @Column(name = "product_no", length = 32, nullable = false, unique 阅读全文

posted @ 2020-08-18 15:18 ahau10 阅读(1915) 评论(0) 推荐(0) 编辑

2020年8月17日

摘要: 构建多对多关系 上一篇我们有了Product这个聚合根。前面已经分析过,一个商品可以包含一个或多个课程明细。课程明细可以单独编辑,有自己的生命周期,课程明细也是一个聚合根。 在domain.model包下创建 courseitem.CourseItem类,内容如下: @Entity @Getter 阅读全文

posted @ 2020-08-17 16:53 ahau10 阅读(2591) 评论(2) 推荐(2) 编辑

摘要: 从聚合根开始 上一篇已经把业务需求描述清楚了,现在我们来实现它。 环境 JDK1.8+ Maven3.5+ Mysql8.0 Intellij Idea lombok 插件(注意安装插件要给Idea配置代理,否则装不上) 新建Spring Boot工程 start.spring.io新建一个prod 阅读全文

posted @ 2020-08-17 15:57 ahau10 阅读(3475) 评论(2) 推荐(2) 编辑

2020年8月16日

摘要: DDD(领域驱动设计)的概念出来已经很多年了。虽然国内好像用的比较少,令人欣慰的是很多人已经听说过这个东西了,工作中也经常听到领域这个词。 DDD是个啥?它解决了什么问题? 第一个问题不好回答,先回答第二个。第二个问题讲清楚了,第一个问题的答案也就呼之欲出了。即DDD是解决第二个问题的一种手段/方法 阅读全文

posted @ 2020-08-16 16:07 ahau10 阅读(2415) 评论(0) 推荐(0) 编辑

2020年8月9日

摘要: 面向对象编程的误解 我觉得大多数程序员都理解错了。这里的大多数不限于Java程序员,而是指使用面向对象编程语言的大多数程序员。本人就是其中一个。 最根本的原因在于,我们把面向对象里的“对象”理解错了,我们理解成了语法层面的对象。所以我们的代码才会出现所谓的贫血模型。 面向对象编程里的“对象”是什么? 阅读全文

posted @ 2020-08-09 00:34 ahau10 阅读(1345) 评论(0) 推荐(1) 编辑

2020年8月8日

摘要: 以Dell Vostro5370 为例,其它笔记本也适用。 注意: 1. 这款笔记本只有一个m.2槽位。换SSD需要重装系统。 2. 这款笔记本最大只支持512GB!最大只支持512GB!最大只支持512GB! 3. 重装系统前需设置BIOS>>System Configuration>>SATA 阅读全文

posted @ 2020-08-08 03:29 ahau10 阅读(4443) 评论(0) 推荐(0) 编辑