ВетМирПрофи часть 2
Продолжая предыдущий пост о технической стороне ВетМирПрофи, хочу отдельно рассказать ещё об одной сложности, которая становится всё заметнее по мере роста проекта. Обновлять систему так, чтобы пользователь этого почти не замечал. Сейчас ВетМирПрофи - это уже не один бот и не одно веб-приложение. Одновременно работают Telegram, ВКонтакте, Max, PWA, административная панель, фоновые задачи, платежи, уведомления, обработка анализов, SOS и другие сервисы. И изменение в одном месте вполне может неожиданно повлиять на другое. Поэтому со временем пришлось серьёзно перестраивать сам процесс разработки и выпуска обновлений. Перед сборкой dev-версии запускаются тесты. Dev и prod разделены. Отдельно контролируются миграции базы данных, постоянные пользовательские файлы и история развёртываний. Хрупкую схему сборки через PreSync hook постепенно заменили более предсказуемым процессом через GitHub Actions. Всё это относится к той части разработки, которую пользователь вообще не должен замечать. Пользователю неважно, что внутри работают Docker, Kubernetes, Redis, PostgreSQL, Vault, Alembic и CI/CD. Он ожидает гораздо более простых вещей: • бот должен ответить; • консультация должна открыться; • видеозвонок должен состояться; • данные питомца не должны исчезнуть после обновления; • PDF должен сформироваться; • уведомление должно прийти; • платёж не должен задвоиться. И чем больше функций появляется в системе, тем сложнее обеспечить это простое снаружи поведение. Наверное, именно здесь для меня лучше всего формулируется задача технического специалиста: вся сложность должна оставаться внутри проекта. Пользователь не должен думать о миграциях базы, отказавшем контейнере, сетевых маршрутах или совместимости очередной интеграции. Перед ним должен оставаться понятный и предсказуемый сервис. А сам ВетМирПрофи продолжает расти. Сейчас это уже карточки питомцев и их медицинская история, документы, анализы с распознаванием, текстовые и видеоконсультации, ИИ-анамнез, SOS, напоминания, платежи, промокоды, служба заботы и отдельные рабочие кабинеты для ветеринарных врачей. И это один из интересных моментов в разработке подобных продуктов: пользователь видит кнопку «Начать консультацию», «Загрузить анализ» или «Позвонить врачу». А за каждой такой кнопкой постепенно появляется своя небольшая история из архитектурных решений, интеграций, тестирования, ошибок и их исправления. И чем проще в итоге эта кнопка выглядит для пользователя, тем лучше мы сделали свою работу.
Подписывайтесь если вас заинтересовал этот кейс. Дальше будет интересно =)
Для пользователей сетки действует промокод SETKA90, который даёт доступ к тарифу «Спокойствие» на 90 дней. Telegram https://t.me/vetassistantbot?start=SETKA90 ВКонтакте https://vk.com/write-235976752?ref=SETKA90&ref_source=promo Max https://max.ru/id780518911073_bot?start=SETKA90 Сайт https://vetmirprofi.ru/?promo=SETKA90