Работаю над личным проектом в одиночку, очень часто внедрение новых функций оборачивается ошибками. На сайте уже есть активное сообщество и из-за специфики проекта ошибки очень сильно нарушают работу ресурса. Лояльность падает.
С ноября всё стал сначала делать на тестовом сервере (полный дубликат рабочего), на рабочем развернул git и туда уже вливаю изменения из тестовых веток. Но ошибки всё равно есть, так как видимо я не могу отследить все моменты при тестировании, а хочется внедрять новшества быстрее. Может я слишком спешу?
Можете посоветовать какие-нибудь методологии разработки и внедрения новых фич, существующие в профессиональных проектах. Спасибо.
Есть много литературы на тему Разрабатывания ПО) Самые распространяемые это Waterfall Model, V-Model, Spiral Model. Для подробной инфы советую почитать о каждой системе. Но, Вы как планируете продвигать сам проект, сколько пользователей там будет задействовано в будущем? Самый важный момент это в начале писать требования, чтобы не просто в уме у Вас был план что как должно работать, но и на листе, какие именно функциональные возможности, интерфейс какой, чтобы понятно было не только Вам работать над проектом, но и в будущем кто нибудь помочь смог, на словах что к чему не дело, и не по взрослому(имхо)
Продумайте стратегию как Вы планируете двигаться. Сначала запустите один функционал например. Проверьте его на 100% или 75%. После чего внедряйте другой если времени нету. Мечты и новшества советую внедрять понемногу из-за того что будет все, но работать будут еле по одной. Тише едешь дальше будешь.
Автоматическое тестирование - функциональное и, желательно, нагрузочное. Не обязательно тестировать совсем все, но хотя бы основной функционал, что пользователь может зарегистрироваться, отправлять там ЛС и все такое. Прямо пишите скрипт, который ходит на ваш тестовый сервер GET/POST запросами. Или через Selenium.
Еще можно выкатывать фичи не на всех пользователей сразу, а только на определенный процент. Например, берете X = crc32(login) % 1000, в конфиге пишите, например, N = 5 (то есть, катим на 0.5%) и в коде, отвечающем за новую фичу, смотрите, если X меньше либо равен N, фича работает, иначе - не работает. Когда выкатите на 100% (N = 1000), проверку из кода можно убрать.