Side Effect Injection, или Добродетельные костыли

16:45 /Зал 2 / RU / Хардкор. Сложный низкоуровневый доклад, требующий от слушателя знаний технологии.

Помните тот случай, когда вы случайно (или нет) отправили на продакшн кусочек кода, предназначенный только для теста? Или временно вставили крохотный if’чик, например, с Thread.sleep() или логированием для отладки? Знайте, вы не одиноки. Есть куча реальных задач, после решения которых на продакшн частенько уезжает тестовый/отладочный код, превращаясь там в бомбу замедленного действия, попутно преумножая тех.долг и пятно на карме разработчика.

В докладе мы по косточкам разберем подход Side Effect Injection, который позволит вам внедрять в тестируемое приложение почти любое поведение: задержки, заглушки, логирование, обход безопасности и т.д., но при этом не пачкать репозиторий грязными хаками и даже не пересобирать само приложение.

В ходе разбора полюбуемся вариантами компиляции Java-кода, расковыряем один кейс модификации байт-кода в JVM, препарируем формальную грамматику Java, а затем поиграем со всем этим на примере реального приложения.


Владимир Плизга

Владимир Плизга

Владимир со школьной скамьи болеет программированием и с тех пор успел покодировать на всём: от советских программируемых калькуляторов до современных SCADA-систем в производстве. Но последние 6 лет погружен в разработку бэкенда интернет-банков и сопутствующих сервисов в ЦФТ, где активно топит за микросервисы и прочие модные штуки. Попутно постоянно заморачивается идеями оптимизации сложных задач разработки/тестирования серверного ПО, вынашивает для них решения на пробежках и в бассейне, а затем воплощает их в жизнь, бессовестно испытывая на собственных коллегах.