Доклады конференции YappiDays'18
Купить билет

Как устроен полнотекстовый поиск

Алексей Бичук
Каждый день мы сталкиваемся с поиском различных данных. Почти на каждом веб-сайте с большим количеством информации сейчас есть поиск. Поиск есть в домашних компьютерах, в мобильных телефонах, в различного рода программном обеспечении. Конечно, если спросить любого разработчика про поиск с точки зрения технологий, на ум сразу придет elasticsearch, lucene или sphinx. Сегодня я хочу заглянуть «под капот» полнотекстового поиска и разобраться в первом приближении, как же он работает.
Full text search
Machine Learning
High Load

Прагматическое профилирование Java приложений

Алексей Рагозин
В экосистеме Java нет недостатка в профайлерах, как коммерческих, так и бесплатных. Однако, если перед вами проблема, связанная с производительностью Java кода, просто взять профайлер не достаточно, необходимо уметь им правильно пользоваться. В докладе вы узнаете о возможностях и ограничениях, Java профайлеров (в первую очередь бесплатных), а так же о том, как эффективно их применять в зависимости от проблемы, которую вы решаете.
Производительность
Java

Самозванцы, выгорание, границы

Анастасия Калашникова
  • Самоощущение себя, как самозванца в профессии – что это значит и почему такое происходит;
  • Как неуверенность в своих профессиональных навыках ведет к выгоранию, и чем оно страшно;
  • Взаимосвязь между неустойчивыми границами и чувством самозванца;
  • Что со всем этим делать.
Психология в IT

Опыт разработки статического анализатора кода

Андрей Карпов
Один из основателей проекта PVS-Studio расскажет об опыте разработки статического анализатора кода C++. У инструментов статического анализа кода существует "проблема айсберга". От пользователей скрыты сложные механизмы анализа кода, и иногда им кажется, что статические анализаторы – это просто какие-то утилиты, ищущие опечатки с помощью регулярных выражений. Автор доклада постарается в общих чертах описать, как всё обстоит на самом деле. Он покажет на примерах, почему нормальный анализ с помощью регулярных выражений нереализуем, что такое Data Flow анализ, а также расскажет о других технологиях, применяемых при анализе кода. Вкратце будет затронут вопрос использования нейронных сетей, обсуждение которых сейчас является очень модной темой, и рассказано, почему с точки зрения анализа кода отношение к этому направлению является очень скептическим.
Алгоритмы
Статический анализ кода
С++
Нейронные сети

Kotlin DSL за час

Антон Архипов
Язык Kotlin дает набор инструментов, который позволяет довольно легко построить собственный проблемно-ориентированный язык. Уже есть довольно много примеров использования Kotlin DSL для Java приложений. Например DSL на Kotlin можно встретить в Gradle, Ktor, TeamCity, Spring WebFlux и др. Каждой задаче свой DSL! Мы рассмотрим, как при помощи синтаксического сахара в Kotlin можно создать свой DSL поверх уже существующего кода на Java.
Kotlin
DSL
JetBrains

Мастер-класс «SonarQube: от установки до анализа production-кода»

Филипп Хандельянц и Святослав Размыслов
SonarQube представляет собой открытую платформу для обеспечения непрерывного контроля качества исходного кода. Она поддерживает большое количество языков программирования, позволяет удобно визуализировать результаты анализа и получать отчеты по множеству метрик. В общем виде SonarQube позволяет отследить динамику развития проекта во времени.
Одна из замечательных возможностей платформы - аккумуляция результатов анализа на одном проекте от нескольких инструментов по поиску ошибок. Семинар нацелен на демонстрацию развертывания сервера SonarQube с последующей загрузкой и проверкой проекта различными статическими анализаторами кода.
SonarQube
Статический анализ кода
Качество кода

Массовая оптимизация запросов PostgreSQL

Кирилл Боровиков
Как оптимизировать производительность запросов в PostgreSQL, если серверов - сотни, а баз - тысячи?
Производительность
Базы данных
PostgreSQL

Эволюция архитектуры nopCommerce

Андрей Мазульницын
Сегодня nopCommerce - одно их самых популярных ASP.NET решений с открытым исходным кодом, на основе которого работает более 50.000 сайтов.
В докладе вы узнаете о том, как менялась архитектура продукта за последние десять лет. Как мы переходили на .NET Core, с какими сложностями столкнулись, и как их решали. Что стоит использовать в open-source, а чего лучше избегать. А также с какими сложностями и вызовами мы столкнулись за эти годы.
Будет рассказано, как можно зарабатывать на бесплатном продукте и сколько.
Open Source
Архитектура
.NET
.NET Core

Эффективная работа с IntelliJ IDEA

Антон Архипов

IDE — сложнейшие «комбайны» для работы с кодом. Даже сами разработчики IDE говорят, что узнают о некоторых возможностях только когда читают код. А как часто вам случалось подсказывать коллеге, что не стоит ползать мышкой по контекстным меню, а лучше решить эту задачу путём нажатия простой комбинации клавиш? Зачастую IDE действительно предоставляют так много возможностей, что трудно охватить их более-менее структурно.

В этом докладе:

  • Обзор возможностей для настройки и использования IDE,
  • новшества последних релизов,
  • и много-много комбинаций клавиш.
Intellij IDEA
JetBrains

Open Source Distributed Machine Learning Library для Apache Ignite

Алексей Зиновьев

Что за скрывается за фасадом хайповых слов? Зачем нужна еще одна библиотека машинного обучения? Как начать делать pull request для популярной тулы? Доклад для тех кому интересно машинное обучение, написание библиотек для open source, распределенные вычисления и задачи, которые приходится решать в ходе разработки подобных библиотек.

В ходе доклада будет показано на каких принципах работает Apache Ignite ML, что там внутри и чем это отличается от Spark ML, Flink ML, scikit-learn, Smile и прочих.

Apache Ignite ML
Machine Learning
Open source

Тестирование: как забыть о проблемах с Selenium

Иван Крутов
Разрабатываете веб-приложение? Пишете функциональные тесты с использованием Selenium Grid? Мучаетесь от постоянных падений и нестабильной работы самого Selenium? В этом докладе я познакомлю вас с новым open-source инструментом Selenoid, после установки которого вы, наконец, начнете спокойно спать по ночам.

  1. Selenium - это стандарт браузерной автоматизации, но текущая реализация неудобная и неэффективная
  2. Почему Docker и изоляция в контейнерах - незаменимый инструмент для Selenium
  3. Selenoid - новая эффективная реализация Selenium протокола
  4. Как быстро попробовать
  5. Что он умеет: VNC, запись видео, запись логов, заливка в S3, мобильные платформы
  6. Как масштабировать решение. Про балансировку нагрузки и сервер Ggr.
Selenium Grid
Selenoid
Автоматическое тестирование

Проектирование, разработка и эксплуатация высоконагруженной системы онлайн репликации >500 ТБ и 1 млрд. файлов клиентов между континентами: Amazon S3 (США) - облако Mail.ru (Россия)

Александр Сербул
В докладе расскажем об особенностях lambda-архитектур, платформе микро-сервисов Amazon Lambda, а также подводных камнях и победах с Node.JS и многопоточной Java. Затронем тему эффективной разработки и тестирования надежного и устойчивого многопоточного кода на Java. Поделимся опытом организации промежуточного дифференциального хранилища и непростым выбором между LMDB (lightning memory-mapped database), LevelDB (используется в Bitcoin blockchain), Apache Derby и Berkeley DB. Подробно расскажем о тонкостях использования инфраструктуры очередей на базе Amazon SQS, NoSQL в DynamoDB и мониторинге системы для предотвращения потерь данных клиентов и минимизации рисков последствий отказов и аварий датацентров. Разберем практику применения алгоритмов кластерной координации на примере ZooKeeper/Curator для масштабирования приложения.
Доклад будет полезен разработчикам высоконагруженных и многопоточных систем, работающих с большими объемами данных в жестких условиях обеспечения высокого уровня надежности и отказоустойчивости. Также информация будет полезной менеджерам, решающим профильные задачи сохранения и репликации данных в распределенных облачных проектах.
AWS
Архитектура
Производительность

Docker Driven Development

Андрей Копылов
Бытует мнение, что docker сложен и нужен только для использования на проде. И даже там он нужен только корпорациям.
Я попробую доказать, что docker может и должен использоваться в процессе разработки на компьютерах разработчиков. Это утверждение верно даже если на проде у вас нет и не будет docker-а.
Docker
DevOps

Микросервисы Netflix и Kubernetes

Владимир Ильмов
Популярность облачных сервисов очень выросла за последние несколько лет, в данном докладе я сделаю обзор решений для разработки облачных сервисов.
Что объединяет kubernetes, docker swarm, azure и aws?
Чем занимается Netflix и зачем они сделали свой стек?
Подробнее расскажу на подходе cloud native сервисов и технологического стека Netflix, роль Eureka, Ribbon, Zuul.
Поделюсь опытом и попытаюсь беспристрастно сравнить преимущества и недостатки.
Kubernetes
Cloud

Безопасная разработка на потоке, или Как улучшить безопасность ПО без отрыва от производства

Алексей Жуков
Когда разработка ставится на поток из-за высокого спроса на услуги и продукты, все больше разработчиков стремятся выстроить ее более гибко и эффективно, внедряют процессы непрерывной интеграции и поставки (CI/CD). Обеспечение безопасности разрабатываемого ПО — неотъемлемая часть такого процесса. Нужно точно и без отрыва от производства определять и устранять риски безопасности — уязвимости. Но как показывает практика, здесь есть две проблемы. Первая — анализ качества кода ошибочно считают достаточной мерой для проверки ПО в том числе на риски безопасности. Вторая — те, кто понимают, что этого недостаточно и прибегают к инструментам анализа защищенности сталкиваются с трудностью: мало просто найти уязвимости, их нужно верифицировать (подтвердить, что это не ложное срабатывание), ведь только в этом случае уязвимость можно исправить. Усугубляет проблему тот факт, что верификация в большинстве случаев делается вручную, а с учетом того, что число уязвимостей может достигать сотен и тысяч, не просто эффективность, но в целом целесообразность поддержки процесса CI/CD оказывается под большим вопросом.
В своем докладе я расскажу, как сделать так, чтобы в реалиях непрерывности процесса, больших объемов и горящих дедлайнов дефекты безопасности не остались незамеченными, а процесс их верификации не превратился в бутылочное горлышко. Мы подробно поговорим о том, как грамотно автоматизировать процесс обеспечения безопасности ПО, не снижая — а даже повышая эффективность выполнения основных задач.
Информационная безопасность
Continuous Integration

Distributed Tracing 101

Михаил Кабищев
В последнее время тема distributed tracing становится все более и более популярной. В этом докладе я расскажу про:
  • историю появления систем для distributed tracing
  • opentracing / OpenCencus
  • какие задачи можно и нельзя решить с его помощью
  • практические советы по внедрению distributed tracing в вашу систему

Распределенные системы
Мониторинг

Ещё один подход к предоставлению Kubernetes кластеров как PaaS

Андрей Евтеев
Сейчас возрастает популярность микросервисной архитектуры. Мы разработали платформу оркестрации на основе Kubernetes и Docker для запуска микросервисных приложений и их быстрого развертывания на несколько регионов.
Для этого мы добавили от себя:
  • несколько классов хранилищ,
  • балансировку на двух уровнях,
  • централизованный сбор и обработку логов и визуализацию с помощью kibana
  • сделали возможным сбор широкого набора метрик (CPU, MEM, storage, network) c визуализацией,
  • Docker VM
  • удобный дашборд для пользователей

И мы расскажем, как мы это сделали и зачем...
Распределенные системы
Kubernetes
Docker

Как работает браузер

Надир Джилкибаев и Денис Лобанов
Пожалуй, браузер является самым часто используемым приложением на компьютерах и мобильных устройствах. Но о том, как работает браузер, знают немногие, и мы в своем докладе хотим приоткрыть завесу тайны над его внутренним устройством. Кроме того, мы обратим ваше внимание на некоторые нюансы, понимание которых поможет вам принимать эффективные решения при выборе методов, подходов и библиотек при разработке веб-приложений.
Frontend

История о том, как мы в банке JS-сервисы встраивали в нативное приложение

Зар Захаров
Главный вопрос, который проходит через всю презентацию - насколько эффективно использовать локально в приложении WebView, которое показывает ваше JS-приложение. Возможен ли бесшовный переход между нативом и js-приложением, для каких целей это подходит, и есть ли у этого всего будущее.
JavaScript
Мобильные сайты и приложения на веб-технологиях

Митап BeerJS на афтепати "Как писать на JS и спать спокойно"

Александр Малинов
  • Как сделать ожидаемый результат === полученный?
  • Как поймать баг сразу после его создания?
  • Как прощать технические долги?
  • Волшебная пирамидка "статический анализ" -> "модульное тестирование" -> "интеграционное тестирование" -> "e2e"
  • И что для всего этого есть в экосистеме JS?

Тема просто обязана перерасти в дискуссию!

Встреча пройдет в формате BeerJS. Вход свободный.

BeerJS - неформальный митап для JS-комьюнити с общением на любые связанные темы, открытая кухня секретных приемов JS-ниндзя и обмен опытом за кружкой крафтового или не очень пива.

Время: 20.00, место: ул. Кирова, 10, бар Крапива

Афтепати
Frontend