Важные понятия и подводные камни логирования Java-приложений на примерах разработчика Яндекса. Мы поговорим о главных понятиях в логировании Java-приложений, без которых не выжить ни одному разработчику.
Я приведу примеры неожиданного поведения приложений из-за хитросплетений логирования из собственной практики, а вы узнаете, как сделать жизнь с логами проще и веселее — насколько это возможно. Цель выступления — поделиться практиками, которые позволят забыть о логировании и заняться действительно интересными вещами.
В большом проекте нельзя просто взять и сделать фичу доступной всем клиентам. Для плавного запуска мы проводим эксперименты, которые требуют вносить изменения вручную — и часто это ведёт к временным издержкам и ошибкам. Чтобы от них избавиться, мы решили автоматизировать подготовку и запуск экспериментов.
В докладе я расскажу, почему мы написали кастомный DSL и как Kotlin помог сделать его компактным и удобным. А ещё о том, какие проблемы нужно решить, чтобы всё работало, как вы задумали.
В Яндекс.Деньгах мы уже шесть лет строим микросервисную архитектуру — дробим монолиты на мелкие сервисы и реализуем новые функциональности в виде отдельных компонентов.
Еще три года назад у нас было семь собственных платформ — четыре для Java и три для JavaScript-стека. Сопровождать всё это было дорого и сложно, а про автоматизацию и говорить не приходилось. Мы устали от такой жизни и создали единую платформу для Java-сервисов на основе стека Spring Boot.
Сегодня у нас всего две платформы, и для них силами разработки написано столько инструментов автоматизации, что процесс тестирования релизов и выкладывания их в продакшн у нас полностью автоматизирован. На пулреквестах теперь почти не бывает холиваров, так что можно быстро начать разработку в любом из 60 с лишним компонентов.
В докладе я расскажу, как мы улучшили процесс тестирования, покрыли большинство компонентов тестами минимум на 80% и как нам удалось всего этого достичь.