Тезисы
Разработка софта невозможна без использования стороннего кода, ведь зачем писать с нуля то, что уже написано до нас и доступно бесплатно?
Однако, представления о мире и профиле нагрузки у разработчиков сторонних библиотек могут быть далеки от ваших. А в том случае, когда код используется в тысячах проектов — приходится принимать спорные решения, касающиеся обратной совместимости. В результате, в библиотеках можно легко наткнуться на неэффективный код. Задача же разработчика — уметь выявлять такие проблемы и исправлять их причины.
Одна из задач, решаемая сторонними библиотеками — логирование. Что может быть проще, чем записать строку в лог? В случае высоконагруженного бекенда, это может оказаться сложной задачей, а неудачный выбор и конфигурация библиотеки для логирования может убить производительность, замедлив программу до однопоточной.
В докладе я расскажу о внутреннем устройстве библиотек логирования, проблемах с производительностью при их использовании, и способах их решения.
Аудитория
Backend-developer, devops-engineer, QA-engineer.
Уровень сложности
Middle.
Презентация (на Я.Диске)
Разработчик в Тинькофф, занимается высоконагруженными сервисами. Ранее разрабатывал JetBrains Rider, занимался в Контуре общей инфраструктурой — системой хостинга приложений. Спикер DotNext, Dump, Codefest, .NET Summit.
Интересуется lock-free алгоритмами и структурами данных, внутренним устройством .NET и операционных систем.