Как стать автором
Обновить
348.95
Яндекс
Как мы делаем Яндекс
Сначала показывать

Три движка для одной Лавки: как эволюционировала система поиска в сервисе

Уровень сложности Средний
Время на прочтение 12 мин
Количество просмотров 4.8K

Лавка — сервис быстрой доставки продуктов. Один из важнейших сценариев использования сервиса для покупателя — это поиск. Примерно 30% товаров добавляются в корзину именно из его результатов. А ещё, если в пользовательской сессии был успешный запрос в поиск, вероятность совершения заказа вырастает на 10–15%. То есть, если клиенту нужен конкретный продукт и он его быстро находит через поиск, вероятность совершения заказа становится выше.

Корректная и качественная организация поиска — нетривиальная задача, поэтому иногда приходится придумывать нестандартные решения, чтобы всё работало как нужно. В этой статье я расскажу историю развития поиска в Лавке от самого начала до текущего момента. Нам пришлось объединить всю силу и мощь целых трёх движков, чтобы пользователи получали точный и актуальный результат. Параллельно погрузимся в различные технические детали, проблемы и прочие нюансы.

Найти товары!
Всего голосов 16: ↑15 и ↓1 +14
Комментарии 0

Сказ о том, как два сервера изменили судьбу сетевой команды

Уровень сложности Средний
Время на прочтение 12 мин
Количество просмотров 21K

Привет. Я Марат Сибгатулин — сетевик в Яндексе, работаю в команде Yandex Infrastructure. И сегодня я расскажу вам одну поучительную историю.

Жили были два сервера. Да и не сервера вовсе, а виртуальные машины. Жили не тужили, добро наживали, скриптами разными обрастали. Три года они трудились на славу облака да во имя автоматизации. Пока не наступили чёрные дни для RAID-массива на гипервизоре.

Это присказка, не сказка. Сказка впереди
Всего голосов 58: ↑57 и ↓1 +56
Комментарии 23

Если ваш фронтендер перестал бояться IE6, покажите ему SmartTV

Время на прочтение 7 мин
Количество просмотров 22K

В декабре 2021 года под новогодние праздники в приложении Кинопоиска для SmartTV появился раздел с Яндекс Музыкой. Он позволил пользователям на телевизорах открывать новые для себя треки в Моей волне, включать популярные подборки и слушать собственную коллекцию на телевизорах.

При создании этого раздела я впервые столкнулась с миром SmartTV. Не каждый фронтендер встречает в своей практике подобные задачи, даже несмотря на то, что сейчас разработка под ТВ довольно популярна.

Меня зовут Лена и я фронтенд-разработчик Яндекс Музыки. В этой статье я расскажу про особенности работы SmartTV и разработки под них на примере свежей фичи, которую мы назвали Время клипов. Теперь в приложении вы можете посмотреть клипы любимых артистов и открывать для себя новых исполнителей, которые подходят вам по настроению.

Под катом обсудим ключевые отличия работы фронтенда над вебом и SmartTV, поговорим про оптимизацию и вёрстку и посмотрим на фотографии множества пультов (без пакетиков).

Читать далее
Всего голосов 64: ↑64 и ↓0 +64
Комментарии 85

Lock записей и шквал «пятисоток»: какие шишки мы набили на миграциях в Django и как вам этого избежать

Уровень сложности Средний
Время на прочтение 11 мин
Количество просмотров 4.5K

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

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

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

Читать далее
Всего голосов 12: ↑11 и ↓1 +10
Комментарии 6

«Мышеловка». Как менялись компьютерные мыши и зачем я собрал 170 из них в коллекцию

Уровень сложности Простой
Время на прочтение 9 мин
Количество просмотров 23K


Сейчас кажется, что все мыши одинаковые — две кнопки и колёсико посередине. Разве что в игровых моделях есть подсветка. Но так было не всегда: первые мыши были деревянными, квадратными, с неопределённым количеством кнопок, а устройства до середины восьмидесятых часто не шли в массовое производство.

Привет, я Михаил Павлов. Я уже десять лет коллекционирую компьютерные мыши и трекболы. В этом посте я коротко напомню, какой путь они прошли, и покажу свою коллекцию. Посмотреть на неё вживую можно в Яндекс Музее на выставке «Мышеловка», которая в последние месяцы гастролировала между Москвой и Санкт-Петербургом. В ближайшие пару дней (до 12 июля включительно) её ещё можно увидеть в московском Музее на Павелецкой — познакомиться с большей частью экспонатов, а какие-то даже попробовать в действии.
Читать дальше →
Всего голосов 87: ↑87 и ↓0 +87
Комментарии 134

YandexGPT в Браузере: как мы учили модель суммаризировать статьи

Время на прочтение 7 мин
Количество просмотров 27K
Неделю назад на сайте 300.ya.ru мы продемонстрировали возможности языковой модели YandexGPT применительно к задаче суммаризации текстов. С тех пор многое изменилось: мы обучили новую, более качественную модель, в пересказах которой в 4 раза меньше ошибок. А сегодня мы внедрили её в Яндекс Браузер. Может показаться, что мы просто взяли ту же модель, о которой уже рассказывали сообществу на примере Алисы, и прикрутили к ней кнопку в Браузере. Но не всё так просто. Да, наша базовая модель уже понимала, что такое суммаризация в общих чертах. Но для нас было важно добиться результата в нужной нам форме и с предсказуемым качеством. И вот тут-то начинаются нюансы.

Сегодня поделюсь с Хабром не столько новостью, сколько нашим опытом и советами из области дообучения моделей и промпт-инжиниринга. Расскажу, через что пришлось пройти нашей команде, чтобы модель начала делать то, что от неё ожидают.



Читать дальше →
Всего голосов 47: ↑45 и ↓2 +43
Комментарии 50

Как я написал конвертер 3D-моделей из подручных средств

Время на прочтение 18 мин
Количество просмотров 6.3K

Всем привет! Меня зовут Шико, я работаю в Яндекс Маркете в команде Android-разработки. Сегодня я расскажу историю, которая случилась в 2021 году. Как-то раз я вызвался добавить в мобильное приложение AR (то есть, дополненную реальность). Оно нужно, чтобы товар можно было «примерить» в интерьер.

Сначала я расстроился: показалось, что ничего особо интересного не будет — всего-то подключить ARCore и делов. Но это ровно до тех пор, пока не выяснилось, что большинство файлов моделек было в USDZ-формате, а ArCore на тот момент с ним не работал. То есть, когда на iOS в процессе разработки таких проблем не возникало, нам нужно было придумать способ перевести существующие модельки в другой формат — GLB. Казалось бы, скачай конвертер и нажми на кнопку «Конвертировать». Не тут-то было. 

И в этой статье я расскажу, какие методы конвертации я пробовал, почему они не подошли и с чем не смогли справиться Blender и Unreal Engine. Спойлер: в итоге мне пришлось написать собственный плагин и я покажу его код.

Читать далее
Всего голосов 29: ↑27 и ↓2 +25
Комментарии 10

QA-метрики: когда они могут быть полезны и как их использовать

Время на прочтение 6 мин
Количество просмотров 9.7K

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

Зрелым командам такие метрики ощутимо помогают:

замечать периоды низкого перформанса команды и нехватку ресурсов;

следить за такими показателями, как общая забагованность сервиса, время реагирования на различные события, количество задач, которые одновременно может обрабатывать команда, и за другими важными моментами;

сравнивать показатели работы команд в подразделении перед предстоящим периодом ревью.

Меня зовут Катя, я руковожу службами тестирования Музыки и Букмейта, и в этом посте я хочу рассказать про основные метрики, которые мы используем в команде тестирования Яндекс Музыки, и обсудить, как правильно с ними работать.

Читать далее
Всего голосов 24: ↑23 и ↓1 +22
Комментарии 3

Библиотека MockWebServer-DSL в open-source: делаем конфетку из сетевых запросов в UI-тестах

Уровень сложности Простой
Время на прочтение 5 мин
Количество просмотров 2.1K

Писать стабильные UI-тесты для Android-приложений — непростая задача. Здесь против ваших тестов работают обилие девайсов, нестабильность эмуляторов, многообразие поддерживаемых версий ОС, а ещё — ваши бэкенд-разработчики. Почти все мобильные приложения требуют для своей работы бэкенд и не могут показать даже приветственный экран без подгрузки данных. Поэтому для UI-тестов очень важно уметь приводить бэкенд в нужное для каждого тестового сценария состояние.

Сегодня мы выпускаем в open-source собственную библиотеку MockWebServer DSL. Она помогает удобно писать обработчики запросов на бэкенд в Android-тестах.

И как она работает?
Всего голосов 13: ↑13 и ↓0 +13
Комментарии 0

Где и как можно ускорить приложение на Android

Уровень сложности Средний
Время на прочтение 14 мин
Количество просмотров 7K

Привет! Я Александр Попсуенко, руководитель инфраструктурной команды мобилок Маркета. Сегодня я хочу рассказать, как мы ускоряли наше приложение на Android.

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

Пост рекомендуется к прочтению:

— мобильным разработчикам и техлидам, чтобы почерпнуть идеи для реализации метрик и ускорения приложений;

— продуктовым и техническим менеджерам для осознания, что можно довольно дешёвыми способами ускорить приложение;

— UX‑дизайнерам, чтобы удостовериться, что мобильные приложения должны быть быстрыми и в это нужно вкладываться.

Почерпнуть, осознать, удостовериться
Всего голосов 23: ↑23 и ↓0 +23
Комментарии 9

Compose-recompose: почему происходят рекомпозиции и как уменьшить их количество

Время на прочтение 17 мин
Количество просмотров 11K

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

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

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

Читать далее
Всего голосов 14: ↑14 и ↓0 +14
Комментарии 6

YandexGPT в Алисе: как мы создаём языковую модель нового поколения

Время на прочтение 7 мин
Количество просмотров 41K
Обучение больших языковых моделей — это одно из самых актуальных направлений в машинном обучении. Крупнейшие IT-компании бьются над созданием всё более совершенных моделей. В том числе и Яндекс: мы создаём и применяем в наших сервисах нейросети YaLM уже больше двух лет.

В этом году улучшение моделей стало приоритетным на уровне всей компании. Внутри эта работа известна как проект «Генезис» или YaLM 2.0. Её результатом стал большой скачок в качестве наших моделей.

Новая модель получила название YandexGPT (YaGPT), вы могли впервые попробовать её в Алисе по запросу «Давай придумаем» чуть больше двух недель назад. Сегодня мы обновили YaGPT: Алиса научилась писать ответы с учётом истории предыдущих сообщений. В честь этого хотим рассказать Хабру историю всего проекта. Уже в ближайшее время новая модель станет частью и других сервисов Яндекса.



Читать дальше →
Всего голосов 67: ↑64 и ↓3 +61
Комментарии 82

userver — что мы узнали за полгода в open-source

Уровень сложности Простой
Время на прочтение 7 мин
Количество просмотров 18K
image
Прошло больше полугода с момента выхода фреймворка для C++ 🐙 userver в open-source. За это время мы многое узнали, на многом настрадались, а главное — получили много приятных сюрпризов.

И мы решили об этом написать. Рассказ будет полезен тем, кто ведёт или планирует вести свой open-source проект или занимается контрибьютами. Остальным будет интересно почитать про чужое набивание шишек и что вообще open-source даёт проекту.
Читать дальше →
Всего голосов 66: ↑65 и ↓1 +64
Комментарии 29

Как заставить бэкендера писать фронтенд

Уровень сложности Простой
Время на прочтение 10 мин
Количество просмотров 15K

Всем привет! Меня зовут Иван Ситкин, я бэкенд-разработчик в Едадиле. Сегодня я хочу поделиться с вами историей написания очередной панели администрирования и как из этого мы собрали подходящие подходы и практики.

Для начала давайте вспомним, что же это за панели. Панель администрирования (или админка) — это приложение, которое используется для управления и настройки приложения. То есть это такой продукт для продукта. Панели администрирования нужны для различных целей, например, для создания и редактирования контента, настройки параметров продукта или управления пользователями.

Но иногда в проектах важна скорость и ресурсов на создание админки с привлечением команды фронтенда откровенно не хватает. И тогда бэкендеру приходится брать процесс в свои руки.

А теперь вы готовы погрузиться в эту кроличью нору.

Читать далее
Всего голосов 29: ↑26 и ↓3 +23
Комментарии 70

Как мы придумали и запустили совместные поездки в Яндекс Go

Уровень сложности Простой
Время на прочтение 8 мин
Количество просмотров 12K

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

Меня зовут Полина Белобородова, в Яндекс Go я руковожу командой аналитики новых продуктов в рамках эффективности платформы. И сегодня расскажу про то, как мы придумывали, тестировали и запускали тариф для поездок с попутчиками «Вместе».

Читать далее
Всего голосов 40: ↑36 и ↓4 +32
Комментарии 53

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

Уровень сложности Простой
Время на прочтение 8 мин
Количество просмотров 3.3K

Всем привет! Меня зовут Юля Долгун, я фронтенд-разработчик из Поиска. Одна из моих задач — поддерживать доступность в поиске по товарам для пользователей с различными ограничениями здоровья.

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

Читать далее
Всего голосов 28: ↑28 и ↓0 +28
Комментарии 6

Откуда Карты знают, когда приедет автобус

Время на прочтение 7 мин
Количество просмотров 47K

Раздел «Транспорт» — один из самых популярных в Яндекс Картах: там автобусы, троллейбусы и трамваи перемещаются прямо по карте в реальном времени, а для каждой остановки есть виртуальное табло. Можно посмотреть, сколько ещё ждать транспорт, или понять, когда лучше выходить из дома, чтобы его не пропустить. А если оказались в незнакомом районе — узнать, как быстрее добраться домой, и сразу найти ближайшую остановку или станцию метро.

Меня зовут Антон Овчинкин, я руководитель группы разработки пешеходной и транспортной навигации. Сегодня я расскажу, что у «Транспорта» под капотом, какие алгоритмы отвечают за то, чтобы автобусы появлялись на карте, двигались по ней плавно и реалистично, а прогноз был максимально точным.

Читать далее
Всего голосов 109: ↑107 и ↓2 +105
Комментарии 172

Захватывающая ловля багов, которые портили работу Unbound

Уровень сложности Сложный
Время на прочтение 38 мин
Количество просмотров 12K

Привет, меня зовут Сергей Качеев, я старший разработчик в отделе сетевой инфраструктуры Яндекса. Сегодня я расскажу целый сетевой детектив о том, как мы искали баг, который убивал DNS сервер Unbound. Приготовьтесь, он будет долгим.

Всё началось с того, что мне предложили помочь ребятам из команды DNS найти такие метрики и наборы запросов, по которым будет однозначно понятно, какие настройки влияют на производительность Unbound и какие запросы вызывают у него проблемы.

В самом начале на графиках нагрузочного тестирования я увидел очень плохие результаты: случайным образом абсолютно все запросы нагрузочного теста таймаутились, но сервер, который был под нагрузкой, никак не реагировал на проблему. Как выяснилось позже, по чистой случайности я допустил ошибку в конфигурации нашего плагина Pandora, и в итоге он сам ходил в DNS на каждый запрос, чтобы узнать ip адрес тестируемого сервера. Возможно, это сыграло мне на руку и помогло найти первую из проблем, а потом и вовсе задало вектор поисков остальных багов. А в Unbound их накопилось достаточно.

Читать далее
Всего голосов 95: ↑95 и ↓0 +95
Комментарии 8

Как мы перепридумали сценарии умного дома для Zigbee-устройств

Время на прочтение 5 мин
Количество просмотров 19K
В продажу поступили наши новые устройства с поддержкой протокола Zigbee: обновлённая Станция Макс, Яндекс Хаб и комплект датчиков. Но сегодня на Хабре мы поговорим не о них, а о важном изменении в платформе умного дома, о котором нас многие просили.

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

Под катом я расскажу о том, как это реализовано, какой путь мы прошли и что там с поддержкой протокола Matter.

image

Читать дальше →
Всего голосов 38: ↑37 и ↓1 +36
Комментарии 40

Китайский язык очень сложный. Мы сделали для него перевод видео

Время на прочтение 6 мин
Количество просмотров 22K


Привет, меня зовут Артур Яковлев, я делаю голосовой перевод видео в Яндекс Браузере. Примерно с лета я работаю над тем, чтобы научить Браузер переводить с китайского на русский. Почему мы посчитали это важной и интересной задачей? Дело в том, что китайская часть интернета содержит значительное количество видеоконтента, который за пределами страны почти не смотрят.

Множество диалектов, влияющие на смысл тоны и грамматические нюансы — ряд особенностей китайского усложняют разработку распознавания речи. Сейчас я коротко расскажу читателям Хабра о трудностях языка и объясню, как мы их преодолели.
Читать дальше →
Всего голосов 114: ↑107 и ↓7 +100
Комментарии 56

Информация

Сайт
www.ya.ru
Дата регистрации
Дата основания
Численность
свыше 10 000 человек
Местоположение
Россия
Представитель