Студенты ФИИТ УрФУ почти полностью переписали платформу YOURdle — сервис для создания игр по мотивам Wordle без навыков программирования. Вместо фронтенда на чистом HTML, CSS и JavaScript команда перешла на TypeScript и React, а на бэкенде сохранила C#, ASP.NET Core, EF Core и PostgreSQL. Для российских разработчиков это вполне узнаваемый кейс: учебный MVP может успешно пройти защиту, но оказаться слишком хрупким, когда им начинают пользоваться живые люди.
О работе над проектом сообщает Habr / Карьера. Идея платформы YOURdle появилась у команды в начале четвёртого семестра: они хотели одновременно закрыть проектный практикум и экзаменационное задание по веб-разработке. Условия экзамена фактически определили клиентскую часть: требовалось использовать только HTML, CSS и JavaScript, без фреймворков и плагинов. Серверную часть студенты сделали на знакомом C#, а в качестве базы данных выбрали PostgreSQL — во многом из-за распространённости, документации и готовой интеграции с EF Core.
Продукт должен был позволять пользователю собирать собственные вариации Wordle: загадывать не только слова, но и, например, фильмы, книги, игры или персонажей. В первом прототипе команда стремилась добавить побольше возможностей: изображения в полях, коды игр, ограничения на создание игр, сравнения по принципу «больше-меньше». Но набор идей не превратился в удобный сервис. Авторы признают проблемы с интерфейсом, адаптацией под мобильные устройства, незавершённой стилизацией и логикой взаимодействия. Один из пользователей описал опыт коротко: после нескольких нажатий стало непонятно, что происходит и как продолжать.
Спустя полгода команда вернулась к проекту уже после другого семестрового фронтенд-проекта и стажировок части участников. Главный вывод оказался не про модный стек, а про цену ранних архитектурных компромиссов. Чистый JavaScript помог разобраться в DOM и основах браузерной разработки, но оказался неудобным для сопровождения. Поэтому фронтенд решили написать заново на TypeScript и React — технологии, с которой студенты уже работали на учебном курсе и которую чаще встречают в вакансиях.
Бэкенду тоже досталась масштабная переделка. В первоначальной версии добавление нового типа поля при создании игры или функции тегов затрагивало несвязанные части кода: ответственность между компонентами была распределена плохо. API, как признаются авторы, проектировали скорее по ощущению, чем по правилам. В новой итерации команда решила привести интерфейсы к REST-подходу и пересмотреть архитектуру так, чтобы новые возможности не требовали каскадной правки всего приложения.
Из первоначальных решений без смены технологии пережила база данных. PostgreSQL не стала узким местом, не потребовала отдельной настройки и оставалась простой в интеграции. Зато схему БД всё равно переработали: удалили устаревшие поля и таблицы, оставили место для будущих функций. Это важная деталь для начинающих команд: выбор СУБД сам по себе редко спасает или губит продукт. Куда чаще проблемы приходят из модели данных, связности кода и неясных сценариев пользователя.
Во второй версии платформа YOURdle получила другой приоритет: не максимальное число механик, а понятные UX и UI, мобильный сценарий и поддерживаемый код. Команда также поставила цель довести сервис до состояния, в котором его можно развивать как коммерческий продукт. Для студенческих проектов это полезная смена оптики: оценка на защите подтверждает, что решение работает в заданных условиях, но не отвечает на вопрос, сможет ли оно жить после первой демонстрации.
История YOURdle хорошо показывает границу между прототипом и продуктом. Переписывание не всегда означает провал первой версии: иногда MVP честно выявляет, какие функции никто не понимает, какие ограничения навязаны учебным заданием и где архитектура перестаёт выдерживать следующий запрос. Следующий экзамен для команды — не выбор очередной технологии, а способность не повторить тот же цикл, когда у платформы появятся новые пользователи и требования.