Разработчик интерфейсов

Яндекс — большой и многообразный: у нас сотни проектов с самыми разными командами и процессами. У них есть общие подходы, практики и технологии, но без отличий тоже не обойтись. Рассказываем, как всё устроено, по каким принципам мы создаем веб‑интерфейсы и зачем нам нужны собственные разработки.

Какие технологии использует Яндекс для разработки веб‑интерфейсов

Типовые инструменты
В работе мы нередко используем общепринятые технологии, которые применяются не только в Яндексе, но и в других компаниях.
Языки программирования
В основном используем JavaScript, но большинство нового кода пишем на TypeScript.
Фронтенд-фреймворк
React. На некоторых проектах есть легаси — jQuery. Иногда, в порядке исключения, можно встретить Vue и Angular. А ещё мы постоянно экспериментируем с новыми подходами, чтобы не пропустить очередной виток эволюции фреймворков.
Стейт-менеджер
Самый популярный — Redux. Также можно встретить и MobX, и другие решения, но заметно реже. А многие крупные проекты — например, страница результатов поиска, в силу своей специфики обходятся без специальной библиотеки.
Серверная часть
JavaScript на сервере мы в основном исполняем с помощью Node.js и Express. В последнее время у нас набирает популярность Next.js.
Библиотеки
Не запрещаем использовать сторонние библиотеки калибром поменьше — например, Lodash для вспомогательных функций, Rx.js для реактивного программирования и многие другие. Ответственность за такие технологические решения лежит на каждой отдельной команде и учитывает локальную специфику конкретного проекта.
Сборка клиентского кода
Преимущественно используем Webpack и Babel для совместимости с разным окружением.
Линтеры
Используем много разных линтеров для проверки качества кода: как широко известных (например, ESLint, JSHint, TSLint), так и самописных.
Npm
Для установки пакетов и запуска скриптов в рабочей копии преимущественно используем npm, но встречается и Yarn, и более экзотические варианты.
Собственные инструменты
Иногда технологии, которые мы применяем, отличаются от общепринятых решений на рынке. Не то чтобы мы любили изобретать велосипед — часто мы раньше других сталкивались с проблемами, для которых ещё не существовало надёжных и популярных библиотек.
А дальше события развивались по одному из трёх сценариев:
Делали что-то своё, потом появлялось популярное решение, и мы переезжали — например, у нас долгое время была самописная витрина с компонентами, пока мы не переехали на Storybook.
Находили своё решение, делились им с другими разработчиками, и оно становилось популярным — как это было с БЭМ‑методологией.
Продолжали использовать свою технологию вне зависимости от существующих аналогов: потому что она работает достаточно хорошо, а польза от переезда не окупит затраты.
Коротко о том, какие собственные технологии мы решили оставить, и почему они появились:

Принципы

Доступность

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

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

Конвейер

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

В этом нам помогает конвейер — система сборки, тестирования, деплоймента в разные окружения (dev/test/prod), которая работает без участия разработчика, автоматически по коммиту.

Максимальная кросс‑платформенность

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

Поощряем добычу и распространение знаний в индустрии

Ежегодно проводим десятки обучающих мероприятий по фронтенду и смежным дисциплинам — например, «Яндекс Субботник», «Я 💛 Фронтенд», «Школа Разработки Интерфейсов».

Творческая свобода

Мы не заставляем привязываться к определённой парадигме или паттерну: например, только к ФП или только к ООП. Скорее смотрим на то, чтобы выбранное решение лучше всего помогало справиться с задачей.

Более подробно про технологии в разных продуктовых кластерах

Сергей Бережной

В Яндексе — 16 лет

Успел поработать над Поиском, Почтой, поиском по блогам, Я.ру, Картинками, Видео, внутренними инструментами и многими другими сервисами. Один из двух соавторов БЭМ‑методологии. Руководитель Школы разработки интерфейсов. В последнее время занимается вопросами удобства разработки, найма и обучения.

Михаил Трошев

В Яндексе — 10 лет

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

Сергей Мелюков

В Яндексе — год

Пришёл архитектором фронтенда, а сейчас руководит фронтендом в Яндекс Маркете. Его основная задача — создавать инструменты и инфраструктуру для фронтенд‑разработчиков Маркета.

Андрей Морозов

В Яндексе — 8 лет

Пришел стажёром разрабатывать JS API Яндекс Карт, а сейчас руководит клиентской разработкой Яндекс Лавки, некоторыми внутренними продуктами.

Как попасть в Яндекс

Если вы хотите работать в Яндексе, то у вас есть два пути. Вы можете выбрать себе команду самостоятельно через MultiTrack — программу, которая позволяет попробовать себя сразу в нескольких сервисах Яндекса или присоединиться к конкретной команде.

Также можно сразу пойти на собеседование в ту команду, в которую вы хотите попасть. Вы можете подробнее почитать о том, как мы нанимаем фронтенд‑разработчиков. Открытые вакансии можно посмотреть здесь.

Актуальные вакансии
Mon Apr 14 2025 15:53:47 GMT+0300 (Moscow Standard Time)