我首先想说的是,我并不想在我当前的设计中完成一个领域模型。
话虽如此,我目前正在构建一个如下所示的架构:
UI DTO <=> Service DTO <=> Business/Database DTO (using AutoMapper)
我一直在看Eric Evan 的 DDD 书,也看过Greg Young 的 DDD 项目失败的 7 个原因,害怕贫血模型。即使我没有规定 DDD,我也不想创建太多层,以致于来回映射非常相似的东西会变得很痛苦。
但是,我进行设置的全部原因有两个。易于更改和晦涩难懂
- 易于更改:如果我的公共对象通过我的服务公开,并且我在内部使用 UI 和业务对象,那么我可以在不破坏现有 API 的情况下更自由地进行更改。但是,如果 DTO 开始偏离,也许我可以使用一个 DTO 并重构?
- 模糊性:我可以公开我的公共对象,但如果它们是内部的,则不能公开我的完整对象及其实现。这将需要是一个安全的产品,所以我正在为此做准备。但是,也许我可以稍后再重构它?
所以,我的问题是:我当前的模型是否有意义,或者我稍后会提出问题?可以因为这些对象主要是 DTO 吗?即使在 Evan 的书中,他也暗示如果计划分布在不同的服务器上,这个模型是可以的吗?那么,仅出于这个原因,我的分层是否可行,因为我计划让 UI、服务和 DB 层能够位于不同的服务器上(由于当前不需要,它们目前还没有)?
我只是想了解过度架构,但同时试图避免架构不足.....那么,这个模型结构对我当前的实现是好还是坏?