В даний час моїм середовищем розробки є Ubuntu v12.04 з VMWare. Я працюю повністю всередині VM, з повним графічним інтерфейсом і використовую лише обмін файлами samba в Ubuntu, якщо мені потрібно дістатись до файлів з моєї ОС хостингу, яка є Windows 7. Я звичайно отримую доступ до картографічного мережевого диска через внутрішній IP VM через NAT для підключення до VM. Використання інших рішень виявилося набагато повільніше, як спільні папки VMWare. У мене це вимкнено в налаштуваннях зображення VMWare. Однак я встановлюю інструменти VMWare для легкої копіювання / пасти на свою хост-машину і навпаки.
Як зазначив Маттіас Цайс, будьте уважні у виборі мережевих / спільних папок з вашим VM, оскільки деякі виявляться проблематичними.
Я був попереднім користувачем VirtualBox, але виявив, що VMWare є більш стабільним і працює приємно (принаймні для мене). Однак я б провів власні тести, щоб найкраще відповідати вашим потребам та вимогам, тобто. Vagrant використовує VirtualBox.
IDE:
Я використовував Netbeans досить широко як мій вибір IDE, але з тих пір перейшов до більш легкого рішення як Sublime Text 2 . Я рідко відкриватиму Netbeans, як головним чином для цілей X-Debug та полегшення Refactoring. Netbeans, PHPStorm, Eclipse і т. Д. - все IDE, засновані на Java, і вони можуть бути дуже голодними.
ТЕХНІЧНЕ ЗАБЕЗПЕЧЕННЯ:
Щоб додати більше, обладнання завжди матиме ключову роль у продуктивності (очевидно). Якщо ваші розробники досі використовують жорсткий жорсткий диск, я б хотів інвестувати в SSD для них. Оскільки Magento має дуже велику кількість файлів / папок, це значно прискорить роботу розробників. Під час розробки: з відключенням кешування та Хоча просто обхід дерева папок у SVN / GIT або вашому IDE. Надання вашої оперативної пам'яті достатньою мірою також важливо.
Моя хост-машина: Samsung SSD 512 Гб місця на диску, Win7 (64 біт), 8 ГБ оперативної пам’яті, i7 2,4 ГГц (8 ядер)
Моя машина VM: Samsung SSD, 30 Гб місця на диску, Ubuntu 12.04 (32 біт), 3 ГБ оперативної пам’яті, i7 (виділено 4 ядра).
ЗАПИТАННЯ НА ЗАПИТАННЯ:
Найбільше питання - створити одне зображення VM для розробників, яке є легким і багаторазовим для використання в декількох проектах, або створити зображення на проект. Раніше я намагався робити менші віртуальні машини на основі проекту, однак перенастроювання постійно йти з моїм робочим процесом стало занадто великим завданням, а тепер використовую одну більшу машину управління та намагаюсь зробити кожен проект максимально ізольованим.
Підтримання ОС, IDE, стека LAMP, оновлень / конфігурацій тощо може стати справжньою справою, якщо вибраний маршрут декілька VM на проект. В кінцевому рахунку, це призводить до більш тривалого часу розробки (і ще гірший час, що не підлягає оплаті для місцевих налаштувань навколишнього середовища).
Це також виявилося корисним, оскільки я швидко зміг отримати доступ до інших файлів проектів без необхідності відкривати нову віртуальну машину та ще більше розрізати обладнання для свого хоста. Недоліком ідеально є те, що я хотів би, щоб кожен проект був відхилений від інших проектів, щоб запобігти виникненню непередбачених проблем із довкіллям (наприклад, php.ini, my.cnf, httpd.conf тощо). Поки що компроміс із доступністю всіх доступних проектів виявився більш винахідливим.
Знову ж, це відповідає вашим вимогам та потребам, тому оцініть їх перед рукою.
ЗВОРОТНІ ЗВ'ЯЗКИ:
Це призводить до зворотного зв'язку Отримайте якомога більше коштів від розробників. Зрештою, їхні вимоги повинні бути виконані, а їх проблеми зрозуміти, перш ніж можна буде створити і ввести належне рішення. У кожного різні робочі процеси, і не всім комфортно працювати в ОС, яку ви можете обрати для розробки. Моє правило - нехай розробник обрав ОС та IDE, з якими вони найзручніші та найкращі. Тож навіть легкий безголовий VM для Linux може виявитися корисним для їхніх потреб, але, очевидно, може виникнути проблема спільного використання папок у локальній мережі між Host та VM.
ПОРТИВНІСТЬ:
Я також грав з ідеєю зберегти своє зображення VM на чомусь схожому на Dropbox, щоб я міг легко отримати доступ до нього в будь-який час, коли мені це знадобиться. Оскільки такі сервіси, як Dropbox, поступово порівнюють те, що зберігається, здавалося логічним, що синхронізуються лише зміни, які я змінив. Однак це виявилося не так, тому що я вважаю, що це стосується внутрішніх даних щодо збереження файлу зображень, і я б чекав цілий день / ніч лише для того, щоб мій ВМ синхронізувався.
ПРИМІТКИ:
Чим більший простір приводу, призначений для VM, тим більше зображення стане, майте це на увазі, коли розповсюджуєте зображення своїм розробникам. Фронт завантаження файлів проекту на проект може бути надмірним, і я залишаю це для кожного розробника, щоб налаштувати після створення іміджу.
Ешлі Шродер має дещо стару пов’язану статтю, яку добре читати, а також деякі коментарі Фомана і Коліна
Сподіваємось, це допоможе зрозуміти ваш перелічений проблематичний номер, №6.