Как в группе мы должны управлять созданием реального приложения? Могу ли я использовать какие-либо методы, которые позволят любому из нас переместить файлы на наш компьютер для разработки и отследить, кто это сделал, чтобы мы не перезаписывали изменения друг друга?
Похоже, вы ищете Управление сборкой . В случае с PHP настоящая «сборка» так же проста, как и сбор исходных файлов, поскольку язык интерпретируется; нет компиляции.
Так получилось, что я являюсь одним из разработчиков BuildMaster , инструмента, который в основном решает все проблемы, которые вы перечислили в своем вопросе ... и звучит так, будто он будет бесплатным в вашем дело под лицензией Community Edition. Я постараюсь рассмотреть некоторые из ваших индивидуальных проблем и узнать, как можно использовать BuildMaster в качестве решения.
Контроль источника
Как подсказывают другие, вы должны его использовать. Уловка, когда дело доходит до развертывания, состоит в том, чтобы установить некоторую форму непрерывной интеграции , чтобы каждый раз, когда кто-то регистрировался, создавалась новая «сборка». В BuildMaster вы можете настроить это для любого поставщика управления исходным кодом, который вы хотите.
Отслеживание ошибок / ошибок
Excel будет работать, но это не оптимальное решение. Существует множество бесплатных инструментов отслеживания ошибок, которые можно использовать для управления ошибками и функциями. С BuildMaster вы можете связать свой список ошибок и функций с приложением по номеру выпуска, чтобы вы могли просматривать их в инструменте в любое время. Он также может изменять статусы выпуска и автоматически добавлять описания, если хотите.
развертывания
Используя BuildMaster, вы можете создавать планы автоматического развертывания для своей среды разработки, например ::
- Получить последний исходный код
- Создать артефакт
- Копирование файлов на компьютер разработчика
- Развертывание файлов конфигурации
- Обновление базы данных
Самое приятное то, что после того, как вы настроите их для других сред (точка свечения № 6), отправка всего кода и обновлений базы данных так же проста, как нажатие кнопки.
Еще одна проблема, которую я предвижу, будет обновление базы данных, работающей на компьютере разработчика. Существуют ли какие-либо стандартизированные методы, которые мы можем использовать для управления нашими сценариями SQL среди нас четверых?
Обновления базы данных
Не удивительно, что BuildMaster также обрабатывает их, используя модуль сценариев изменений. Когда член вашей команды создает сценарий (например, ALTER TABLE ADD [Blah] INT NOT NULL
), он может загрузить его в BuildMaster, а затем запустить в любой среде, которую вы создали.
Самое приятное, что вы можете добавить шаг в ваше автоматическое развертывание и больше никогда не беспокоиться об этом. Как упоминает Джастин, вы можете использовать .sql
файлы для вашего объектного кода (хранимые процедуры, представления, триггеры и т. Д.), И они будут выполняться при каждой сборке, так как они по сути являются кодом в любом случае. Вы можете сохранить их в системе контроля версий.
Конфигурационные файлы
Одним из аспектов всего этого, которым вы, возможно, пренебрегали (но неизбежно столкнетесь), является работа с файлами конфигурации. В PHP вы можете иметь файл .htaccess, файл php.ini, файл prepend.php или свернуть свой собственный файл конфигурации. Так как по определению файлы конфигурации должны меняться между вашим персональным компьютером и машиной разработки, получение их из системы контроля версий не обязательно будет работать без некоторого взлома а-ля:
if (DEV) {
// do one thing
}
else if (PROD) {
// do another
}
С BuildMaster вы можете шаблонизировать ваши файлы конфигурации и связывать их со средой, чтобы их можно было автоматически развертывать. Он также будет вести историю изменений для вас.
Автоматизированное тестирование
Если вы хотите получить полный эффект ALM, вы можете автоматически тестировать код во время автоматической сборки и уведомлять вас, если что-то не получается, чтобы вы знали как можно скорее, что что-то сломалось.
Прошу прощения за "многословный" ответ, но я чувствую, что вы уже впереди игры, наблюдая за проблемами, с которыми вы можете столкнуться в будущем, и действительно верьте, что BuildMaster сделает все эти средства развертывания простыми для вашей командытак что вы можете сосредоточиться на забавной части, кодировании!