Организация разработки PHP в команде (среда, конфигурация и т. Д.) - PullRequest
4 голосов
/ 09 марта 2011

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

Сейчас у нас есть следующие настройки:

  • Сервер разработки Linux (поскольку все, что мы производим, работает на linux и использует некоторые библиотеки linux-specix)
  • Рабочие столы Windows (так как офисная сеть работает на Windows)
  • У каждого разработчика есть домашняя папка на сервере разработчиков с виртуальным хостом, настроенным для запуска своего кода. Эта папка используется совместно с Samba.
  • Zend Studio IDE, настроенная для использования этого расположения (в качестве сетевого диска) для работы над проектами
  • Удаленная отладка, чтобы иметь возможность запускать приложения на сервере dev и иметь возможность пошагово выполнять код

Итак, главная проблема, с которой мы сталкиваемся, заключается в том, что все идет медленно ...

  • Zend медленно индексирует проект, так как в нем есть довольно много файлов (включая внешние, такие как полная структура), которые необходимо передать через SMB.
  • Удаленная отладка идет медленно, так как Zend studio должна извлечь файл, а затем отправить его обратно на сервер для запуска (работает «Локально, если доступно, иначе сервер»; в противном случае точки останова не работают)
  • Tortoise SVN медленно получает статус файла для коммита (командная строка решает проблему, но гораздо менее удобна для пользователя, особенно с более сложными вещами, такими как разрешение конфликтов при объединении)

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

Разработка и отладка под Windows невозможны из-за зависимостей linux в коде (например, функции POSIX).

Так как организации решают эти проблемы? Какие настройки вы используете? С какими проблемами вы сталкиваетесь и как их решить?

1 Ответ

3 голосов
/ 09 марта 2011

Одним из решений, которое работает в некоторых ситуациях, является:

  • Наличие кода на локальном диске, на физическом компьютере под управлением Windows
    • Этот код тот, который выизменение с помощью вашей IDE
    • Итак, IDE работает максимально быстро: нет доступа к SMB для каждого файла.
  • Также есть код на сервере Linux
    • Итак, Apache работает быстро: код присутствует на сервере
  • Используйте какой-то механизм синхронизации, чтобы перенести все изменения, сделанные в файле на компьютере с Windows, на сервер Linuxчерез долю SMB.
    • Используя Eclipse, плагин FileSync отлично справляется с общим ресурсом SMB.
    • WinSCP также может использоваться для сохранения удаленногои локальная папка синхронизирована через соединение SSH


Преимущества:

  • Все локальные операции выполняются быстро
  • Всесерверные операции выполняются быстро

Недостатки:

  • Вы всегда должны использовать инструмент, обеспечивающий синхронизацию (Например, с FileSync все должно выполняться в Eclipse -- и ничего в любом другом программном обеспечении)
    • Примечание: для SVN не нужно использовать Tortoise: есть плагины, которые интегрируются в Eclipse (например, Subversive)
  • Не уверен насчет отладки
  • Модификации, выполненные непосредственно на компьютере с Linux, могут не (в зависимости от решения) синхронизироваться с рабочим столом Windows.


Все же лучший (самый быстрый и самый мощный) *Решение 1062 * обычно состоит в том, чтобы использовать только один компьютер - в вашем случае это будет Linux, а не Windows.

  • Ваши инструменты, скорее всего, будут работать под Linux
  • При необходимостивы можете установить Windows на виртуальной машине для некоторых программ, которые не работают в Linux
  • Это побудит всех в вашей команде лучше знать Linux;что всегда полезно, когда ваша производственная среда не Windows; -)
...