Как стать автором
Обновить
  • по релевантности
  • по времени
  • по рейтингу

Бэкенд для фронтенда, или Как в Яндекс.Маркете создают API без костылей

Блог компании ЯндексРазработка веб-сайтовПроектирование и рефакторингNode.JSAPI

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



Этой осенью Яндекс.Маркету исполняется 18 лет. Все это время развивается партнерский интерфейс Маркета. Если кратко, то это админка, с помощью которой магазины могут загружать каталоги, работать с ассортиментом, следить за статистикой, отвечать на отзывы и т.д. Специфика проекта такова, что приходится очень много взаимодействовать с различными бэкендами. При этом данные не всегда можно получить в одном месте, из одного конкретного бэкенда.


Читать дальше →
Всего голосов 69: ↑61 и ↓8+53
Просмотры50K
Комментарии 40

Как расставить приоритеты в разработке. Опыт внедрения GIST + ICE в Яндекс.Маркете

Блог компании ЯндексРазработка веб-сайтовУправление разработкойУправление проектамиУправление продуктом

Рассмотрим одно из подразделений Яндекс.Маркета. Оно довольно крупное — 85 человек. Внутри подразделения есть несколько команд. Команды либо занимаются функциональными частями Маркета, либо решают какую-то большую пользовательскую задачу. Вот одна из них: изменить сам сервис Яндекс.Маркет и интернет-торговлю в регионах так, чтобы местным пользователям стало удобнее решать свои проблемы.


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


Чтобы лучше отвечать на эти и прочие вопросы, мы внедрили особый подход. В соответствии с ним мы разрабатываем продукты и расставляем приоритеты.


Читать дальше →
Всего голосов 26: ↑24 и ↓2+22
Просмотры9.1K
Комментарии 5

От идеи до релиза. Детальный опыт фронтенда Маркета

Блог компании ЯндексРазработка веб-сайтовИнтерфейсыУправление разработкойУправление проектами


Всегда хочется придумать что-то новое и нужное в своём сервисе. Особенно, если этот сервис любят пользователи. Но откуда брать идеи? Как выделить приоритетные? И как быстро довести идею до продукта, не потеряв ничего важного по пути?

Меня зовут Александр, я руковожу одной из групп разработки интерфейсов в Яндекс.Маркете. Сегодня я расскажу читателям Хабра о нашем опыте решения этих задач. Также рассмотрим пример доставки фичи в продакшн.
Читать дальше →
Всего голосов 33: ↑31 и ↓2+29
Просмотры8.4K
Комментарии 23

Как устроен поиск Яндекс.Маркета и что будет, если упадёт один из серверов

Блог компании ЯндексРазработка веб-сайтовIT-инфраструктураСерверная оптимизацияОблачные сервисы
Привет, меня зовут Евгений. Я работаю в инфраструктуре поиска Яндекс.Маркета. Хочу рассказать сообществу Хабра о внутренней кухне Маркета – а рассказать есть что. Прежде всего, как устроен поиск Маркета, процессы и архитектура. Как мы справляемся с внештатными ситуациями: что случится, если упадёт один сервер? А если таких серверов будет 100?

А ещё вы узнаете, как мы внедряем новую функциональность на куче серверов сразу. И как тестируем сложные сервисы прямо в production, не доставляя пользователям никаких неудобств. В общем, как устроен поиск Маркета, чтобы всем было хорошо.


Читать дальше →
Всего голосов 32: ↑31 и ↓1+30
Просмотры11K
Комментарии 14

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

Блог компании ЯндексРазработка веб-сайтовТестирование IT-системТестирование веб-сервисов


Всем привет, меня зовут Сергей. Я занимаюсь тестированием фронтенда Яндекс.Маркета. Знаю, что среди читателей Хабра много IT-специалистов, которые как-то связаны с релизным процессом и тестированием. У меня к вам вопрос. Бывало ли в вашей практике так, что фичи долго не катятся в продакшн? Знакомы ли вам раздутые релизы и их объёмные проверки?

Думаю, такое было у каждого. Я пришёл в Яндекс 3 года назад, наша команда была совсем молодой, процессы были налажены не полностью. И я столкнулся с этими проблемами лицом к лицу.
Читать дальше →
Всего голосов 31: ↑27 и ↓4+23
Просмотры19K
Комментарии 25

Как оценить ёмкость сервиса и не упасть под нагрузкой

Блог компании ЯндексРазработка веб-сайтовТестирование IT-системСистемное администрированиеТестирование веб-сервисов


Рано или поздно любому растущему сервису приходится оценивать свои технические возможности. Сколько посетителей мы в силах обслужить? Какова ёмкость (она же capacity) системы? Не добрались ли мы до предела и не упадём ли, если привлечём ещё несколько тысяч пользователей? Сколько дополнительных вычислительных ресурсов заложить в бюджет на следующий год, чтобы соответствовать планам роста?

Ответы можно получить аналитическим путём, адресовав вопросы опытному разработчику/DevOps/SRE/админу. Достоверность оценки зависит от огромного числа факторов: начиная с темпов наполнения системы функциональностью и графа взаимосвязей между компонентами и заканчивая временем, которое эксперт с утра провёл в пробке. Чем сложнее система — тем больше сомнений в адекватности аналитической оценки.

Меня зовут Максим Куприянов, вот уже пять лет я работаю в Яндекс.Маркете. Сегодня я расскажу читателям Хабра, как мы учились оценивать ёмкость наших сервисов и что из этого вышло.
Читать дальше →
Всего голосов 21: ↑20 и ↓1+19
Просмотры8K
Комментарии 9

gRPC в качестве протокола межсервисного взаимодействия. Доклад Яндекса

Блог компании ЯндексJavaC++APIМикросервисы
gRPC — опенсорсный фреймворк для удаленного вызова процедур. В Яндекс.Маркете gRPC используется как более удобная альтернатива REST. Сергей Федосеенков, который руководит службой разработки инструментов для партнеров Маркета, поделился опытом использования gRPC в качестве протокола для построения интеграций между сервисами на Java и C++. Из доклада вы узнаете, как избежать частых проблем, если вы начинаете использовать gRPC после REST, как возвращать ошибки, реализовать трассировку, отлаживать запросы и тестировать вызовы клиентов. В конце есть неофициальная запись доклада.

— Сначала хотелось бы познакомить вас с некоторыми фактами про Яндекс.Маркет, они будут полезны в рамках доклада. Первый факт: мы пишем сервисы на разных языках. Это накладывает требования по наличию клиентов для сервисов.
Читать дальше →
Всего голосов 38: ↑34 и ↓4+30
Просмотры57K
Комментарии 12

Как переписать фронтенд нагруженного проекта и не потерять главного

Блог компании ЯндексРазработка веб-сайтовИнтерфейсыУправление разработкойУправление проектами

Обложка статьи


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


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


Знакомо? Если да, то вы в непростой ситуации. Она закономерно возникает в большинстве проектов, которые за годы своего существования накопили достаточный объём legacy.

Читать дальше →
Всего голосов 32: ↑30 и ↓2+28
Просмотры15K
Комментарии 17

Логирование и трассировка запросов — лучшие практики. Доклад Яндекса

Блог компании ЯндексРазработка веб-сайтовИнтерфейсыПромышленное программированиеМикросервисы
В Яндекс.Маркете большая микросервисная архитектура. Браузерный запрос главной страницы Маркета рождает десятки вложенных запросов в разные сервисы (бэкенды), которые разрабатываются разными людьми. В такой системе бывает сложно понять, по какой именно причине запрос упал или долго обрабатывался.


Анатолий Островский megatolya объясняет, как его команда решила эту проблему, и делится практиками, специфичными для Маркета, но в целом актуальными для любого большого сервиса. Его доклад основан на собственном опыте развёртывания нового маркетплейса в довольно сжатые сроки. Толя несколько лет руководил командой разработки интерфейсов в Маркете, а сейчас перешёл в направление беспилотных автомобилей.
Читать дальше →
Всего голосов 18: ↑15 и ↓3+12
Просмотры11K
Комментарии 7

Релизный поезд. Доклад Яндекса

Блог компании ЯндексРазработка мобильных приложенийРазработка под AndroidТестирование мобильных приложений
Релизные процессы в разных командах Яндекса (да и в любых больших IT-компаниях) устроены похожим образом, но отличаются во многих деталях. У мобильных разработчиков своя специфика: на их релизы влияет порядок выкладки в App Store и Google Play. Android-разработчик Дмитрий Поляков DmPolyakov рассказал о процессах вокруг себя — как его команда отправляет по расписанию релизный поезд, как запускать внеплановые релизы, добавлять вагончики в уже уехавший релиз и что делать, чтобы не сойти с рельс.


— Всем привет, я Дмитрий Поляков, Android-разработчик мобильного приложения Беру.
Читать дальше →
Всего голосов 11: ↑9 и ↓2+7
Просмотры4.7K
Комментарии 8

Как не держать лишнее железо и справляться с ростом нагрузки: внедрение graceful degradation в Яндекс.Маркете

Блог компании ЯндексРазработка веб-сайтовПоисковые технологииСерверная оптимизацияСерверное администрирование

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

Читать далее
Всего голосов 27: ↑25 и ↓2+23
Просмотры4.9K
Комментарии 18

Сага о типизации и тайпчекинге для JavaScript

Блог компании ЯндексJavaScriptC++KotlinTypeScript

Привет! Хочу поделиться своими мыслями по, казалось бы, простой теме — типизации. В частности, поговорить о тайпчекинге в JavaScript.

Часто люди воспринимают типизацию как эдакую серебряную пулю, которая защищает от всех проблем. Но это не так, часто ожидания от типизации неоправданны, а простота таких инструментов, как TypeScript, обманчива и слишком переоценена.

Это не типичная статья из серии «Изучаем TypeScript», а, как мне кажется, фундаментальная история. Мы начнем с основ, поговорим о данных, о способе их хранения, а затем перейдем к типизации и посмотрим, как она влияет на работу программы.

Читать далее
Всего голосов 30: ↑28 и ↓2+26
Просмотры6.9K
Комментарии 7

Быстро разрабатываться и не падать: инструменты и опыт поиска Маркета. Доклад Яндекса

Блог компании ЯндексПоисковые технологииПромышленное программированиеТестирование веб-сервисов
Поговорим о взаимодействии разработчика с ручными и автоматическими тестировщиками. Тимлид команды разработки в Маркете Юрий Акатов yuraaka рассказал о том, как создать платформу модульных автотестов и интегрировать её в процесс релиза, о проблемах нагрузочного тестирования и автоматизации, а также об отладке кода на продакшене и минимизации ущерба от непойманных багов, которые прокрадываются в релиз.



— Всем привет. Меня зовут Юра, я около семи лет работаю в поиске Маркета. Сегодня мы с вами поговорим о нашем опыте, о том, как мы организовали процессы и инструментарий, чтобы быстро разрабатываться и не падать.
Читать дальше →
Всего голосов 12: ↑11 и ↓1+10
Просмотры2.1K
Комментарии 1

Как катать релизы несколько раз в день и спать спокойно. Доклад Яндекса

Блог компании ЯндексJavaАнализ и проектирование системПромышленное программирование
Высокие темпы разработки сопряжены с рисками, влияющими на отказоустойчивость и стабильность — особенно если хочется экспериментировать и пробовать разное. Разработчик Маркета Мария Кузнецова рассказала о релизном цикле своей команды от и до, а также о мониторингах и других вещах, позволяющих обновлять сервис со скоростью три релиза в день.



— Всем привет! Я представляю бэкенд-разработку курьерской платформы. Поговорить хочу о том, как нам удается, с одной стороны, двигаться быстро, а, с другой стороны, не потонуть в ворохе и потоке проблем и ошибок.
Читать дальше →
Всего голосов 19: ↑19 и ↓0+19
Просмотры5.2K
Комментарии 3

Как и зачем мы создаём собственную курьерскую платформу

Блог компании ЯндексАнализ и проектирование системРазработка под e-commerce
Всем привет, меня зовут Алексей Остриков, я руковожу разработкой в Яндекс.Маркете. Когда-то я много-много писал код, затем полтора года руководил группой бэкенда одного из сервисов Маркета, а сейчас отвечаю за разработку курьерской платформы Маркета.

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


На фото — команда курьерской платформы десять месяцев назад. В те времена она помещалась в одной комнате. Сейчас нас стало в 5 раз больше.

Читать дальше →
Всего голосов 54: ↑40 и ↓14+26
Просмотры8.6K
Комментарии 18