首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >什么是域名?

什么是域名?
EN

Software Engineering用户
提问于 2017-10-23 17:56:55
回答 6查看 30.7K关注 0票数 118

我在软件体系结构(“领域-模型”、“领域驱动-设计”等)的上下文中看到了这个术语。我搜索过它,但是我得到了很多不同的定义。那到底是什么?

EN

回答 6

Software Engineering用户

回答已采纳

发布于 2017-10-23 20:11:29

由Evans编写的领域驱动设计书中的“域”一词有着特定的含义。这就是软件的意义所在。

不过埃文斯走得更远了。在他看来,即使使用相同的软件,也有子域。这是这本书中关于“战略设计”的部分。

有三个“域”:核心域、支持域和泛型域。有时他会把这些称为子域。

Evans还非常关心软件背后的实际业务,这本书不仅针对开发人员,也针对架构师和管理人员,他们需要了解软件和业务如何协同工作,这就是他在讨论战略设计和这些子领域时所关心的问题。

因此,核心领域是软件的一部分,它既代表了软件的竞争优势,又代表了软件的“存在理由”。这是软件的一部分,这就是为什么客户会购买软件而不是其他软件。通常,Evans将其视为包含最小代码百分比的域。你可以认为这是最重要的20%。这是你不能真正买到的部分,它可能只是一个模块或整体软件的组成部分。

支持领域仍然很重要,对组织来说是唯一的,但不像核心领域那么重要。没有它,软件就不会那么有价值,而核心也依赖于它。它可以是您自己编写的软件中的多个模块,并且对核心执行重要但支持的功能。

泛型域是最不定制的,在某种意义上也是软件中最不重要的部分。您可能已经写在内部,但它可能是更有效的购买它从货架上,或使用著名的开源软件。该系统的这一部分可能并不是特定于您的整个域,因此,例如,无论您有一个运送系统来运送包裹,还是有一个健康记录系统来管理病人,通用域是这些系统中常见的部分,只需要在那里运行即可。这可能占了整个系统的大部分,但不一定是这样。

从业务的角度来看,确定您的核心领域并将您的开发资源集中在那里是非常重要的。埃文斯有很多视频,特别是在InfoQ网站上,他在那里更详细地解释了这些概念。

因此,当我们经常在软件中谈论“域”时,对于DDD来说,它并不像看起来那么简单。

我应该指出,DDD的概念并不一定存在于更广泛的软件社区中。其他开发人员、作者和产品人员可能有不同的想法和定义,有些更微妙,有些更少。即使是写过DDD的其他作者也可能在Evans的书中掩盖这些概念,但我认为这些概念在编写和规划软件项目时仍然很有用。

票数 20
EN

Software Engineering用户

发布于 2017-10-23 18:06:07

域是您试图使用软件解决问题的真实环境。每个领域都有专门知识、词汇表和工具,这些都是该领域的一部分。

领域的一个具体例子可能是“使用高速旋转刀具实现复杂零件的自动加工”。实现这一目标的软硬件系统称为数控 碾磨机碾磨机

领域的另一个例子是公司的会计部门。

进一步阅读

马丁的有界上下文

票数 115
EN

Software Engineering用户

发布于 2017-10-23 18:02:42

它仅仅意味着你正在工作的问题空间。例如,如果您正在构建一个电子商务网站,您的域名将是“电子商务”,并将涉及与您的客户/公司的销售实践相关的过程。因此,域模型将表示产品、发票或发货记录。

票数 41
EN
页面原文内容由Software Engineering提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://softwareengineering.stackexchange.com/questions/359592

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档