Профессиональная конференция разработчиков высоконагруженных систем

Байт-код — это просто! Как сделать Dependency Injection по-настоящему быстрым

Производительность мобильных приложений

Java
Разработка библиотек, включая open source библиотеки
Технологии и языки для Android: Java, Kotlin
Оптимизация

Доклад принят в программу конференции

Мнение Программного комитета о докладе

На примере своего DI-фреймворка докладчик покажет, какую магию можно делать, манипулируя байт-кодом. И какую магию реализуют в других инструментах.

Целевая аудитория

Android-разработчики. Java-разработчики. Те, кому интересно послушать про Java bytecode/JVM.

Тезисы

Два года назад мы в Яндекс Маркете начали разрабатывать свой DI-фреймворк — Scout. Это легковесный фреймворк, который предоставляет выразительный Kotlin DSL. Он не генерирует код, а делает всю работу в рантайме. Недавний переход на эту библиотеку привел к замедлению нашего приложения, но мне удалось ее ускорить, применив технологию модификации байт-кода.

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

Григорий Юрков

Яндекс Маркет

Android-разработчик, работает в Яндекс Маркете 2 года. В мобильной разработке с 2017 года. Любит изучать Java и Kotlin и копаться в низкоуровневых технологиях, в том числе в байт-коде.

Яндекс Маркет

Маркет позволяет покупателям заказывать товары прямо из дома и получать заказы по всей стране, а партнёрам — развивать свой бизнес, повышая продажи и привлекая новых клиентов. Для этого команда Маркета строит архитектуру так, чтобы можно было быстро делать новые фичи и не ломать важные сценарии, учится выдерживать многократный рост нагрузки и не перерасходовать ресурсы, следит, чтобы сайт Маркета работал как надо. У них есть целый арсенал технологий: микросервисы и микрофронты, тыквы и gracefull degradation, отложенная обработка запросов и автоматические системы нагрузочного тестирования. Изменяют архитектуру всех сервисов Маркета и помогают продуктовым командам быстро и безопасно развиваться. В Маркете множество различных направлений и разнообразных задач — от инфраструктурных до продуктовых. Разрабатывают высоконагруженные и отказоустойчивые сервисы, а чтобы измерять полезность изменений, используют A/B-тестирование.

Видео