контроль версий / ведение разработки локальных копий и рабочих живых копий и баз данных - PullRequest
0 голосов
/ 19 декабря 2011

Это предмет общего обсуждения, но во всех моих исследованиях я не нашел здравого ответа на это.

Я разрабатываю свои сайты в автономном режиме, а затем запускаю их в режиме реального времени через мою учетную запись хостинга.

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

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

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

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

Так что да .. В общем, я ищу решение, чтобы сделать мои процессы разработки более эффективными / подходящими. Есть идеи?

Спасибо

Ответы [ 2 ]

0 голосов
/ 19 декабря 2011

Небольшие дополнения и пояснения к JB

  1. Используйте любую VCS, которая может работать (в хорошем режиме) с филиалами - ваши локальные и производственные системы хорошиКандидаты на отдельные ветви, где вы используете общий код, но у вас есть конфигурация для конкретной ветви.Это потребует некоторых изменений в вашем повседневном рабочем процессе (код в «тесте», слияние завершено с «prod», развертывание / инструментами, а не вручную / только после слияния ...), но это справедливая цена

  2. Изменение рабочего процесса, снова.Как отметил JB - не развертывайте вручную, не развертывайте неправильную ветвь, не развертывайте «prod» до завершения слияния.Но теперь инструменты сборки довольно умны, вы можете проверить такие предварительные условия внутри компоновщика

  3. Просто используйте VCS, возможно, DVCS будет как-то лучше.Я говорю сильное «Нет-нет» для Git как первой VCS, но у вас есть большой выбор даже без него - SVN (плохая ветка | слияние по сравнению с DVCS), Bazaar (не инструмент моей мечты, но, кто знает), Mercurial, Fossil SCM, Monotone

  4. Не работайте вживую, никогда делайте Anyting вне вашего SCM. Один источник изменений - это правило счастливого разработчика.Или вообще не работайте в свободное время, или используйте кодовую базу, которую вы всегда можете переиграть (бесплатный хостинг кода / GoogleCode, SourceForge, BitBucket, Github, Assembla, LaunchPad / или собственный сервер), получите его по мере необходимости, измените, сохранитеразверните

0 голосов
/ 19 декабря 2011
  1. Не развертывайте, просто копируя. Развертывание с использованием сценария (я использую Apache Ant), который будет автоматизировать копирование определенных файлов для каждой среды, замену некоторых значений и т. Д.

  2. Это просто требует строгости. Составьте список задач при разработке и убедитесь, что все изменения на сервере выполнены. Вы также можете проверить процедуру развертывания на подготовительном сервере, который имеет конфигурацию, аналогичную производственному серверу, убедиться, что все в порядке, а затем применить ту же проверенную процедуру на производственном сервере

  3. Просто используйте систему контроля версий. SVN или Git - два свободных кандидата.

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...