Всем привет! На связи Дмитрий Берестнев, Chief Data Scientist в HiFi-стриминге Звук. Сегодня я расскажу о том, как мы реализовали систему подбора аудиокниг и зачем это вообще было сделано. В статье мы фокусируемся на принципе рекомендации похожих книг (а подходы для авторов в нашем случае были сделаны аналогично).
Как собрать и внедрить высоконагруженный модуль. Опыт Звука
Привет, Хабр! На связи Ринат Кутуев, iOS-разработчик в платформенной команде HiFi-стриминга Звук. В iOS-разработке уже 5 лет. Успел заложить архитектуру для 3 высоконагруженных приложений, которые стабильно расширяют свой функционал.
Сегодня я поделюсь своим опытом построения сложного модуля на примере сетевого слоя и расскажу, какими инструментами и подходами мы пользовались в процессе работы.
Как создать архитектуру фронтенд-приложения, если ее нет от слова «совсем»
Всем привет! На связи Вадим Королев, архитектор на Web HiFi-стриминга Звук. Сегодня я хочу поделиться своим опытом и рассказать, как создать архитектуру фронтенд-приложения, если ее еще нет в вашей компании.
Каждый разработчик рано или поздно приходит к той степени зрелости, когда его начинают интересовать вопросы архитектуры на своем проекте. При детальном изучении темы оказывается, что все примеры в основном рассматривают что-то на бэкенде, вследствие чего встает вопрос: «А как готовить архитектуру для фронтенда?». Если в вашей команде больше одного человека, стоит с самого начала (независимо от размера проекта) озаботиться этим вопросом.
Борьба с багами, или как мы провели внутренний эксперимент с командой QA
Всем привет! Меня зовут Наташа Бакалдина, и я QA Lead в HiFi‑стриминге Звук. В этой статье я хочу поделиться опытом и рассказать о проведенном в нашей команде эксперименте, в ходе которого одна из метрик статистики по багам внезапно помогла планировать спринты лучше.
Когда полтора года назад я пришла в компанию, то попала сразу на большой редизайн, затрагивающий все экраны и огромное количество логики. Как и любое крупное изменение, это привело к увеличению количества багов, нарастающими с появлением каждой новой фичи сверху.
Но, вот, наконец, редизайн был окончен. Все фичи выпущены, а количество багов не уменьшилось. Мы задумались, в чем же может быть причина? Некачественное тестирование? Непроработанные задачи? Может быть, обычная нехватка времени? Чтобы не тратиться на пустую рефлексию, было решено провести эксперимент, который должен был выявить узкие места, сделать процессы еще прозрачнее, поправить метрики и повлиять на планирование там, где это нужно.
Кластеризация для души или как порадовать пользователя музыкального стриминга на старте
Всем привет! Меня зовут Татьяна Онофрюк, я аналитик в команде персонализации HiFi-стриминга Звук, и сегодня я расскажу про работу нашей команды с рекомендательными системами и кластеризацией по исполнителям и жанрам стриминга.
Лирика в IT, или как мы научились вытаскивать тексты из песен. Опыт Звука
Для того чтобы пользователи музыкального стриминга могли легко находить песни по тематике и смыслу, а система рекомендаций подсказывала наиболее подходящие песни, необходим процесс извлечения лирики. Это подразумевает автоматизированное извлечение и последующий анализ текстов песен: от романтических баллад до хитов диско. Более того, это позволяет эффективно фильтровать контент для различных возрастных групп.
Меня зовут Дмитрий Берестнев, я Chief Data Scientist HiFi-стриминга Звук, и сегодня расскажу, как мы реализовали распознавание лирики.
Как мы перешли с оффсетной пагинации на курсорную, или о проблемах динамической фильтрации
Привет, меня зовут Надежда и я Backend-разработчик в HiFi-стриминге Звук! Занимаюсь всем, что связано с подкастами и немузыкальным контентом (а вы знаете, что в Звуке есть аудиокниги? Разработка нашей команды! PodcaTS, привет!). Какое-то время я также техлидила сервисы, которые отвечали за отдачу мета-информации и всего, что связано с аудио (артисты, релизы, треки, подкасты, аудиокниги) в Звуке.
В процессе работы нашей команде пришлось споткнуться о проблему динамической фильтрации. Сначала мы получали данные, потом их фильтровали, но не знали, сколько отдадим в итоге. Для Звука и отдачи мета-информации эта проблема оказалась очень актуальной.
В русскоязычном сегменте IT то ли никому не приходилось сталкиваться с этой ситуацией, то ли никто не выносил её на обсуждение, поэтому это решили сделать мы. Хочется поделиться своим опытом, помочь кому-то с аналогичными проблемами, а, может, и похоливарить на тему того, как ещё эту проблему можно решить.
Джуны — бесплатны. И ещё 7 заблуждений тимлидов о начинающих специалистах
Меня зовут Антон Марунько, и я тимлид в продуктовых компаниях уже более 5 лет. Сейчас я — iOS Lead в HiFi‑стриминге Звук, а также как консультант помогаю строить и обучать команды в сфере IT и околотехнического профиля. У меня есть и опыт СТО, и кофаундера в ряде проектов. В этой статье я хотел бы поделиться накопленной практикой управления командой и развеять некоторые мифы про работу тимлидов с джунами. Эта история беспокоит меня на протяжении последнего года, так как на консультациях новичков я часто сталкиваюсь с нечеловеческими требованиями к ним без соответствующего признания и вознаграждения.
Логирование во фронтенд-приложениях. Опыт Звука
Логирование во фронтенд-приложениях. Опыт Звука
Всем привет! На связи Роман Савельев, фронтенд-разработчик в команде Звука. В этой статье я хочу поделиться опытом и рассказать, как мы с командой прошли путь от хаоса до выстроенной инфраструктуры и унифицировали работу с логами в собственных веб-сервисах. Я расскажу, с какими проблемами мы столкнулись, как их решали и какие вывели в best practices.
Кстати, в best practices даны ответы на вопросы «зачем», «как» и «что» логировать.
Как создать аудиоплеер. Часть 3. Настройка приложения с аудиоплеером и обработка звука
Вот и снова я! Меня зовут Дмитрий Булгаков, я Android-разработчик в HiFi-стриминге Звук, и это третья часть нашего большого гайда, в котором я рассказываю, как можно создать аудиоплеер в приложении. Мы поговорим о дополнительных настройках приложения с аудиоплеером и аудио эффектах, которые можно применять к звуку.
Как создать аудиоплеер. Часть 2. Использование ExoPlayer
Всем привет! Меня зовут Дмитрий Булгаков, я Android-разработчик в HiFi-стриминге Звук, и я продолжаю рассказывать вам о том, как можно создать аудиоплеер в приложении. Во второй части гайда мы поговорим об использовании ExoPlayer.
Добро пожаловать на разбор!
Как создать аудиоплеер. Часть 1. Что под капотом
Всем привет! Меня зовут Дмитрий Булгаков, я Android-разработчик в HiFi-стриминге Звук, и я расскажу, как можно создать аудиоплеер в приложении. Поговорим об инструментах разработки и устройстве плеера — разберем его «анатомию», компоненты и их применение, а также способы улучшения звука с помощью эквалайзера.
Для вашего удобства гайд разделён на несколько основных частей. В первой расскажу об актуальных инструментах разработки плеера и о том, что у него «под капотом».
Поехали!
Как мы создавали дизайн-систему: опыт компании Звук
Привет, Хабр! Меня зовут Мария Бажина, я Android Developer в компании Звук.
Вот уже полтора года я работаю над дизайн-системой, поэтому знаю здесь каждую мелочь. И в этой статье я хочу рассказать, зачем нам нужна дизайн-система и в каком виде она существует в нашем проекте. А также, что изменилось в архитектуре приложения и коде после ее внедрения.
Спойлер – в результате разработка фич стала быстрее в 2 раза, сборка дизайн-макетов ускорилась в 3-4 раза, а UI приложения удалось избавить от хаоса из рандомных шрифтов и иконок и унифицировать. Подробнее – в статье.
Найти отличия, или внедряем Snapshot-тесты для web. Опыт Звука
Всем привет! На связи Наталья Данилина и Иван Чечиков из Звука. В этой статье мы хотим поделиться опытом внедрения snapshot-тестов для web-приложения — расскажем, что это такое и для каких задач применяется.
Подробности – под катом.
Как обойтись без UX-редактора и сделать текст в интерфейсе понятным?
В процессе разработки продукта или фичи неизбежно возникает необходимость работы с текстом. Если в команде есть UX‑редактор, то именно ему поручается этот этап. Он играет роль дополнительного «мозга» для создания удобного и бесшовного флоу. Кроме того, UX‑редактор обладает высокой продуктовой насмотренностью — через его руки проходит множество макетов, что позволяет ему выявлять потенциальные риски, последствия и пересечения с другими продуктами в компании и на рынке.
Но бывает и такое, что в команде нет UX‑редактора и работу с текстом приходится брать в свои руки. Для таких случаев я решил поделиться своими принципами при работе с текстом, которые помогут вам самостоятельно проверять текст на качество
Как упростить жизнь за 312 коротких шагов: проектируем GraphQL API в микросервисной архитектуре
Звук – HiFi-сервис с большой командой инженеров. Мы используем передовые технологии и современный стек, и экспериментируем, чтобы решать сложные, нестандартные задачи. Одна из технологий – GraphQL.
Эта статья изначально создавалась как гайд по работе с GraphQL для инженеров Звука (системные аналитики, разработчики, QA). При этом статья может быть полезна всем, кто никогда не работал с GraphQL, но очень хочет понять, зачем он может быть нужен, и как поможет решить задачу вашего бизнеса.