美文网首页
2.提炼问题域

2.提炼问题域

作者: 鸿雁长飞光不度 | 来源:发表于2022-07-24 23:44 被阅读0次

    DDD强调了对复杂领域要构造满足业务的业务模型,但是领域模型的创建需要我们具备对领域的理解,比如现在要做电商相关的业务开发,但是我以前对电商一点都不了解,这样的情况下不可能构建领域模型,下面就是一些积累领域知识的一些方法。

    1. 知识提炼与协作流程

    知识提炼是一个持续的过程,模型会随着系统迭代所而演化,好的模型能够保持传神的概念和专业术语,被开发人员和业务人员理解。

    知识提炼.png
    • 领域专家+开发团队:使用通用语言交流协作并达成共识,除了关注技术实现外,更应该关注业务领域,构建业务领域模型。
    • 业务人员:关注业务需求,关注输入和输出。

    2.提炼领域知识的方式

    • 多和领域专家进行交流。
    • 从案例开始,逐步理解业务流程。(比如下单、支付、退款)
    • 提出有力的问题,关注需求背后的业务目标。
      • 系统需求来自何处?
      • 系统如何为业务提供价值?
      • 不构建这个系统会发生什么?
    • 不用急于给系统概念命名,除非已经非常明确,前期可以用颜色区分。
    • 采用BDD(行为驱动开发),思考系统在场景下会产生的事件以及对应的输出,更加全面的了解系统。

    3.查看现有模型

    成熟的领域系统中往往已经遵循一个已知的模型,这个时候需要学习与业务领域更多的信息。

    • 理解需求意图

      业务方通常基于当前系统约束提需求,而并非他们真正想要的,要理解隐含的愿景和业务目标

    • 事件风暴

    开发团队、业务人员、领域专家一起把业务中的词汇都列出来,写在白板上,分别阐述对这个词汇的理解,同时包括各种动作、状态、事件。事件风暴有利于是丰富通用语言的关键流程,这样大家可以业务术语达成共识,后续在专注核心子域的地方也会进一步介绍。

    • 理解达成业务目标的影响范围

    比如业务需求希望提高百分20%的销量,开发人员、业务人员都会重新审视当前系统,比如推荐策略、营销活动、系统性能,在这个过程中,这样也会加深对当前系统存在的模型的理解。

    • 理解业务

    理解当前业务中的客户渠道、业务模式、成本结构、盈利模式。

    • 有针对性学习其他已知的系统

    这个很普遍,自己的所开发的系统市场上有很多成熟的解决方案和设计,可以多了解他们的系统架构和模式。

    相关文章

      网友评论

          本文标题:2.提炼问题域

          本文链接:https://www.haomeiwen.com/subject/csgwirtx.html