С какими трудностями столкнулись разработчики при создании ЯRUS

Моя цель - предложение широкого ассортимента товаров и услуг на постоянно высоком качестве обслуживания по самым выгодным ценам.

При создании приложения не все получается идеально с первого раза. Многие разработчики сталкиваются с различными препятствиями. О возникших сложностях при создании приложения и путях их решения рассказал технический директор ЯRUS Дмитрий Илюхин.

— Как возникла идея создать приложение-агрегатор, когда на рынке уже есть крупные конкуренты?

— Изначально собралась команда, участники которой раньше так или иначе взаимодействовали с рекомендательными системами, машинным обучением, сбором и обработкой больших данных. Когда появилась идея разработать приложение, мы хотели взять много информации, вычистить ее от мусора и дать пользователю только полезное. 

Именно поэтому мы сразу обратили внимание на новости. Там множество доверительных источников, журналисты которых хорошо и грамотно пишут. С таким текстом довольно просто работать: он ежедневный, его много.

Тогда мы не думали, что будем конкурировать с кем-то. Мы просто делали то, что умели, применяли свои навыки в новом проекте.

— Как определяли пользовательские сценарии?

— Изначально нас было мало и продукт разрабатывала только техническая дирекция. Тогда у ребят было немного продуктового опыта, в основном – опыт заказных разработок. Не было продуктологов, аналитиков и маркетологов. Поэтому мы применяли свой прошлый опыт и смотрели, как делают другие. Генерация идей была командная, старались действовать по адекватности.

— С какими проблемами столкнулись?

— Мы никогда не работали с такими большими объемами данных. Понятно, что бывают проекты и крупнее, но мы постоянно прирастаем новостями: примерно 60 тысяч в сутки. И первой сложностью стало − как хранить эти новости. 

Сначала мы придумали структуру, видоизменяли её, масштабировали. Когда поняли, что объем данных пошел на миллионы новостей, еще несколько раз пересматривали структуру хранения.

Наша задача была: забрать новость целиком, как она есть в первоисточнике. Поэтому, чтобы ее положить в том же виде, нам дополнительно пришлось писать обработчики изображений, видео, цитат и прочих элементов оригинальных новостей.

Второе, с чем столкнулись, − это поисковая машина. Сначала у нас была не рекомендательная система, а выборка на основе баз данных. И когда новостей стало несколько миллионов, поисковая машина перестала с ними справляться. А когда подключили двухтысячный источник, нам стало еще и сложно складывать в базу. Пришлось писать дополнительные сервисы, которые сначала накапливают новости, а затем заносят в базу. 

Мы захотели развивать логику поиска по новостям и рекомендательную систему. Тогда начали применять различные алгоритмы обработки этих новостей и тегирования. Начали группировать новости. Потом определять их тематики. Мы старались определить по тексту новости, к какой теме она относится, чтобы пользователь выбрал конкретную тематику, а мы уменьшили объем выдачи до интересных ему категорий.

— Какие трудности возникли при разработке приложения?

— Самое интересное, через что нам пришлось пройти, − нас долго не пропускали в AppStore. Мы не знали, что Apple не разрешает пропускать новости про кoрoнавирус. А так как мы писали приложение в 2020 году, это был пик пaндeмии, около 35% всех новостей содержали ключевые слова, связанные с кoрoнавирусом, вакцинацией и пандемией в целом.

Чтобы Apple разрешила нам публиковать такие новости, корпорация потребовала от нас наличие редакции. То есть мы должны были зарегистрироваться как СМИ и иметь физически существующую редакцию. Хотя это не очень понятно, потому что мы публиковали не свои новости, мы их не пишем, а лишь транслируем доверительный источник.

Мы отдельно написали микросервис, находящий все новости по нескольким ключевым словам типа «кoвид» в различных вариациях, и такие новости помечали флагом, что эта новость не должна публиковаться в приложении под iOS, и разделили выдачу новостей на Android и iOS. Если на андроиде было 100% новостей, то на iOS − условно 65%.

— Приходилось ли урезать функционал?

— Изначально у нас в концепции приложения не было требования регистрации. То есть мы не требуем от пользователя, чтобы он передавал свой номер телефона, привязывал соцсети или еще что-то. Это не обязательно, скачал и пользуешься приложением полностью. Но как только ты хочешь что-то персонализировать, опубликовать, оставить лайк или комментарий, тогда мы должны тебя идентифицировать, чтобы под учетной записью сохранять всю информацию.

В связи с этим Apple в приказном порядке заставила нас показывать открытое пользовательское соглашение при первом открытии приложения. Пользователь iOS не имеет возможности пользоваться всем функционалом, пока он не нажмет кнопку «принять».

— Какие сложности были при загрузке в маркеты?

— Много различных требований, особенно у Apple. Много требований к формату изображений, особый формат видео. У него более сложные гайдлайны по выкладке приложений, чем у Android.

Из сложностей − гугл-аккаунт покупается раз и навсегда, а за iOS приходится следить, то есть каждый год покупать подписку за 99 долларов.

Сейчас, чтобы зарегистрировать компанию в AppStore, требуется получить международный юридический идентификатор компании (D.U.N.S.). Он делается платно, но есть возможность сделать его бесплатно и быстро. Сложность была в поиске соответствующей информации.

— На данном этапе приложение выглядит таким, каким его задумывали? Планируется введение новых функций?

— Приложение получилось объемное. Мы заложили в него довольно большой функционал, поэтому оно работает неидеально, нужно много чего дорабатывать. Мы делали сначала функционал, и хоть он и был местами нагроможденный, дизайну приходилось подстраиваться. 

Когда мы будем понимать, что приложение почти закончено хотя бы в какой-то итерации, то пересмотрим весь дизайн. 

Но мы уже сейчас делаем шаги в сторону дизайна, который сильно отличается от того, что было те же три месяца назад. До нового года будет еще несколько итераций, которые сделают приложение понятнее, полезнее и удобнее.

— Нужно концентрироваться на конкретном функционале. Мы с ребятами замахнулись на большой функционал, поэтому нам очень сложно. Продукт должен развиваться поэтапно. А в идеале − если продукт концентрируется на чем-то одном. Например, как TikTok на коротких видео, Instagram на фотографиях и так далее.

Просто у нас изначальная идея не предполагала какой-то концентрации. Мы хотели людям дать массу контента по интересам. Мы работаем и с видео, и с новостями, и с постами пользователей, и афишей, сейчас пытаемся предугадать, какая музыка будет интересна человеку. 

Самое сложное − это разрабатывать много контента вместо того, чтобы сфокусироваться на одном. Я бы не рекомендовал так делать. Мы пошли по сложному пути, но есть пути гораздо проще.

Источник: https://habr.com/ru/post/584708/

Интересные статьи

Интересные статьи

Предыстория Когда-то у меня возникла необходимость проверять наличие неотправленных сообщений в «1С-Битрикс: Управление сайтом» (далее Битрикс) и получать уведомления об этом. Пробле...
Сейчас подписки есть везде: от сервисов для чтения книг или просмотра сериалов до пакетов профессионального софта и утилит. При этом проверенные и классические модели монетизации никуда не де...
Эта статья посвящена одному из способов сделать в 1с-Битрикс форму в всплывающем окне. Достоинства метода: - можно использовать любые формы 1с-Битрикс, которые выводятся компонентом. Например, добавле...
Если Вы используете в своих проектах инфоблоки 2.0 и таблицы InnoDB, то есть шанс в один прекрасный момент столкнуться с ошибкой MySQL «SQL Error (1118): Row size too large. The maximum row si...
Реализация ORM в ядре D7 — очередная интересная, перспективная, но как обычно плохо документированная разработка от 1с-Битрикс :) Призвана она абстрагировать разработчика от механики работы с табл...