Python – Лучший Способ Изолировать Проекты Программирования?

  • Автор темы Sura1010
  • Обновлено
  • 21, Oct 2024
  • #1

Не уверен, что это лучшее место для вопроса, но у меня есть несколько проектов разработки с разными зависимостями. Я хочу знать, как лучше всего изолировать каждый проект?

У меня есть много несвязанных проектов, которые разрабатываются и обновляются на моем ноутбуке, но я обычно переношу их на rPi или виртуальные машины (esxi). Я хотел бы изолировать различные проекты, чтобы было легче отслеживать, какие зависимости принадлежат какому проекту, и не допускать в ОС наличия библиотек и других модулей, которые не нужны после «завершения» проекта. Я немного программирую по работе, но это в основном хобби, помогающее соседям и местному SPCA.

Что я использую:

Обычно я программирую на Debian или Windows 10, в зависимости от того, чего мне нужно достичь.

Sura1010


Рег
11 Apr, 2020

Тем
79

Постов
212

Баллов
637
  • 25, Oct 2024
  • #2

Более общий подход — использовать отдельную виртуализированную среду для каждого проекта, см. раздел «Виртуализация». Это может быть либо:

  • образ контейнера — более легкий, быстрый и определенно более популярный в наши дни, см. контейнеры
  • образ виртуальной машины (ВМ), медленнее и немного сложнее в обслуживании, чем контейнеры

Все зависимости проекта (IDE, библиотеки, инструменты и т. д.) будут установлены внутри виртуализированной среды, а не в самой вашей системе.

Вам нужно будет создать/перенести соответствующий образ проекта на свой компьютер, когда вы начнете над ним работать, и вы сможете удалить или сохранить его для последующего повторного использования на каком-либо внешнем хранилище, когда закончите. Общий репозиторий артефактов рекомендуется использовать в качестве хранилища, если над этими проектами могут работать более одного разработчика.

Огромным преимуществом этого подхода является то, что такие виртуализированные среды очень хорошо сочетаются с автоматизированными конвейерами CI/CD, в истинном духе DevOps, помогая минимизировать/устранить различия между средой разработки и промежуточной/производственной средой.

В зависимости от языка программирования и/или вспомогательных инструментов разработки, используемых в конкретном проекте, у вас могут быть более конкретные подходы/альтернативы. Например

Pipenv
или виртуаленв/virtualenv можно использовать для обеспечения такой изоляции проектов Python. Но эти решения обычно непригодны для использования в других контекстах.

 

Kalachinsk


Рег
14 Nov, 2008

Тем
80

Постов
196

Баллов
616
  • 25, Oct 2024
  • #3

http://microservices.io/

На этом веб-сайте объясняется, что микросервисы не являются Святым Граалем, но он дает представление о том, как их можно реализовать и чем они могут быть полезны.

Что касается вопроса:

Лучший способ изолировать проекты программирования?

не существует универсального решения. Это зависит от цели. Если ваша компания коммерческая, то самое главное — добавлять новые функции. Так что монолит был бы хорош в первую очередь. Если возникают проблемы, можно применить метод нарезки сыра и извлечь проблемные функции в микросервисы. Самое главное – как можно скорее доставить его заказчику.

 

Ivvs


Рег
19 Oct, 2006

Тем
75

Постов
194

Баллов
589
Тем
403,760
Комментарии
400,028
Опыт
2,418,908