DDD,反腐败层,如何做?

2024-01-07

目前,我们必须构建一个基于遗留应用程序的应用程序。旧应用程序的代码应该被丢弃并重写,但正如通常情况一样,我们需要在其基础上创建新的东西,而不是重写它。最近,我们决定走领域驱动设计之路。因此,反腐败层可以解决我们的问题。据我了解,这样应该可以逐步重写旧的应用程序。

但是——我找不到任何好的例子。我将不胜感激ANY信息。


From the DDD 书(领域驱动设计:解决软件核心的复杂性) https://rads.stackoverflow.com/amzn/click/com/0321125215作者:埃里克·埃文斯:

的公共接口 通常会出现 ANTICORRUPTION LAYER 作为一组服务,尽管 有时它可以采取以下形式 一个实体。

稍后

组织设计的一种方法 防腐蚀层作为 FACADES、ADAPTERS 的组合(两者 来自伽玛等人。 1995),以及 译者们,连同 通讯和传输机制 通常需要相互交谈 系统。

因此,您可以通过查看建议来找到示例适配器模式 http://en.wikipedia.org/wiki/Adapter_pattern and 立面图案 http://en.wikipedia.org/wiki/Facade_pattern.

我将尝试解释埃里克·埃文斯(Eric Evans)所说的话,您的反腐败层将作为服务出现在您的层外部。因此,在反腐败层之外,其他层将不知道他们正在与反腐败层“交谈”。在该层内部,您将使用适配器和外观来包装遗留信息源。

有关反腐败层的更多信息:

  • 反腐败层剖析,第 1 部分 http://moffdub.wordpress.com/2008/09/21/anatomy-of-an-anti-corruption-layer-part-1/
  • 建立经常需要的反腐败层 http://lostechies.com/joeybeninghove/2007/09/10/building-the-often-needed-anti-corruption-layer/
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

DDD,反腐败层,如何做? 的相关文章

  • Android应用程序架构——MVVM还是MVC?

    我有一个正在开始处理的 android 项目 我希望它的结构尽可能健壮 我有 WPF MVVM 背景 并且阅读了一些有关 Android 应用程序架构的内容 但我找不到关于我应该使用哪种架构的直接明确的答案 有些人建议使用 MVVM htt
  • Android上如何实现app子组件的模块化结构?

    我的 Android 主应用程序将包含一个主程序 以及一些预安装的模块 然后我想稍后提供不同的模块 最好作为单独的文件 模块如 位置 天气 议程 你将如何实现这一目标 我想将已安装 存在的模块保留在数据库中 因此 有时我必须将模块放入数据库
  • 如何定义分层数据结构的DDD聚合根?

    我目前正在尝试将领域驱动设计原则应用于我的开发实践 我一直致力于如何为按层次结构组织的数据定义聚合根 我们以文件夹结构为例 每个文件夹可以有 0 N 个子文件夹 子文件夹 0 N 也可以有 0 N 个子文件夹 依此类推 我对文件夹及其所有直
  • Azure CDN 规则引擎添加默认文档(站点请求的文件除外)

    我正在使用 Azure Verizon CDN 从 Blob 存储发布我的 Web 应用程序 SPA 我已成功设置自定义域和 SSL 我在 CDN 中添加了重写规则以重定向到默认文档 index html 基本上 这会获取传入请求并在 UR
  • 如何快速了解 SOA? [关闭]

    就目前情况而言 这个问题不太适合我们的问答形式 我们希望答案得到事实 参考资料或专业知识的支持 但这个问题可能会引发辩论 争论 民意调查或扩展讨论 如果您觉得这个问题可以改进并可能重新开放 访问帮助中心 help reopen questi
  • 使用heroku上传文件

    据我所理解heroku http heroku com不允许存储单个 Rails 应用程序的上传文件 在他们的文档中 他们提到文件可以上传到亚马逊S3 http aws amazon com s3 实例 我目前没有 S3 帐户 因此假设我只
  • 架构:API 作为网站和移动应用程序的核心

    我对完整的架构理念有不同的问题 我希望有丰富经验的人可以帮助我 因为我几乎陷入了所有可能性之中 我正计划重写一个社区网站 我们的客户希望将来使用本机移动应用程序 所以我需要考虑到这一点 因此 我决定创建一个基于 PHP 框架 Kohana
  • 在自己的目录中安装 WordPress 但永久链接失败

    我在 EC2 上安装了 WordPress 位于 var www html wordpress 我按照 WordPress 指南将 index php 和 htaccess 复制到根目录 即 var www html 并修改了index p
  • 多个App服务使用同一个域名

    我们有一个场景 我们有多个 azure 应用程序服务 并且部署了 Web API 但是我们需要所有应用程序服务使用相同的域名 而不是子域 例如http example com api1 http example com api1在一个应用程
  • 首先是 DDD 数据库。如何处理聚合

    我正在尝试学习 DDD 的概念 我做了一个项目 我使用数据库优先方法 在基础设施中 我添加了一个 edmx 文件 我选择自动生成实体 现在在 域 中我正在尝试创建聚合 但在这里我遇到了一些问题 我正在尝试创建一个名为 User 的聚合 但
  • 在大型 C++ 遗留应用程序中查找“死代码”[关闭]

    Closed 这个问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 我目前正在开发一个大型且古老的 C 应用程序 在我之前已有许多开发人员 项目中有很多 死代码 类和函数
  • 存储徽章标准的最佳方式?

    我一直在考虑如何在新网站上实现类似于SO的徽章功能 存储徽章标准的最佳方式是什么 两个想法 All code 第二系统 创建一个元架构来定义徽章及其标准 在数据库中存储一些信息 并让代码查询它以找出徽章及其标准 还有更好的方法吗 Rules
  • 哪种语言(在 JVM 上运行)最适合创建 DSL?

    我们需要创建复杂的固定长度和可变长度字符串 这些字符串可能代表客户资料 订单等 你们建议使用哪种基于 JVM 的编程语言 想法是让最终用户使用此 DSL 创建字符串 所以我正在寻找验证 代码完成等 Groovy http docs code
  • Routes.rb vsrack-rewrite vs nginx/apache 重写规则

    我的应用程序的前一个版本中的遗留 URL 有数十条重写规则 我看到三个选择 只需在路由文件 config routes rb 中添加 匹配 行 Use 机架重写 https github com jtrupiano rack rewrite
  • MVP 和 GWT 小部件之间的通信

    如果我将 MVP 模式与 GWT 结合使用 如 2009 年 Google I O 中的 GWT 架构最佳实践讨论 但已将信息分散到多个小部件中 那么应该如何填充值对象 假设我有一个 EditPersonView Presenter 一个
  • 使用多个提供程序的客户端应用程序应使用什么设计/模式?

    这是一个与设计相关的问题 假设我们有一个名为 ClientAPI 的公共 API 其中包含一些 Web 方法 例如 CreateAccount GetAccount 根据客户的不同 我们使用许多不同的提供商来满足这些请求 假设我们有 Pro
  • 使用 JPA 实体作为域模型是一个好习惯吗?

    或者创建一个由域模型组成的域层并与 JPA 实体对话以进行数据库访问 两种方法的优缺点是什么 谢谢 这确实取决于您对域进行编码的方式 一般来说 在 Java 中 我更喜欢创建一组单独的 JPA 注释的 DTO 来处理持久性 此类 DTO 将
  • 重写后.htaccess图像不显示

    我有一个问题 URL 已被这样重写 RewriteEngine on RewriteCond REQUEST URI index php RewriteRule index php test 1 NC L 我的图像和 CSS 样式都没有被应
  • 托管扩展性框架 (MEF) 与复合 UI 应用程序块 (CAB)

    我们目前正在考虑在下一个应用程序中使用 CAB 或 MEF 我没有在 Codeplex 上看到任何有关如何处理同级控制通信的事件代理的示例 也许我错过了 MEF 中的控制间通信如何工作 此外 我们计划使用 Infragistics 它为 C
  • 在 DDD 中,表示层可以同时使用 Repository 和 Service 类吗?

    如果表示层只应该使用服务 那么服务类必须公开存储库已实现的相同方法 以使它们可供表示层使用 这似乎是错误的 有人可以帮我澄清一下吗 我敢打赌 这似乎是错误的 因为您实际上并不需要这种抽象级别 应用服务有facades http en wik

随机推荐

  • 使用 JSch 跳过 Kerberos 身份验证提示 [重复]

    这个问题在这里已经有答案了 我正在使用Connect 方法中的Ssh下面的 Java 类用于使用 SSH JSch 连接到服务器并在服务器中运行命令 问题是运行时Connect 服务器提示以下消息 Kerberos username Ker
  • clojure 中惯用的文件锁定?

    我有一组来自队列的 future 处理作业 涉及写入文件 确保一次只有一个未来访问特定文件的惯用方法是什么 使用代理而不是锁来确保这一点怎么样 我认为使用代理来保护共享的可变状态 无论它是在内存中还是在磁盘上 在 clojure 中比使用锁
  • 活动标题语言有问题

    我的应用程序中有两种语言 值 strings xml and 值 ru strings xml当我以编程方式更改语言时 所有字符串都会翻译 但活动标题不变 我在所有活动中使用 SharedPreferences prefs Preferen
  • 如何对列表使用二分查找

    让我们从 List BinarySearch 的重载开始 public int BinarySearch T item IComparer
  • 无法在 Android 中导入 com.google.cloud.speech.v1.SpeechGrpc

    我正在尝试使用谷歌的语音API https github com GoogleCloudPlatform android docs samples tree master speech Speech在Android项目中 示例项目有效 我在
  • Kendo Grid:工具栏模板问题

    我有一个列出道路信息的网格 并且需要一个工具栏模板 该模板允许我通过从 DropDownList 中选择特许权来过滤道路 像这样的东西 http demos telerik com aspnet mvc grid toolbar templ
  • 如何在服务器上运行java程序?

    我制作了一个 java 应用程序 将 csv 文件中的数据存储到 MySql 数据库中 现在我的客户希望它将此应用程序上传到他的网络空间 他为其网站占用的网络空间 以便他可以在该服务器上运行该程序 我用过FileZilla软件将程序上传到他
  • exoplayer 示例上的自定义 UI

    我真的需要帮助 如果你什么都不知道 请不要给我负面评价 如果有什么困扰你评论 我想在 Exoplayer 中为我的播放器编写自定义 UI 更改暂停播放按钮或添加新按钮 例如播放器速度下一个等 我使用 github 上的 Exoplayer
  • 如何在共享点中创建子列表

    是否可以在共享点中创建子列表 我目前正在使用文件夹来组织我的内容 但在以编程方式访问文件夹时 文件夹在共享点中是完全不同的概念 我想实现类似的目标 web 名单A 子列表1 子列表2 B表 子列表1 子列表2 EDIT 1 我正在尝试在网络
  • 使用 javascript 从数组中存在的字符串中删除双引号

    我有一个像这样的数组 数组 苹果 橙子 梨 我想删除数组中每个字符串开头和结尾的双引号 数组 苹果 橙子 梨 我尝试循环遍历数组的每个元素并进行字符串替换 如下所示 for var i 0 i lt array length i array
  • 如何一次关闭所有打开的选项卡?

    如果我打开了 10 个选项卡 我必须分别使用 q 关闭每个选项卡 我怎样才能一次性关闭它们呢 最短 最简单 最快的方法是 qa 要保存所有选项卡中的工作并退出 wqa
  • 在 Internet Explorer 中输入文件长度

    我想获取为输入文件选择的文件数 在 HTML 中 我有
  • 为什么 Dart 中显式使用“.cast<>()”函数而不是“as <>”

    在我的问题中Dart 2 X List cast 不组合 https stackoverflow com questions 49539879 dart 2 x list cast does not compose答案需要转换List
  • 如何发布Web应用程序?

    我真的不知道如何在Web开发中正确执行从离线开发到实时Web服务器的部署 我主要依靠直觉 但这或多或少是我到目前为止所做的 我有一个 python 或 php 的 Web 应用程序 并将其托管在实时 Web 服务器上 我用的是离线开发版本
  • 使用终端和 MacFusion 时出现 GIT_DISCOVERY_ACROSS_FILESYSTEM 问题

    我使用 MacFusion 和 OSXFuse 类似于 MacFuse 通过 SSH 将我的服务器安装到我的办公室计算机上 当我 cd 进入服务器上的 Rails 工作目录时 我在 zsh 提示符中看不到任何 git 信息 如果我尝试 gi
  • Android 中的 HTTP 客户端 API 级别 11 或更高级别

    我有 Jersey 实现的 Restful Web 服务 我通过 HTTP 客户端从 Android 进行连接以获取数据 它在 API 级别 10 及更早版本中工作正常 但在 API 级别 11 或更高版本上则不行 我很感激任何帮助 我在这
  • 按元素上的条件值对 numpy 数组元素进行排序

    我需要通过增加与另一个点的距离来对点的 numpy 数组进行排序 import numpy as np def dist i j ip jp return np sqrt i ip 2 j jp 2 arr np array 0 0 1 2
  • @Valid 注释在应用于 MultipartFile 对象时会被忽略

    这是我的控制器 它接受一个multipart form data有两个字段的请求 form and file The form字段是一个MyObject the file字段是一个MultipartFile 两个变量都注释为 Valid 因
  • 自定义商店页面产品以直接进入联属网站

    我需要在 WooCommerce 上使用什么 这样当您在商店 目录页面上看到产品时 它会直接链接到联属网站 而不是通过单个产品页面 然后 如果可能的话 在新选项卡中打开它 Thanks 更新 添加了 WC 3 兼容性 对于您的情况 您需要自
  • DDD,反腐败层,如何做?

    目前 我们必须构建一个基于遗留应用程序的应用程序 旧应用程序的代码应该被丢弃并重写 但正如通常情况一样 我们需要在其基础上创建新的东西 而不是重写它 最近 我们决定走领域驱动设计之路 因此 反腐败层可以解决我们的问题 据我了解 这样应该可以