-1

在考虑端口和适配器架构时,我担心过度设计我的代码。

系统与外界联系的两个非常常见的例子是我的HTTP堆栈和本地文件系统。当应用程序与外界联系时,这些情况很明显,并且测试将需要一定程度的控制和/或模拟。

我的第一个想法是:“也许我应该有一个中央服务或单例,并确保任何 HTTP 调用都通过它”

对于测试来说,这将是惊人的,因为如果在没有开发人员模拟或至少明确的音乐会的情况下完成对外界的意外调用,我可以强制任何测试崩溃。这也标准化了模拟 HTTP 调用的单一方式。

另一方面,感觉就像我在重新发明轮子。我是一名 Javascript 开发人员,本机库不太好。大多数人使用第三方库,它将作为依赖项传播到整个项目中。

我目前的方法是重新发明轮子。我确实创建了抽象层(一个服务单例),但使用第三方库使其保持轻便。目标是尝试使用薄的自制外观“遏制”第 3 方库代码在项目中的传播。显然,范围更大的东西是个例外。例如,抽象出数据库访问往往会带来更多的痛苦而不是荣耀。

HTTP本地文件系统访问的自制抽象是端口/适配器的明显示例还是只是过度工程?

4

1 回答 1

2

这种困境(为 http 访问创建自己的“网关”)更多地与可重用性和 DRY 相关,而不是六边形架构。

六边形架构说“在您的应用程序中放置一个与技术无关的端口,用于与外部世界项目对话,然后在您的应用程序外部放置一个 http 适配器,用于翻译”。

关键是……你有很多带有 http 适配器的应用程序吗?在这种情况下,也许值得将 http 适配器抽象为一种自定义网关。

于 2021-02-23T10:00:31.950 回答