@hrvasiliy

Правильно ли я понимаю?

Что имеем? - 2 сайта: master.com и develop.com.
Немного разобравшись в процессе разработки веб-проекта, интересует, правильно ли я все понял. Собственно: Ставим GIT на локальную машину, начальные файлы проекта уже имеются. Закидываем файлы, коммитим, далее создаем ветку для разработки, пушим в удаленный репозиторий. Все, файлы лежат в репозитории, но не на рабочем сервере, я так понимаю, на локальной машине должен быть установлен какой-нибудь Denwer, LAMP, чтобы продолжать разработку.
Разработка должна вестись локально, так как не хватит сайтов для каждого разработчика (1. Или же можно создать что-то похожее на developer.develop.com, developer2.develop.com и т. д.?). После какого-то периода требуется все слить на develop.com проверить и деплоить это на master.com... На develop.com можно заливать чем угодно (FTP/SFTP), так так, в случае какой-то поломки, не страшно, а на master.com уже деплоить.
Далее возникает вопрос, у большинства проектов имеется БД. 2. Как тут нужно все правильно сделать, локально ее вести и потом делать бэкап и заливать каждый раз на develop.com и потом на master.com или вообще БД как-то должна работать через GIT?

Помимо пронумерованных вопросов, интересует, правильно ли я описал процесс разработки. Спасибо.
  • Вопрос задан
  • 564 просмотра
Пригласить эксперта
Ответы на вопрос 1
Lobotomist
@Lobotomist
Software Developer
Вариантов множество и выбрать можно только зная специфику конкретного проекта. Кроме того, нет предела совершенству и есть очеь много нюансов с которыми можно мириться в одних случаях и нельзя в других.
Так что не зная проектов нельзя сказать правильно ли вы что-то поняли или нет. По этому я попробую ответить на озвученные вопросы, но полной картины не предоставлю.

Разработка

Разработчики могут проверять свой код либо, как вы сказали, на своих компьютерах - тогда нужно, чтобы разработчик мог запустить копию системы на своем компьютере.
Могут, так же, использовать один тестовый сервер, с которым будут синхронизировать свой исходный код в процессе работы. Это можно делать с помощью rsync или winscp или чего-нибудь еще. Можно для каждого разработчика использовать отдельный поддомен vasya.develop.com, либо отдельную папку develop.com/vasya/

Тестирование

Поскольку в одном "билде" может быть несколько разных задач, то есть слито несколько веток - нужно протестировать их все вместе. Для этого нужно после слияния поместить этот код куда-то уже для тестирования (например, test.develop.com или develop.com/test/). Какие-то правки вносить нужно уже в ту ветку, в которую были слиты эти изменения. Тут уже все зависит от того, как вы это организовываете в git. Когда все протестировано можно деплоить код на продакшн.
Заливать код можно как вы сказали, через ftp/sftp, либо можно при пуше в определенную ветку в центральном репозитории разворачивать копию на тестовом сервере. Например, при пуше в ветку test - на сервере develop.com делается fetch и в папку develop.com/test/ выгружается текущее состояние ветки test. Ну, это все в общих чертах - нужно еще решить, как и откуда будут переноситься настройки, специфичные для отдельного экземпляра системы, если они есть с какой БД этот экземпляр будет работать и т.п.

БД

Все зависит от того, как именно вы ее используете и как осуществляете деплой. Могу порекомендовать держать структуру базы и "системные" данные в каком-либо виде в репозитории. Чтобы можно было развернуть "пустую" базу данных только на основании данных в репозитории. Например, можно просто хранить там скрипты по созданию таблиц с нужной структурой и по заполнению какими-то системными данными. Когда вносятся какие-то изменения в структуру - нужно их, соответственно, сделать и в репозитории. Вообще, перенос изменений в базе данных это отдельный большой вопрос - погуглите "миграция базы данных".
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

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