Як розвиватись у Windows та тестувати та запускатись на Linux?


12

Я один з двох розробників для внутрішнього програмного забезпечення (написаного python) у моїй компанії. Програмне забезпечення - це серверне додаток, призначене для роботи на виділеній Linux коробці. В даний час у нас є одне вікно, де зберігається наше сховище SVN, і це поле також використовується для тестування. Проблема полягає в тому, що я розробляю його на своїй робочій станції за допомогою Eclipse в Windows, і ця програма не може працювати в Windows.

Як правильно організувати таке середовище, щоб ви не втратили цінний час на передачу проекту та коду навколо, щоб ви могли його протестувати?

В даний час я роблю замовлення на svn, змінюю якийсь код, а потім завантажую його на сервер розробки для тестування (не через svn). Перевірте це на сервері, щось змініть, повторіть тестування і т. Д. Після всього цього настає фіксація. Це постійне завантаження та тестування зводить мене з розуму. Я намагався тримати проект на сервері (замовлення на домашній dir), але це спричиняє багато проблем із Eclipse.

Очевидно, що я не маю багато досвіду в цьому, тому я запитую, які найкращі практики щодо подібних проблем?

Відповіді:


14

Встановіть папку на вікно Linux. Таким чином ви можете безпосередньо взаємодіяти з кодом. Працює шарм!


Це правильна відповідь. Особливо, якщо ви можете запустити Cygwin на вікні Windows; ви можете використовувати Cygwin для відображення Linux X-Windows (Gnome, KDE, що б круті діти не використовували в ці дні) назад у вікно вікна. Ви можете запрограмувати програму Eclipse безпосередньо у вікні Linux і негайно протестувати її.
Крістофер Хох

3
Тільки остерігайтеся відмінностей у файлових системах. Windows не підтримує чутливі до регістру імена файлів (де "ім'я файлу" та "FILENAME" - це два різних файли), деякі символи як ім'я файлу (тобто "/") або м'які посилання.
bitsoflogic

Погодьтеся, це найкорисніший і найпростіший варіант втілення. Настроювання VM так, як я хочу, вимагало б занадто багато часу.
c0ldcrow

@ c0ldcrow: Окрім проблем із файловою системою, просто пам’ятайте, що залежно від того, що ви робите, доступ до файлів через мережу для виконання розробок може бути надмірно повільним. Зокрема, я помітив, що деякі системи керування версіями дуже повільні, коли вони використовуються на мережевому диску, хоча цей конкретний випадок не повинен бути проблемою для вас (виконайте всі свої елементи управління джерелами локально).
Меттью Шарлі

10

На мою думку, найкращим рішенням буде використання віртуалізованого середовища для тестування, якщо ваш локальний ПК має ресурси для його запуску.

Деякі рекомендації щодо конкретних продуктів ви можете побачити мою відповідь на питання про StackOverflow , але в цілому, що це означає, що у вас буде другий ПК з ОС Linux, який працює всередині вашого поточного. Я використовую це для розробки PHP у Windows весь час, і це працює дуже добре для мене. Ви можете поділитися своєю кодовою базою з SSH / ExpanDrive або якщо ви використовуєте VirtualBox, а потім перегляньте загальні папки .


6

Пропозиція 1: працюйте в Linux безпосередньо, якщо у вас є час, щоб навчитися цьому. Дізнатися, як працює інша операційна система, справді чудово підходить для вашого особистого досвіду, і додавання до резюме, що ви знаєте, як користуватися Linux, не завадить. Також Eclipse існує в Linux, тому ви нічого не втрачаєте проти Windows.

Пропозиція 2: встановити Linux на віртуальну машину локально. Це дозволить вам протестувати додаток без необхідності публікувати його на віддаленому сервері кожного разу.

Примітка: як ви можете написати програму, націлену на Linux, якщо ви працюєте з Windows? Це кошмар!


Навіть якщо у вас є тестери, ви повинні зробити обмежене тестування на власній роботі, навіть якщо це просто, щоб переконатися, що він насправді компілюється / працює. Якщо ви розробляєте вікно Windows, але ви розробляєте додаток для Linux, то це стає трохи складніше. На замітці про те, як це можна зробити, досить просто зробити правильну настройку. Я широко використовую VM у своїй роботі (PHP / MySQL, орієнтований на кінцевий сервер Linux), і він насправді працює дуже добре, особливо якщо у вас є 2+ моніторів для роботи.
Меттью Шарлі

Я вже дуже добре працюю з Linux (я встановив тестовий і SVN-сервер). Я також займаюся кодуванням Windows (потрібна Visual studio) і, як правило, мені більше подобається Windows :) Розробка програмного забезпечення не є основним бізнесом для моєї компанії, комп'ютерна безпека, це лише якийсь внутрішній додаток, який нам потрібен. Думаю, я можу прийняти встановлення Linux в VM
c0ldcrow

@Matthew Scharley: Я згоден. Видалено мою другу ноту.
Арсеній Муренко

@ c0ldcrow: тому для розробки цього додатка (або лише для тестування його під час написання коду в Windows) для вас не повинно бути проблем віртуального середовища.
Арсеній Муренко

2

Якщо ви використовуєте eclipse, для вас є ідеальний плагін: Filesync Я використовую його весь час, і я впевнений, що вам це сподобається.

Ось що я зазвичай роблю, коли працюю в тих же умовах, що і ти.

Я замовляю проект від SVN, використовуючи Eclipse в своїй машині. Тоді я синхронізую свій локальний проект на віддалений сервер dev | test, виключаючи файли, такі як .project тощо. Я рекомендую також поставити ключ SSH на віддалений сервер, щоб пришвидшити з'єднання.

І вуаля! Тепер ви можете працювати локально, і затемнення автоматично синхронізує будь-які зміни, які ви робите на віддаленому сервері. Коли все добре перевірено і готове до доставки, ви можете скористатися і за допомогою затемнення! Не потрібно шпаклівки!

Сподіваюся, це допомагає!


0

Мені вдалося написати c # / mono-код у Visual Studio і віддалено налагоджувати на скриньці Linux всередині VS, використовуючи плагін віддаленого налагодження GDB. Працювали напрочуд добре. Я думаю, що було б швидше, якби ваша установка Linux була в локальній VM (в Інтернеті є приємний прилад VMWare Ubuntu), але мені знадобився набір графічних процесорів Tesla, які не були встановлені в моєму ноутбуці.

Шукайте WinGDB. Це не безкоштовно, але працює неймовірно добре.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.