领域驱动内容管理?

4

我在思考,当尝试在具有相当复杂业务逻辑的CMS应用程序上应用领域驱动设计时,应该注意什么?这些野兽不是彼此排斥的吗?

这篇文章可以说明我的意思。


我很好奇你可能得到的答案。 - Tomislav Nakic-Alfirevic
@TomislavNakic-Alfirevic 我自己花了一些时间才回答它。 - Arnis Lapsa
3个回答

2

这一切都与正确地解耦有关。

在按照 DDD 思想构建应用程序时使用 CMS 并不是互相排斥的。

CMS 只是另一种技术,另一种表达我们解决问题的解决方案的方式,与其他技术(如 Asp.Net Mvc、Ruby on Rails、编程语言甚至完全抽象的设计模式等)并没有太大区别。


1
需要记住的是...
DDD旨在处理复杂逻辑,因此开始阅读:
最佳实践、最佳实践和最佳实践
这是一篇很棒的文章(不要忘记查看DDD资源主题;))
而这个清单将为您提供一些代码(它是C#)。
难道这些野兽不是互相排斥的吗?
并不是。事实上,DDD与复杂领域逻辑之间存在着紧密的关系。当使用DDD时,你最终会使用许多模式,这些模式旨在寻找一种简单的方式来封装在领域中工作时所需的复杂逻辑,例如存储库、工厂、聚合等。
我知道你的意思。在阅读你提到的文章后,你发现一个CMS可以很容易地被看作是具有两个不同领域 - 内容和表现形式 - 的项目,这是一个很好的方法,事实上我很喜欢它。但是DDD模式仍然适用于它们 - 并且是为它们设计的:)。 我猜你是在谈论使用DDD来开发复杂的CMS。

更新:

我不再假定您在使用DDD开发复杂的CMS了。哈哈哈

我还无法想象如何将业务逻辑与基础架构解耦...

Arnis你好!又见面了!

没错,CMS是各种系统的首领。我想知道我们应该如何才能创建一个灵活且解耦的CMS系统,使其能够轻松地与其他系统集成?

关于数据:

- 数据合同,无论您将CMS与哪个系统集成。尽量减少对CMS领域模型的修改,而将精力集中在将其他系统数据源适配到您的CMS模型上。;) 有用的链接:

关于业务规则:

-临时业务规则,但不同的系统有不同的业务规则。您的CMS在这方面需要一定程度的灵活性。 有用的链接:

希望这些链接能为您的项目带来一些有用的想法; )


这个问题更多涉及内容管理部分。互斥是因为内容管理很少是自上而下手工制作的,而是依赖于像Web部件、第三方CMS框架和其他对所有应用程序层产生巨大影响的东西。我只是无法想象如何将业务逻辑与基础架构解耦...至少现在还做不到。 - Arnis Lapsa
啊...我的英语语言质量和思维故障又来了。抱歉。我有一种感觉我们还在谈论不同的话题。我稍后会尝试澄清问题。 :) - Arnis Lapsa

0
卫报发表了一篇关于他们应用DDD的演讲,这可能在内容丰富的领域中作为案例研究具有一定相关性。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接