Значение изоляции зависимостей

Я читаю манифест 12-факторного приложения и сейчас нахожусь в разделе зависимостей. Однако изоляция зависимостей — это то, что я не могу понять.

К сожалению, никакого фактического определения того, что это такое, не дается, за исключением того, что 12-факторные приложения должны использовать инструмент изоляции зависимостей во время выполнения, чтобы гарантировать, что никакие неявные зависимости не «просочятся» из окружающей системы.

В поисках ответов на этот вопрос я нахожу только вопросы о том, как добиться изоляции зависимостей на конкретном языке/фреймворке.

Может быть, это просто ограничение в моем понимании английского, но может ли кто-нибудь просветить меня по этому поводу?


person Aris Kallergis    schedule 17.09.2020    source источник


Ответы (2)


Предположим, вы создаете приложение с помощью Python. Вы решили использовать веб-фреймворк Django. Когда вы начинаете, вы устанавливаете Django, используя pip install django. Django 3.1 установлен в вашей локальной системе.

Через два месяца вы решаете разместить проект Django на сервере. Вы устанавливаете django pip install django. На этот раз установлен Django 3.3. Из-за обновления версии ваш код может сломаться.

Чтобы избежать таких сценариев, рекомендуется учитывать версию Django и Python. Вы можете добавить версию Django в файл require.txt или piplock.

person Netro    schedule 23.09.2020
comment
Мне очень нравится этот ответ! Я хотел бы знать, однако: это просто пример? Или подобные ситуации ДЕЙСТВИТЕЛЬНО являются причиной того, что изоляция зависимостей указана в манифесте? - person Aris Kallergis; 06.10.2020
comment
Я принимаю этот ответ через несколько месяцев, имея за плечами еще немного опыта. Большое спасибо! Мне все еще было бы интересно узнать о других примерах, где этот термин применим, если они существуют. - person Aris Kallergis; 06.07.2021

Зависимости приложения должны управляться самой сборкой приложения, а не управляться извне или отдельно. Можно использовать такие инструменты, как maven pom.xml, gradle.build, package.json, Gemfile и т. д.

person Vishnu Atrai    schedule 22.09.2020