我们的团队对于域驱动设计来说相当新。我们有一个刚刚从设计阶段进入编码阶段的新项目。在设计阶段,一些团队成员在Visio中创建了UML设计模型,而其他人则刚刚开始编码。此外,由于构建版本的压力,我们的许多模型正在迅速过时。
让对象模型保持最新是否很重要?将它们用于所有/大多数子系统是否重要?
答案 0 :(得分:4)
您的代码(和模型)的最佳文档是代码和数据库架构。在代码之外开发模型可以在理解问题方面具有一定的价值,但正如您最终发现的那样,这些成为一种负担。如果您打算使用它们,您需要花时间让它们保持最新状态。一个敏捷的哲学会说,只有投入尽可能多的时间来维护这些,因为你从中获得了价值。一般来说,这并不多,因为代码无论如何都是最终的权威。如果您有监管要求,则可能是一个不同的情况,但我通常会在模型转换为代码后丢弃该模型,并根据需要直接从代码/模式重新生成模型,如果您需要一个文档来描述它。
答案 1 :(得分:1)
我想答案是“它取决于”,不是吗?
如果项目规模小,变化快,等等,模型的投资回报率可能非常糟糕,最重要的是工作代码。
另一方面,对于具有高度仪式,不断变化的开发团队等的多年期多阶段项目,您将从某种文档中获益良多。对象模型可以是一个这样的文档。
毕竟没有银弹,因此,根据您的项目所在的规模的哪一端,您可能会发现这些模型非常有价值或维护费用很高。
答案 2 :(得分:0)
拥有任何类型的文档的目的是帮助开发,而不是阻止它。开发人员知道模型是什么,以及代码中的内容与记录内容之间的主要区别。
但是,你应该知道你没有任何材料(代码本身除外)对团队中的新雇员说出来,并且教会新人需要一些时间。
所以这是决定什么是最有效的问题。如果保持模型过时会使团队更快,请不要更新模型。如果更新模型会在一定程度上改善开发,那么你应该这样做(无论多么无聊)
答案 3 :(得分:0)
User Story级以下的任何文档都与实现细节直接相关,因此也与易变事实(Why vs. How)直接相关。因此,它(如何,模型)不应该手动维护,而是在需要时为了开发人员通信的改进而生成。
在任何时候维护文档都很棒。如果您无法保证,请查看源代码文档(并在更改代码时进行维护)并根据需要从代码中生成尽可能多的UML, 在您需要时 。
然后再次抛弃生成的文档。它只是帮助您更好地与开发人员沟通。它没有其他价值。
今天刚开始:开发人员用一张漂亮的Visio图表向我走来,在纸上打印出来,看起来非常好看。我打开了IDE并向他展示了源代码与他手中的文档略有不同。花了我一些时间来说明代码胜过文档。总是