Принятые доклады

Поиск по тегам:

Backend

"Где твоя тачка, чувак?" - о поиске и индексации в Авто.ру

Найти иголку в стоге сена тяжело, но ещё сложнее найти в обширной базе нужные документы, удовлетворяющие множеству параметров сразу. Гораздо сложнее, когда поток запросов - десяток тысяч в секунду, а допустимое время на ответ исчисляется миллисекундами.

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

Также обсудим:
* как устроены индексы
* как хранить их вне heap-памяти
* как использовать VarHandle
* и почему же решение на Scala лучше

Scala
,
Поисковые системы
,
Базы данных / другое
Доклад принят в программу конференции

Улучшаем Event Sourcing c Akka Persistence при помощи FoundationDB

Akka Persistence - одна из самых часто используемых Scala-библиотек для написания приложений по принципу Event Sourcing. Однако ее стандартный плагин akka-persistence-cassandra не идеален, и в нем есть несколько недостатков, которые можно исправить. В докладе мы познакомимся с подходом Event Sourcing, akka persistence, их проблемами и тем как мы можем их исправить при помощи FoundationDB.

На докладе вы узнаете:
- как прицепить 1000 тегов к событию и не взорвать кластер;
- можно ли жить без надежного Split Brain Resolver;
- как реализовать eventsByTag, не тратя лишние дисковые ресурсы;
- как FoundationDB помогает предотвратить потерю данных при Split Brain в Akka Cluster;
- возможны ли low-latency-обновления в eventsByTag.

Scala
,
Организация доступа к базам данных, ORM, собственные драйвера
,
Асинхронное программирование, реактивное программирование
,
Распределенные системы
Доклад принят в программу конференции

Scala js

Scala.JS - подходящий ли инструмент для вас?

Рассмотрим варианты использования Scala.JS в production, когда его стоит брать, когда не стоит, возможности для применения и как жить в мире с JavaScript-разработчиками в одном проекте.

Доклад принят в программу конференции

Функциональное программирование

Designing programmer-friendly APIs: a tapir case study

A good API is not only a pleasure to use, but also makes the code easy to read and explore. How to create a programmer-friendly API in Scala?

Does tapir succeed in that area? What kind of techniques does it use? What were the problems?

Come and find out!

Доклад принят в программу конференции

Magic of integrations - ecosystem better than any framework

Http services & clients? Database access? Parsing? Stream processing? Typesafe data? Let’s go for a journey through creating a real-world app and see how well-integrated libraries can make our life better than any framework could. All of that in purely-functional sauce.

Доклад принят в программу конференции
Доклад принят в программу конференции

Язык/тулинг

DOT for kiddies

Приличные (для некоторого определения приличности) языки программирования должны основываться на теоретических принципах, в противном случае они больше напоминают лоскутное одеяло из плохо стыкующихся друг с другом элементов. Забота о приличности языка Scala привела его разработчиков к необходимости соответствующие принципы сформулировать, так возникла модель DOT — система типов с зависимыми объектами.

Не факт, что наличие формальной модели поможет языку Scala 3 стать, наконец-то, приличным — все ли его элементы можно будет выразить в DOT? Ответа на этот вопрос я пока не знаю, может, после доклада мне кто-то это разъяснит. Я же в докладе буду говорить о том, что модель DOT собой представляет, попутно вводя необходимые элементы и общие принципы теории типов. Для понимания доклада желательно знать Scala, но разбираться в теории типов необязательно.

Доклад принят в программу конференции

Статический анализ кода на Scala: современное решение современных проблем

Есть множество средств для устранения человеческого фактора из разработки софта: разного рода тестирование, продвинутые системы типов, код-ревью и т.д и т.п. Но баги, ошибки и неаккуратность все равно пролезают в наш код, делая нашу жизнь грустнее, а разработку медленнее. Мы поговорим о том, что не хватает всем этим средствам на Scala и что они делают хорошо.

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

Доклад принят в программу конференции

Big data

Все для дата-инженера в одном месте: Big Data Tools for IntelliJ

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

В докладе я расскажу, как мы это делали, с какими проблемами столкнулись и, конечно, покажу, что же из этого вышло. Вы увидите, как делать exploratory data analysis и визуализацию в Zeppelin прямо из IDEA, как мониторить задания и работать с удаленной файловой системой прямо из вашей любимой среды разработки.

Scala
,
Hadoop
,
Machine Learning
,
ETL
Доклад принят в программу конференции