Как правильно разрабатывать web проект на примере yii2?
Здравствуйте!
Изучаю php и хочется все делать правильно сразу. Сейчас знакомлюсь с Yii2. Пишу свой проект. Обычно при работе с cms перенос на рабочий сервер достаточно прост - переносим файлы по ftp, переносим базу и готово. А как быть со сложными проектами, если хочется постоянно допиливать функционал и заливать изменения на продакшн сервер, но при этом чтобы у пользователей не было каких-то сбоев и т.п и тем более потери данных. Не потерять данные как я понял, помогут миграции. Но пока с ними не очень разобрался они нужны только для командной работы или их нужно использовать в любом случае?
Хотелось бы, чтобы опытные разработчики наставили на путь истинный. Как правильно вести разработку сложного проекта, как правильно делать деплой. Интересует алгоритм и подходы. Разрабатывать на локальной машине или же поднимать виртуальный сервер.
В качестве примера, сделали версию 1.0, она готова к релизу как делаем деплой сначала на какой-то тестовый сервер, а потом уже в продакшн? Допустим, потом готова версия 1.1 как правильно выкатить изменения?
Буду очень благодарен, если посоветует литературу с правильными подходами разработки web-приложений или опишите собственный опыт.
1. Разработка где хотите, хоть на виртуалке, хоть прямо на своей машине.
2. Базу менять только через миграции (хотя бывают исключения, но они очень редкие). Миграции нужны в том числе для автоматизации деплоя.
3. Деплой через специализированные продукты типа Capristrano. Обычно при этом создается отдельная папка на каждый релиз и при желании можно быстро откатиться.