Одна из ключевых особенностей работы в Яндексе — это свобода выбора технологий. В Авто.ру, где я работаю, нам приходится поддерживать большой пласт исторических решений, поэтому любая новая технология или библиотека встречается двумя вопросами коллег:
— Насколько это увеличит дистрибутив?
— Как это поможет нам писать меньше и эффективнее?
![][1]
Сейчас мы используем [RxJava][2], [Dagger 2][3], [Retrolambda][4] и [AspectJ][5]. И если о первых трёх технологиях слышал каждый разработчик, а многие даже применяют их у себя, то о четвёртой знают только хардкорные джависты, пишущие большие серверные проекты и разного рода энтерпрайзы.
Передо мной стояла цель ответить на эти два вопроса и обосновать использование AOP-методологии в Android-проекте. А это значит — написать код и показать наглядно, как аспектно-ориентированное программирование поможет нам ускорить и облегчить работу разработчиков. Но обо всём по порядку.
[Запасаемся поп-корном и готовим мозг к загрузке][6]
[1]:
https://habrastorage.org/files/b11/1ea/672/b111ea67255547909ad1cfda06274286.jpg
[2]:
https://github.com/ReactiveX/RxJava
[3]:
http://google.github.io/dagger/
[4]:
https://github.com/orfjackal/retrolambda
[5]:
https://eclipse.org/aspectj/
[6]:
https://habrahabr.ru/post/280117/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut