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

13:45 /Зал 2 / RU / Введение в технологию / Скачать презентацию

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

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

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


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

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