Я изучаю способы добавления бродяг в мою среду разработки. Я занимаюсь большей частью своей веб-разработкой в python, и меня интересуют специфические для python особенности, однако вопрос более общий.Использование бродяг как часть среды разработки
Мне нравится идея иметь все связанные с развитием вещи, изолированные на виртуальной машине, но я еще не нашел эффективного способа работать с ним. В принципе, я вижу 3 способа, чтобы установить его:
Have все сервисы (например, сервер баз данных, MQ, и т.д.), а также применение в стадии разработки для запуска в VM. Разработчик мог бы ssh для VM и редактировать источники там, запускать приложение, тесты и т. Д., Все в ssh-терминале.
То же, что и 1), но редактировать источники на главной машине в сопоставленной директории с помощью обычного графического редактора. Запустите приложение и тесты на бродяжнике через ssh. Это, по-видимому, самый популярный способ использования бродяг.
Принимать только внешние службы в виртуальной машине. Установите зависимости приложений в virtualenv на хост-машине и запустите приложение и тесты оттуда.
Все эти подходы имеют свои недостатки:
Разработка в текстовой консоли слишком неудобной, и это шоу-стоппер для меня. Хотя я опытный пользователь ViM и могу жить с ним, я не могу рекомендовать этот подход для тех, кто привык работать в любой графической среде IDE.
Вы можете разработать свои знакомые инструменты, но вы не можете использовать автозаполнение, так как все библиотеки python установлены в VM. Ваши трассировки укажут на нелокальные файлы. Вы не сможете открывать источники библиотеки в своем редакторе, ctags не будут работать.
Потеря большинства функций «изоляции»: вам необходимо установить все компиляторы, * -dev, чтобы установить зависимости python и запустить приложение. Это довольно легко для Linux, но было бы намного сложнее установить их на OSX, а в Windows это почти невозможно, я думаю.
Таким образом, речь идет: есть ли какое-либо средство для задач 2-го и 3-го подходов? Более конкретно, как можно создать изолированную и легко реплицируемую среду, и тем не менее пользоваться всем комфортом разработки на главной машине?
У меня были подобные размышления. Вы нашли хорошее решение? В последнее время я думал, что Docker (или Linux-контейнеры, в более общем плане) может обеспечить лучшую систему, но я еще не тестировал ее. –
Лично я использую третий вариант сверху. Все мои разработчики используют Ubuntu, поэтому у нас есть роскошь иметь довольно похожие конфигурации хост-машин. Поэтому мы просто можем установить кучу пакетов ubuntu и избавиться от него. Я пришел к выводу, что вы * имеете *, чтобы принести эти жертвы во имя независимости сообщества разработчиков. И только имеет смысл переключиться на вариант 1 или 2, когда текущая цена варианта 3 становится слишком высокой (т. Е. Вам нужно поддерживать слишком много вариантов среды разработки). Но я все еще слежу за этим.Если Докер решает хотя бы некоторые из этих проблем, дайте мне знать! –
Моя проблема с № 3 заключается в том, что делать, если разные проекты имеют конфликтующие зависимости. Теперь я понял, что PyCharm работает с Vagrant, позволяя удаленным интерпретаторам Python. Конечно, это специфичный Python и может связать вас с IDE (я не знаю, поддерживают ли другие это). С Docker я надеюсь, что у вас может быть среда разработки для каждого проекта, в комплекте с графическим редактором. Конечно, вы уже можете сделать это с помощью других методов виртуализации, но с большей производительностью. –