• 领域驱动设计的价值


    领域驱动设计是软件开发人员用来简化连接不断发展的模型和实现过程所涉及的复杂过程的一种方法。许多软件开发人员面临着必须在业务领域的技术词汇和开发人员的复杂词汇之间取得平衡的任务。这种情况所涉及的二元性是不可避免的,因此,开发人员有责任努力解决它。开发人员的工作必须在计算、算法等方面进行构建。这意味着它们几乎与业务词汇没有任何等效性。因此,这为开发人员采用解决这些困难的语言策略提供了空间。开发人员不能跳入一个项目并开始编码过程、构建软件等等。DDD首先帮助开发人员了解客户的需求。这意味着构建软件或应用程序的最终目的是解决问题而不是编写代码。

    组织获得域的可用模型

    使用 DDD 是为了确保您的所有努力都针对与业务相关的每个细节。因此,您无需对产品进行过度建模。因此,开发人员关注核心领域是有好处的。存在许多支持核心领域的模型,它们都很重要。但是额外的模型不能像在核心域中那样被给予高优先级。始终专注于使您的业务与竞争对手不同的地方。DDD 使您可以轻松了解业务的使命并找到正确的路径。

    它创建了对业务的精确定义和理解

    有了 DDD,企业就有机会更好地了解其活动和使命。曾经发生过将用于开发业务核心领域的无处不在的语言用于营销的事件。这是适当的,因为 DDD 应该嵌入到愿景和使命陈述中。随着 DDD 模型随着时间的推移不断完善,业务得到更深入的理解,可以将其用作分析工具。每个领域专家都会为您提供不同的细节,这些细节可以由技术团队成员塑造。考虑到这些细节后,您的企业可以轻松分析当前方向的价值以及它将如何影响企业的未来。

    DDD专家帮助软件设计

    当管理层对核心领域有更好的理解时,企业就会获得价值。领域专家很少就业务术语和概念达成一致。在其他情况下,业务和领域专家经验之间的差异是由其他领域的不同经验造成的。这可能是因为在同一业务中工作的每个专家所期望的路径不同。当你带来 DDD 时,领域专家之间就有可能达成共识。软件开发人员现在拥有一种通用语言,可以将团队与领域专家统一起来。当开发人员掌握其他专家在他们之间共享的信息时,他们会获得更多收益。当开发人员从一个核心领域转移到另一个核心领域或另一个组织时,对他们进行培训很容易。

    改进的用户体验

    在许多情况下,可以调整软件或应用程序的最终用户体验来描述域模型。域驱动通常用于影响人类如何使用软件。当开发人员为他们的用户提供如此多的理解空间时,可能需要对用户进行一些培训才能做出很多决定。这意味着用户正在将他们头脑中的信息记录到他们填写的表格上。然后保存收集的数据,如果用户不明白需要什么,将收集不准确的数据,因为它只是猜测工作。这意味着生产力将很低,只有当用户可以学习如何使用特定软件时,这种情况才会改变。当开发者按照核心模型的路径设计用户体验时,会引导用户给出准确的结论。

    根据模型创建清晰的边界

    不允许开发团队做可能会吸引他们的工作和设计兴趣的事情。他们不应该根据业务核心模型的优势来调整他们的产品期望。有了纯粹的方向,开发人员可以完全专注于所提供的解决方案的成功。这可以通过将努力引导到最需要它的部门来实现。当一个领域专家团队理解这一点时,它可以等同于理解他们正在从事的项目的确切上下文。

    更好地组织企业架构

    当有界上下文被充分理解和很好地划分时,业务中的所有团队成员都会更好地理解为什么进行谈判很重要。团队之间的这些界限大多是明确的,甚至延伸到他们的关系中。拥有基于共享使用模型的团队使用上下文地图来创建正式的关系和集成它们的方法。这可以导致对整个架构的非常详细的了解。

    DDD 为迭代、敏捷和持续建模提供了空间

    当提到设计这个词时,它会在业务经理的脑海中产生一些消极的想法。但是,DDD 并不是一个如此显着的现象。它没有任何令人难以置信的设计和开发设计。DDD 不是基于绘制图像;它主要涉及领域专家概念模型的过程。这些概念可以创建为现实世界的例子,因为它们看起来像现实生活中的事件。这样一个团队的努力需要遵循一个可行的方法,即增量和迭代。用于创建 DDD 的流程的敏捷性可以使团队感到舒适并使项目成功。生成的模型可以是工作软件,它将经过多次改进,直到不再对业务有利。

    它可以作为战略和战术执行的工具

    有界上下文的存在为团队提供了必要的建模边界,可用于解决领域中的特定业务问题。单个有界上下文使用团队开发的无处不在的语言。这种语言的唯一交流方式是通过软件模型。

    结论

    现在您已经了解了领域驱动设计的伟大之处,它充分说明了它对软件开发的影响。总之,设计驱动的领域方法将重点从方法、项目管理工具转移到正在开发的软件的核心领域以及与参与相关的领域。

  • 相关阅读:
    mssql sqlserver 从指定字符串中获取数字的方法
    SpringBoot整合junit
    SpringBoot之RESTful风格
    SpringBoot属性配置
    SpringBoot 基于web应用开发(请求参数获取,静态资源,webjars)
    Spring Boot入门及第一个案例
    解决Zabbix网页端Get value error: cannot connect to [[192.168.238.139]:10050]: [113] No route to host问题
    Linux配置本地yum源
    ELK安装redis 执行make命令时报错解决方法
    CentOS 7 配置网络连接
  • 原文地址:https://www.cnblogs.com/BlogNetSpace/p/15673342.html
Copyright © 2020-2023  润新知