godsplane
@godsplane

Какой подход при разработке крупных проектов на локалке лучший?

На примере вп.
Есть статик файлы и есть бд. Я разрабатываю у себя на компе сайт выгружаю его на хостинг заказчику.
Через 2 месяца он мне просит поменять цвет шрифта, а у меня там все завязано на webpack/gulp scss, babel etc, то есть просто поменять пару строк через хост вряд ли выйдет. Что в таком случае делают?Если я еще могу через git или что-то еще деплоить проект со своего компа на хостинг в считанные секунды. то как быть с БД?Ее же просто так не сдеплоишь, а если на локальном сервере будут какие то изменения в бд, то они просто затрутиться.
В общем какой подход к разработке сайтов с бд и их постоянной поддержке используется?
Чтобы желаьно всегда работать из под локальной машины.
  • Вопрос задан
  • 126 просмотров
Решения вопроса 1
@Akela_wolf
Extreme Programmer
Эти подходы не только для крупных проектов, они вообще для любых проектов.

  1. БД обновляется через миграции. То есть, вы пишете SQL-скрипты, которые нужно выполнить в БД (создание новых таблиц, новых колонок, добавление записей в справочные таблицы, удаление ненужных более колонок и т.д.), а система миграции (вот не в курсе есть ли такая у WP, но совершенно точно есть у более продвинутых Laravel/Doctrine) контролирует что скрипты миграций были выполнены (и выполнены в правильном порядке). Можно скрипты прокатывать и руками, но в таком случае всегда есть вероятность ошибки.
  2. Разделение исходного кода и собранного кода. У вас есть исходный код и работает разработчик с исходным кодом проекта. Тут путаница возникает в том числе потому, что у PHP исходный код и исполняемый код - суть одно и тоже. Но концептуально разделять это стоит. После того как исходный код написан, выполняется сборка (в частности на этом этапе отрабатывают SCSS/gulp/webpack и т.п. инструменты) и получается код для загрузки на сервер. Поэтому задача "поменять цвет кнопки" решается изменением одной строчки в исходном коде, затем пересборкой и перезаливкой собранного кода на сервер
  3. Пересборку и перезаливку можно делать вручную. Но лучше если этим будет заниматься CI-сервер. Бесплатно CI предоставляет, например, гитлаб. Насчет гитхаба/битбакета не в курсе, не интересовался. Суть в том, что при изменении исходного кода в репозитории, автоматически (или вручную) запускается некоторый процесс (pipeline), выполняющий сборку-тестирование-деплой новой версии. Разумеется, чтобы это все работало сначала придется потрудиться, разобраться, написать нужные скрипты и конфиги. Но для большого проекта это незаменимый инструмент.
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

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

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