Этот момент наконец настал — мы запускаем собственное сообщество Scala-разработки, чтобы делиться с вами своим экспертным мнением, анонсами мероприятий, публикациями, видео и многим другим.
Оставайтесь к канале и зовите друзей, будет интересно! :)
➡️ Ссылка на канал: https://t.me/scala_verticals
Оставайтесь к канале и зовите друзей, будет интересно! :)
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥7❤3🥰3
Иерархия в PostgreSQL. Doobie vs Skunk
Выступление на Scala-митап 2024
Сева Никитин и Алексей Литковец
Приглашенные эксперты
Покажем три подхода к работе с иерархическими данными в реляционных БД. Расскажем про интересную библиотеку для работы с PostgreSQL в Scala — Skunk. Cравним возможности Doobie и Skunk и посмотрим, как Skunk может помочь с хранением иерархий и работой с каналами PostgreSQL.
#youtube
#scalaMeetup2024
Please open Telegram to view this post
VIEW IN TELEGRAM
👍6🔥2❤1
Как в Scala переложить JSON: паттерн «codec»
Выступление на Scala-митап 2024
Михаил Чугунков
Яндекс Вертикали
В Scala программисты регулярно используют тайпклассы Encoder/Decoder для (де)сериализации своих ADT. В докладе вы увидите подробный обзор этого паттерна и узнаете, при чём здесь функторы. Кроме этого, будет затронута тема вывода инстансов тайпклассов для ADT.
#youtube
#scalaMeetup2024
Please open Telegram to view this post
VIEW IN TELEGRAM
👍7🔥2❤1
Инциденты с авторизацией: уменьшаем радиус поражения
Выступление на Scala-митап 2024
Андрей Борунов
Яндекс Вертикали
Узнаем, какие проблемы случались с подсистемой авторизации пользователей Авто.ру, написанной на Scala. Как мы их диагностировали и чинили, и какие меры предприняли, чтобы исключить катастрофическое влияние на работу сервиса в целом.
Полезные плейлисты:
— Scala-митап 2024
— конференция [F] Scala 2023
#youtube
#scalaMeetup2024
Please open Telegram to view this post
VIEW IN TELEGRAM
👍7🔥3❤1
Привет! Это Женя Веретенников, отвечаю за devtools для скалистов в Яндекс Вертикалях.
У нас монорепа на 4 миллиона LOC Scala-кода. Она работает на Bazel с кешированием результатов сборки, чтобы разработчики не ждали компиляцию и тестирование кода, который они не трогали. Долгое время у нас болело, что чужие тесты всё равно иногда запускаются на CI. После дебага выяснилось, что виноваты Scala-макросы (кто бы мог подумать).
При повторной компиляции кода с макросом, генерирующим sealed-иерархию, порядок перечисления наследников в байткоде может отличаться от предыдущей компиляции. Такое поведение мы обнаружили в библиотеках chimney и play-json.
То есть компиляция кода с использованием макросов из этих библиотек работала не идемпотентно и ломала кеширование сборок. Аналогичное поведение мы нашли и в одном макросе для ZLayer.
Наша команда очень удивилась и сделала эти макросы детерминированными:
◾️ https://github.com/scalalandio/chimney/pull/543
◾️ https://github.com/playframework/play-json/pull/1047
◾️https://github.com/zio/zio/pull/8914
Используете кеширование сборок и эти библиотеки? Обновитесь до последних версий — возможно, наша команда ускорила и ваш CI своим вкладом в OpenSource-сообщество 😏
📍 Подробнее на Хабре
@scala_verticals
Мы решили возобновить ведение этого канала и начать делиться полезным контентом для всего Scala-коммьюнити.
У нас монорепа на 4 миллиона LOC Scala-кода. Она работает на Bazel с кешированием результатов сборки, чтобы разработчики не ждали компиляцию и тестирование кода, который они не трогали. Долгое время у нас болело, что чужие тесты всё равно иногда запускаются на CI. После дебага выяснилось, что виноваты Scala-макросы (кто бы мог подумать).
При повторной компиляции кода с макросом, генерирующим sealed-иерархию, порядок перечисления наследников в байткоде может отличаться от предыдущей компиляции. Такое поведение мы обнаружили в библиотеках chimney и play-json.
То есть компиляция кода с использованием макросов из этих библиотек работала не идемпотентно и ломала кеширование сборок. Аналогичное поведение мы нашли и в одном макросе для ZLayer.
Наша команда очень удивилась и сделала эти макросы детерминированными:
◾️ https://github.com/scalalandio/chimney/pull/543
◾️ https://github.com/playframework/play-json/pull/1047
◾️https://github.com/zio/zio/pull/8914
Используете кеширование сборок и эти библиотеки? Обновитесь до последних версий — возможно, наша команда ускорила и ваш CI своим вкладом в OpenSource-сообщество 😏
@scala_verticals
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥38👍9❤7👨💻1
Релиз библиотеки в опенсорс
Сегодня вспоминаем F[Scala] 2023 — большую конференцию по Scala и функциональному программированию, которую мы делали в прошлом году, чтобы собрать крупнейшее сообщество Scala-инженеров и поделиться опытом.
Дима Каряев рассказал про нашу библиотеку alien — она предоставляет Typesafe DSL для доступа к Java foreign memory API.
Посмотреть запись его доклада можно
📱 на YouTube
📱 в VK Видео
А совсем недавно мы её заопенсорсили: https://github.com/YandexClassifieds/alien-memory
Пробуйте, пользуйтесь и делитесь впечатлениями 😉
Сегодня вспоминаем F[Scala] 2023 — большую конференцию по Scala и функциональному программированию, которую мы делали в прошлом году, чтобы собрать крупнейшее сообщество Scala-инженеров и поделиться опытом.
Дима Каряев рассказал про нашу библиотеку alien — она предоставляет Typesafe DSL для доступа к Java foreign memory API.
Посмотреть запись его доклада можно
А совсем недавно мы её заопенсорсили: https://github.com/YandexClassifieds/alien-memory
Пробуйте, пользуйтесь и делитесь впечатлениями 😉
Please open Telegram to view this post
VIEW IN TELEGRAM
👍9🔥7❤3