






















接到一个需求后,熟悉完需求,我开始做的,一般就是设计数据库表。看需要新增哪些数据库表,每个表需要哪些字段,每个表的主键、索引,后面两个是我最近入职新公司学习的,这还是比较重要的。对后期性能影响比较大,尤其是索引。新公司要求代码检视的时候,每条数据库查询的sql都要有explain执行计划,不能全表扫描
最近在做需求的时候,公司主推DDD四层架构,开始是需求分析:梳理用户地图,有哪些角色、每个角色有哪些活动、每个活动有哪些任务,每个任务有哪些命令。然后是业务建模,识别有哪些领域对象
然后是技术建模,领域层domain、适配器层adapter:web,consumer等、应用层application、基础设施层infruscture
然后是数据库表设计
如果需要新增微服务模块等,还要分析新增微服务,模块
这和我之前一直用的mvc三层架构不一样,之前领导问我接到需求,设计方案的时候应该第一步先做什么?我直接说设计数据库表
问了下deepseek,mvc三层架构和ddd四层架构设计流程有什么区别
// Order.java (领域实体)
public class Order {
public void applyDiscount(Member member) {
if (member.isVip()) {
this.discount = new Discount(0.8); // 值对象
}
}
}
// OrderApplicationService.java (应用层仅编排)
public void createOrder(CreateOrderCommand cmd) {
Order order = new Order(cmd.getItems());
Member member = memberRepo.findById(cmd.getUserId());
order.applyDiscount(member); // 领域规则
order.calculateTotalPrice(); // 领域规则
orderRepo.save(order); // 基础实施
eventPublisher.publish(new OrderCreatedEvent(order));
}
所以领导问我设计方案第一步做什么,我直接说数据库,也是符合我的经历的,一直用的都是mvc三层架构。
mvc三层架构也是有优点的,简单,高效。四层架构,需要各种转,比如dto到entity转换,entity到po转换,各种防腐接口。虽然有mapstruct这些框架做转换,还有有一些实现成本在里面的
此内容由惯性聚合(RSS阅读器)自动聚合整理,仅供阅读参考。 原文来自 — 版权归原作者所有。