问题标签 [decouple]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
391 浏览

c# - C# 松散耦合

我无法用英语解释我的问题。所以让我展示一下我的情况。

现在我有另一个子项目。我需要在那里使用服务类。所以我希望使服务类独立于用户类。

我怎么做?

我只有以下解决方案。有什么绝妙的办法吗?

0 投票
2 回答
718 浏览

java - 从 3rd 方库中解耦

我正在使用第三方 HTTP 客户端进行 GET、POST 调用。我不想将我的代码绑定到这个库。所以我决定创建一个名为 HttpClient 的接口和一个名为 HttpClientImpl 的实现。

接口中的方法之一是:

从接口返回的 Response 对象是来自第三方库的对象。所以这在技术上不会将我的代码与第三方库分离。

解耦自己的最佳方法是什么?我应该创建自己的响应对象来包装第三方库的响应吗?

0 投票
0 回答
35 浏览

php - 加入 2 个应用程序的 Codeigniter 符号链接

我目前有 2 个具有不同用途的 Codeigniter 应用程序 CI1 和 CI2。

CI1 - 前端(包含视图和控制器。控制器通过 REST 调用 CI2) CI2 - 后端(包含控制器和模型。执行业务逻辑。通过 REST 接收输入)

我一直在试图找出这是否是一个好的设置。我听说另一种方法是设置符号链接来加入它们。我这样做的原因是因为我想解耦我的应用程序,并且想知道如果我 CI1 位于 Web 服务器上而 CI2 位于应用程序服务器上它将如何工作。

我希望有人可以帮助我。谢谢

0 投票
3 回答
174 浏览

c# - .NET:订阅事件,解耦。国际奥委会?

我正在用 .NET/C# 编写一个接收项目更新的服务。当一个项目更新时,我想做几个动作,未来还会有更多动作。我想通过一些 commen 模式将事件与事件分离。我的大脑说国际奥委会,但我很难找到我想要的东西。基本上我在想的是让控制器接收更新的项目,通过配置来订阅事件并调用它们。当然,存在一些轻量级、快速且易于使用的框架,它仍然是最新的。你会推荐什么,为什么?(强调易于使用和快速)。

0 投票
2 回答
7649 浏览

django - Heroku - 将其声明为 envvar 或定义默认值

我正在尝试在本地运行我的 Heroku 应用程序并按照此处的说明进行操作。

当我尝试运行以下命令时:

我有这个错误:

SECRET_KEY 已在 Heroku 上声明为配置变量。

在此处输入图像描述

我已经联系了 Heroku,但仍然没有回复,所以也许这里的某个人可以在他们面前找到解决此错误的方法。

我想使用与 web 相同的版本在本地运行此应用程序,因此添加SECRET_KEYsettings.py我来说不是一条路线。

settings.py的配置是这样的:

0 投票
2 回答
421 浏览

architecture - 如何将与数据库关联的一个后端服务解耦为两个独立的服务?

我有一个大的 MySQL 数据库 D_Big,里面有一堆数据。我还有一个服务 S1,它带有从这个数据库读取或写入的 API。例如,一个 API 可能会从数据库中获取一些东西。另一个可能会向数据库写入一行。等等

我还有一个小型辅助数据库 D_Small,S1(并且只有 S1)正在读取和写入该数据库。我想不理会小型辅助数据库,但我想更改从大型 MySQL 数据库 D_Big 访问数据的方式。

我想让它访问大型 MySQL 数据库的唯一方法是通过 API 调用第二个服务 S2,它也可以访问大型数据库。当 S1 想要 D_big 中的数据时,它必须调用 S2 中的 API,这将返回 D_Big 中的数据。因此,我想删除 S1 对 D_Big 的直接依赖。

有什么好的方法可以做到这一点?有哪些提示/建议?最直接的方法似乎是将 S1 中直接访问 D_Big 的每个 API 调用替换为 S2 中相应 API 的 API,该 API 只执行与 S1 直接执行的数据库访问完全相同的数据库访问。例如,假设我们在 S1 中有这些 API:

  • API_1 从 D_Big 中的 table1 返回列 [foo, bar, baz]

  • API_2 将值 foo 写入 D_Big 中的 table2

  • API_3 从 D_Big 中的 table3 返回列 *

我只是将这些替换为:

  • S1 中的 API_1 调用 S2 中的相应 API,该 API 从 D_Big 中的 table1 返回列 [foo, bar, baz]

  • S1 中的 API_2 调用 S2 中相应的 API,API_2 将值 foo 写入 D_Big 中的 table2

  • S1 中的 API_3 调用 S2 中的相应 API,其中 API_3 从 D_Big 中的 table3 返回列 *

但是,理想映射不是一对一的情况呢?就像您应该组合 API 时一样(例如,S1 中的一个 API 调用 S2 中的两个不同 API 以获取所需的数据,或者 S1 中的两个不同 API 调用 S2 中的相同 API 但具有不同的参数)?

您如何制作一个良好的接口,将两个服务与过去的共享数据源 (D_Big) 分离?假设 S1 和 S2 都使用基于 Java/XML/Spring 的系统通过 API 调用传输数据。