我正在阅读12因素-应用程序宣言,我现在在依赖项部分。但是,依赖隔离是我无法理解的事情。
不幸的是,除了12因素的应用程序应该“在执行过程中使用依赖隔离工具来确保没有隐式依赖”从周围的系统“泄漏”之外,没有给出实际的定义。
为了寻找答案,我只想知道如何在特定的语言/框架中实现依赖隔离。
也许这只是我对英语的理解上的一个限制,但是有人能在这方面给我启发吗?
发布于 2020-09-23 06:47:18
假设您正在使用Python构建一个应用程序。您决定使用Django网络框架。在启动时,您可以使用pip install django安装Django。Django 3.1安装在您的本地系统上。
两个月后,您决定在服务器上托管Django项目。您可以通过pip install django安装django。这次安装了Django 3.3。因为版本升级,您的代码可能会中断。
为了避免这种情况,建议注意Django和Python的版本。您可以在requirement.txt或piplock文件中添加Django版本。
发布于 2020-09-22 10:58:51
应用程序依赖关系应该由应用程序构建自身来管理,而不是从外部或单独管理。工具可用于maven pom.xml或gradle.build或package.json或Gemfile等。
发布于 2022-11-01 14:58:33
我认为其他答案更多是关于依赖关系管理(钉扎、跟踪等),而不是孤立。
在软件工程中,隔离常常被看作是一种以低成本替换某种东西(某种依赖性)的能力。
这可以通过使用您自己的函数、类、适配器等围绕依赖关系(类、函数)来实现。
例如,如果您在Django项目中创建了一些包装Django模型API的Repository类,那么您就可以通过更改Repository实现来用SQLAlchemy或raw SQL替换Django ORM。如果Django模型在您的项目中任何地方都使用,直接导入到您的每个模块中,那么从您的项目中删除Django ORM将更加困难。您必须更改导入Django模型(-s)的每个模型。
你可以在罗伯特·马丁斯的书里读到更多这方面的内容。清洁代码和清洁架构。
https://stackoverflow.com/questions/63936750
复制相似问题