|
|
|
这些天看了一遍《领域驱动设计》,有个地方不太明白,书中非常强调随着对应用需求的深入理解以及为适应需求变化,需要不断重构领域模型,领域模型是不断在完善了,但数据持久化方面呢?或者更直接的说,数据库的结构方面呢,是需要随着领域模型的变动而随之变动,还是基本不动,只是变动O/M部分,这样一来,是不是会造成领域层与数据层之间的不一致,这个不一致对于软件的维护会不会带来影响?
这是我看此书后最疑惑的地方,请各位大大帮忙释疑
|
|
|
|
|
|
re:看过《领域驱动设计》一书后的疑惑
|
2008年03月05日 19:20
|
|
|
|
数据这层你根本不用管,交给ORM去做。要改动也是改改配置文件,没有什么大动作。
|
|
|
|
|
|
re:看过《领域驱动设计》一书后的疑惑
|
2008年03月05日 23:19
|
|
|
似乎没那么简单吧,我觉个例子说明一下可能会更容易理解些。
比如:原来根据领域模型A、B类通过ORM工具自动生成了表TA、TB,现在领域模型有了变化,变成三个类C、D、E,这个C、D、E类与表TA、TB之间的关系就不那么协调一致了。
我想问的是,当遇到这样情况时,该怎么做?我想不会是简单改下Hibernate的配置文件就能实现的吧
|
|
|
|
|
|
re:看过《领域驱动设计》一书后的疑惑
|
2008年03月06日 13:56
|
|
|
|
|
|
|
|
|
re:看过《领域驱动设计》一书后的疑惑
|
2008年03月06日 15:06
|
|
|
这有何难,以前的TA TB是系统自动生成的。你现在没有了A,B当然要手工把TA ,TB删除了。ORM会根据你的C,D,E自动生成TC TD TE。就是说你不要去想手工建表,手工维护表关系。都丢给ORM去做。A,B改变到C,D,E那么以前的A.hbm.xml B.hbm.xml自然要删除,写C.hbm.xml D.hbm.xml E.hbm.xml,系统在初始时会扫描你的hbm.xml文件来生成新的表。都不关你事,你只要写好hbm.xml配置文件。 [该贴被goddie于2008-03-06 15:08修改过]
|
|
|
|
|
|
re:看过《领域驱动设计》一书后的疑惑
|
2008年03月07日 01:15
|
|
|
|
首先非常感谢goddie兄的回复,通过hbm.xml自动生成数据库表的方式在系统没有上线运行的情况下是可行的,但对于一个已上线运行的系统,数据的迁移怎么解决呢?
|
|
|
|
|
|
re:看过《领域驱动设计》一书后的疑惑
|
2008年03月13日 11:15
|
|
|
数据库和业务模型是两个不同的结构,不需要一一对应,所以你只要写一层Adaptor适配数据库和业务对象。 这也就是是说一个业务对象可能是一个表,也可能是多个表的组合,但是从业务上来讲,我们不需要关系数据库
|
|
|
|
|
|
回复:re:看过《领域驱动设计》一书后的疑惑
|
2008年04月01日 10:09
|
|
|
我现在也比较关心数据迁移的工作.在针对业务的变化可以将数据层的变化交给Mapping工具去做,而需要兼容现有系统的时候,问题就会比较多.我个人感觉还是需要DBA保证数据的安全. 但对于程序人员可以不考虑这部分.
有没有其他更好的思路?
|
|
|
|
|
|
re:看过《领域驱动设计》一书后的疑惑
|
2008年05月15日 22:21
|
|
|
|
对于领域建模中的仓储始终看不太明白,哪位看懂的能不能解释一下?万分感谢!
|
|
|
|