Плюсы и минусы разработки на ВМ на ПК

Я написал это

#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#include <ctype.h>
typedef struct
{
    const char* protocol = 0;
    const char* site = 0;
    const char* port = 0;
    const char* path = 0;
} URL_INFO;
URL_INFO* split_url(URL_INFO* info, const char* url)
{
    if (!info || !url)
        return NULL;
    info->protocol = strtok(strcpy((char*)malloc(strlen(url)+1), url), "://");
    info->site = strstr(url, "://");
    if (info->site)
    {
        info->site += 3;
        char* site_port_path = strcpy((char*)calloc(1, strlen(info->site) + 1), info->site);
        info->site = strtok(site_port_path, ":");
        info->site = strtok(site_port_path, "/");
    }
    else
    {
        char* site_port_path = strcpy((char*)calloc(1, strlen(url) + 1), url);
        info->site = strtok(site_port_path, ":");
        info->site = strtok(site_port_path, "/");
    }
    char* URL = strcpy((char*)malloc(strlen(url) + 1), url);
    info->port = strstr(URL + 6, ":");
    char* port_path = 0;
    char* port_path_copy = 0;
    if (info->port && isdigit(*(port_path = (char*)info->port + 1)))
    {
        port_path_copy = strcpy((char*)malloc(strlen(port_path) + 1), port_path);
        char * r = strtok(port_path, "/");
        if (r)
            info->port = r;
        else
            info->port = port_path;
    }
    else
        info->port = "80";
    if (port_path_copy)
        info->path = port_path_copy + strlen(info->port ? info->port : "");
    else 
    {
        char* path = strstr(URL + 8, "/");
        info->path = path ? path : "/";
    }
    int r = strcmp(info->protocol, info->site) == 0;
    if (r && info->port == "80")
        info->protocol = "http";
    else if (r)
        info->protocol = "tcp";
    return info;
}

Test

int main()
{
    URL_INFO info;
    split_url(&info, "ftp://192.168.0.1:8080/servlet/rece");
    printf("Protocol: %s\nSite: %s\nPort: %s\nPath: %s\n", info.protocol, info.site, info.port, info.path);
    return 0;
}

Out

Protocol: ftp
Site: 192.168.0.1
Port: 8080
Path: /servlet/rece
10
задан Kara 21 June 2013 в 21:31
поделиться

13 ответов

При выполнении разработки дома, я имею к VPN в мою компанию, чтобы смочь использовать совместные инструменты, которые находятся на интранет. У меня также есть рабочий стол + ноутбук, которые сцепляются вместе посредством Совместных действий.

Проблема, которую я имею, состоит в том, что наше программное обеспечение VPN хочет вещи быть столь безопасным, что оно вызовет всю сетевую маршрутизацию через шлюз VPN - даже если я буду использовать дополнительный NICs для сетей моего рабочего стола и ноутбука через отдельную частную сеть. Конечный результат состоит в том, что я не могу использовать Совместные действия между своим рабочим столом и ноутбуком и VPN в мою компанию одновременно.

Решение, предложенное мне коллегой, состояло в том, чтобы установить экземпляр VM на моем рабочем столе и использовании, для которого для всей моей VPN нужно. Работы как очарование!

0
ответ дан 3 December 2019 в 17:22
поделиться

Для веб-разработки мне нравится разделять serverpart в VM. Моей текущей установкой является MacBook Pro с несколькими VM's Debian внутри. Мне нравится аспект изоляции его. Я могу попробовать новое программное обеспечение на серверах и иметь способность вернуться их назад, если что-то испорчено.

Я делаю программирование через сетевой ресурс (самба) в Textmate в хост-системе.

5
ответ дан 3 December 2019 в 17:22
поделиться

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

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

0
ответ дан 3 December 2019 в 17:22
поделиться

Это зависит, что Вы разрабатываете и в какой язык.

VM's имеет тенденцию получать сильный удар на доступе к диску, таким образом компилирование может значительно замедлиться, специально для больших проектов C/C++. Не уверенный, если это было бы такой проблемой с.NET/Java.

Если Вы делаете что-нибудь, что является интенсивной графикой (3D, видео, и т.д.) затем я избегал бы VM также.

0
ответ дан 3 December 2019 в 17:22
поделиться

Я не хотел бы разрабатывать в VM так как тестовые вещи в VM. Например, могло бы быть хорошо настроить пару VM's для эмуляции n-tier архитектуры или установки клиент-сервер или наконец просто к тестовому коду на нескольких OSs

1
ответ дан 3 December 2019 в 17:22
поделиться

Если Вы находитесь в Windows, Виртуальный ПК довольно достоин для технической разработки. Виртуальный сервер VMware действительно не разработан для использования в качестве рабочего стола, и Вы станете очень усталыми от него с любым длительным использованием. VirtualBox Sun является другой опцией, конкурирующей с Виртуальным ПК. VMware имеет продукт рабочей станции, но это не свободно.

Как правило, я делаю разработку на реальном (невиртуальном) рабочем столе и затем развертываю или тестирую к виртуальным машинам, которые я могу создать снимки и откатывать легко.

1
ответ дан 3 December 2019 в 17:22
поделиться

В течение долгого времени мы разрабатывали на очень ранних версиях Visual Studio 2005 и связанные биты .NET, которые согласились с нею. Для защиты наших реальных машин от различных проблем, связанных с предрелизным программным обеспечением, мы сделали всю нашу техническую разработку в виртуальных машинах. Это работало удивительно хорошо. Я рассматривал движение назад к той модели, поскольку это делает обновление физического оборудования снимком (не говоря уже о помощи иметь дело с отказами оборудования, просто заменив всю машину): Вы просто копируете образ виртуальной машины.

На моей текущей машине (Core2Duo с 4 ГБ RAM), отбрасывание производительности при выполнении одного VM почти не примечательно. Выполнение двух VMs, однако, является болезненным.

Я также не могу выяснить, как заставить VMware Server работать через два монитора хорошо.

1
ответ дан 3 December 2019 в 17:22
поделиться

Увеличьте объем своей RAM на Вашем будущем MacBookPro, если VMware будет использоваться. Я (еще) не имею и производительность с несколько другим (сторона Mac), приложения, открытые действительно, начинают чувствовать себя вялыми.

Всего наилучшего.

1
ответ дан 3 December 2019 в 17:22
поделиться

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

2
ответ дан 3 December 2019 в 17:22
поделиться

Где я работаю в теперь, я использую VM для всей моей разработки, потому что у меня нет прав администратора к моей основной копии XP.

Профессионалы: Мне нравится использовать VM's, потому что он дает Вам некоторую гибкость - можно переключиться между машинами - имеют программы, работающие на обоих, и имеют прохладную среду, чтобы продолжить работать.

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

Операции буфера обмена на VM's могут время от времени быть интересными. Иногда копирование к буферу обмена не работает или перепутано между VM's. (Использование VMware).

Операции файла могут быть интересными, когда Вы включаете Карты памяти и другие внешние устройства. VM's иногда не видит устройства, иногда он делает.

Если Ваш образ виртуальной машины становится поврежденным - можно легко освободить все в нем...., если он не сохранен.....

3
ответ дан 3 December 2019 в 17:22
поделиться

Другое преимущество VM имеет чистую установленную основу. Я использую свой рабочий стол и ноутбук для большого количества вещей кроме разработки. Вы никогда не знаете, когда часть программного обеспечения, которое Вы устанавливаете, собирается конфликтовать, или если небольшие тонкие настройки и с чем не Вы играете вокруг, собираются повредить Вашу ОС. Переустановка/конфигурирование всех Ваших инструментов, таким образом, они - точно способ, которым Вы хотите их, может занять некоторое время. Если у Вас есть резервное копирование Вашего Образа виртуальной машины Разработки, можно испортить ПК так, как Вы хотите, но все еще можете кодировать без времени простоя. Это также позволяет Вам выполнять Win / Визуальный Studio/И т.д. на поле, на котором Вы иначе предпочли бы Linux или MacOS.

Можно также сделать несколько копий того же Изображения и использовать каждого для отдельного проекта.

Способность перейти между ноутбуком/рабочим столом/сервером/удаленным соединением и всегда быть в той же среде также очень полезна.

5
ответ дан 3 December 2019 в 17:22
поделиться

Одна проблема, которую я нашел (по крайней мере, при использовании VMware Server) состоит в том, что, неважно, как быстро машина, экранная частота обновления все еще вокруг ~30hz. Это делает для немного неприятного опыта после использования его некоторое время.

3
ответ дан 3 December 2019 в 17:22
поделиться

Я делал некоторую работу с Visual Studio недавно с Windows XP vm на Linux и так или иначе парнях, которые сделали vm (VMware) сделанный машиной окон на самом деле выполненный быстрее. Мы сделали тесты некоторого времени для проверки, и это не было главным, но несколько вещей (автоматическое заполнение, например) действительно открывались быстрее.

1
ответ дан 3 December 2019 в 17:22
поделиться
Другие вопросы по тегам:

Похожие вопросы: