领域建模(Domain modelling )作为一项强大的技术,常备于很多IT专业人士的工具箱之中。令人遗憾的是,在过去的几年间,因为领域建模的几个问题导致人们对其大失所望,尤其是在敏捷领域。这种方式的两个切实存在的问题就是:它会消耗太长的时间并且很易于导致“分析瘫痪(analysis paralysis”),而这会导致停滞(“spinning wheels”)。我们为领域建模提供了一种方式,可以用来解决这些问题。
我们会讨论领域模型中的一些信号,这些信号会告诉你要提出更多的问题。我们将这些信号称之为“坏味道信息(information smells)”,它们会提醒我们可能并没有完全理解领域模型所关注的信息。这些坏味道可能意味着我们在领域模型中丢失了信息或者领域模型中包含了不正确的信息。关注于坏味道信息会引导我们发现需要回答的问题,这是一个很快的过程。当所有的坏味道都消失掉或者能够确认剩余的都是可接受的,我们就会停止,这会避免分析瘫痪。
这个过程开始于系统的输出,这些输出会为用户交付价值。我们在本文中不会阐述如何寻找这个价值。接下来,我们基于输出来处理模型中的这些坏味道信息。
为了阐述本文中的信息坏味道,我们会使用一个虚拟的例子,这个例子来源于多个现实生活中的场景。我们的人力资源主管想了解各种开发人员的薪酬是如何支付的,这样他们就能避免在不同群体间进行不公正的支付所导致的法律纠纷。
在随后进行的讨论中,团队试图理解主管的要求时,产生了如下的草图:

我们会讨论领域模型中的一些信号,这些信号会告诉你要提出更多的问题。我们将这些信号称之为“坏味道信息(information smells)”,它们会提醒我们可能并没有完全理解领域模型所关注的信息。这些坏味道可能意味着我们在领域模型中丢失了信息或者领域模型中包含了不正确的信息。关注于坏味道信息会引导我们发现需要回答的问题,这是一个很快的过程。当所有的坏味道都消失掉或者能够确认剩余的都是可接受的,我们就会停止,这会避免分析瘫痪。
这个过程开始于系统的输出,这些输出会为用户交付价值。我们在本文中不会阐述如何寻找这个价值。接下来,我们基于输出来处理模型中的这些坏味道信息。
为了阐述本文中的信息坏味道,我们会使用一个虚拟的例子,这个例子来源于多个现实生活中的场景。我们的人力资源主管想了解各种开发人员的薪酬是如何支付的,这样他们就能避免在不同群体间进行不公正的支付所导致的法律纠纷。
在随后进行的讨论中,团队试图理解主管的要求时,产生了如下的草图:
