• Как вести разработку уже рабочего проекта (в продакшене)?

    index0h
    @index0h
    PHP, Golang. https://github.com/index0h
    1. Vagrant, или docker с системой максимально похожей на production сервер. Разработку ведем там.
    2. Если никакая vcs не используется - пи"№;ц конечно, но быстро подключайте, иначе бида обеспечена. Рекомендую git + git-flow.
    3. Правки в БД ТОЛЬКО на основе миграций, при этом создавайте как up, так и down.
    4. Возьмите готовую систему для диплоя, либо напишите свой скрипт для этого. Цель в том, что бы минимизировать человеческий фактор при обновлении продакшна на столько, на сколько это возможно.
    5. Все, что находится в /vendor - обязательно должно быть заигнорировано в vcs, composer.json И composer.lock (спс OnYourLips) должен ссылаться на фиксированные версии пакетов.
    6. Код ОЧЕНЬ-ОЧЕНЬ-ОЧЕНЬ желательно покрыть тестами. Самый кульный вариант - запуск тестов после push изменений в главный репозиторий. Для этого можно использовать связку gitlab + gitlab-ci.
    7. На счет доменов - в чем проблема то? Вынесите домен в конфигурацию, и создайте конфиги для локального, тестового и боевого окружений.
    8. На счет записей в БД: да, они обязаны отличаться. По хорошему на проде руками в принципе можно только смотреть, а записывать нельзя. Для тестовой БД - пишите фикстуры.
    9. сразу подумайте на счет логов: если их over-дофига, имеет смысл использовать системы типа logstash, или sentry.
    Ответ написан
    2 комментария