Привет, Хабр! Мы — Рома, Настя и Карина — бэкенд-разработчики Тинькофф, пишем код на Scala и горим желанием его популяризировать. Мы собираем и агрегируем новости из разных источников, включая Scala Times, блог Petr Zapletal и канал Scala Nishtyaki, добавляем дополнительные новости и собственные комментарии. Свою мотивацию черпаем из желания развиваться и делиться полученными знаниями. Приветствуем любую обратную связь! (づ ◕‿◕ )づ Собрали последние обновления популярных и полезных библиотек за пару месяцев: AI Assistant Update — October 2023 — добавили несколько новых фич, включая удобный diff view на рефакторинге; IntelliJ IDEA 2023.2.4 Is Out! и IntelliJ IDEA 2023.2.3 Is Out!; chimney 0.8.0 — вышел какой-то очень солидный релиз, если используете chimney, обязательно зацените; Pekko Persistence Cassandra 1.0 — кто ждал, тот дождался; metals v1.1.0; scala-cli v1.0.5; scala-native 0.4.16; mill 0.11.5; sbt 1.9.7; cats-effect v3.5.2; magnolia scala3-v1.3.4; sttp v4.0.0-M6; tapir v1.7.6-v1.8.2; zio-http v3.0.0-RC3; zio-kafka v2.5.0; zio-quill v4.8.0; iron v2.3.0-RC1, v2.3.0-RC2; tyran v0.8.0; indigo v0.15.1; smithy4s v0.18.2. Рубрика для митапов, релизов библиотек и фреймворков, рожденных в недрах scala-комьюнити Тинькофф. На канале «IT и т. д.» вышел заключительный ролик проекта про особенности Sсala-разработки Scala in Tinkoff. Наши разработчики, лиды и руководители проектов рассказали о деталях работы и жизни Scala-команд: какие задачи решаются, какой стек технологий и библиотек используется, какие особенности встречаются у проектов. Есть инсайты про милые отличительные черточки команд, привычки и забавные кулстори из жизни.Ролики пятиминутные, динамичные, с прикольной анимацией-рисовкой. Обязательно зацените :) И посмотрите предыдущие ролики, если не сделали этого раньше! В этом разделе делимся свежими статьями, репозиториями и исследованиями, которые нам показались интересными. В отдельный блок вынесли ресурсы, где авторы используют Scala 3. Enjoy: Turning actors inside-out — в статье разбираются особенности акторной модели программирования. Асинхронная по своей природе модель, обработка ошибок с помощью supervisor, сложность дебага и так далее. Стоит ознакомиться, чтобы узнать чуть больше о железе акторов под капотом. А еще в тексте полно ссылочек на другие материалы по акторной модели. In Defence of Mocks — «This is my Mocks. There are many like it, but this one is mine. My Mocks are my best friend. It is my life. I must master it as I must master my life. Without me, my Mocks are useless. Without my Mocks, I am useless. I must test my Mocks true». Возможно, именно так и думал автор ↂ_ↂ Why on earth a ZIO IO monad for Scala? — добротное и грамотное объяснение основ функциональной парадигмы. ZIO присутствует. Why I Find Scala so Amazing — бывший адепт PHP восхищен возможностями функционального строготипизированного языка с эмблемой в виде красного шарфика и его комфортного синтаксиса. concurrent-cancellation-kotlin-vs-scala — Alex Nedelcu написал gist-заметку на тему прерывания IO-вычислений на Scala и Kotlin и почему в JVM 21 это уже не так важно. Scala Made Simple for Beginners: A Gentle Introduction to Kickstarting Your Scala Learning — гайд, как быстро и без боли запустить первое приложение на Scala. Fusing Transformations of Strict Scala Collections with Views — разбирается интересная тема .view-метода на коллекциях. Слайды содержательные, много ссылок на книги по Scala. Жаль, что нет записи оригинального доклада, если такой существует. Tagless Final Encoding — еще слайды от автора выше в формате диалога с Gabriel Volpe о tagless final. How to create Durations in Scala — мини-заметка о том, что можно писать 2.minutes вместо Duration(2, TimeUnit.MINUTES). Собрали ссылки как на уже известные и популярные, так и на ноунейм-каналы и видео про Scala.На канале Scala Days Conferences выложили записи докладов и выступлений с прошедшей конференции Scala Days 2023 в Мадриде. Приглашаем посмотреть, а более подробный ретеллинг отдельных докладов будет от нас в следующем месяце  (⊃｡•́‿•̀｡)⊃━☆ﾟ.*･｡ﾟ M2_TECH Scala Meetup — три рассказа о Scala. Первый доклад — презентация библиотеки calypso, помогающей корректно перегонять сложные модели в BSON и обратно, в частности для хранения в MongoDB. Второй — о Saga-паттерне и Transactional Outbox и их разнице на конкретном примере сервиса бронирования в путешествиях. Заключительный доклад делится подробностями работы с подходом Vertical slice в Scala. Scala Meetup Lisbon Hub 2023 — Part 1 — shift-left-подход в разработке на практике. О том, как реализовать Dual Tests Tactic, заручившись поддержкой distage / distage-testkit. Scala Meetup Lisbon Hub 2023 — Part 2 — 7mind пилят свой build tool с мультимодульными проектами и изолированными билдами. Пока на стадии research, поэтому потыкать нельзя, но интересно послушать о концепциях, на которых базируется проект. Есть небольшая сводка о существующих build tool, поддерживающих сборки на Scala, и чем они не соответствуют хотелкам сегодняшнего дня. Cellular Automata for video games — совсем не про video games. Кусочек теории о клеточных автоматах и о том, куда их можно приложить. В частности, к моделированию реальных процессов. Лайк за расслабляющий тон повествования и капельку самоиронии. Schema management with Scalameta by Lars Albertsson — сложный доклад о Big Data, в котором переплетаются пайплайны инженеров данных с макросами Scala. Слушать тяжеловато, но где мы еще такое увидим. Microservices and gRPC in Scala with FS2 and Scalapb — хорошее введение в grpc через fs2. Компилируем модельки, создаем сервер и клиент. Приятно, что в процессе подсвечиваются неочевидные для новичков моменты. Zymposium — ZIO Q&A — Adam Fraser, недавно назначенный на пост CTO Ziverge, устроил еще одну сессию вопросов и ответов. Помимо прочего объяснил, в чем разница между zio-quill, zio-sql и zio-jdbc. flatmappers 010 — ребята поговорили про K8s, снова вспомнили copilot и прочие ai для написания кода, помянули добрым словом Li Haoyi. Вадим поделился чит-кодами, как стать мейнтейнером Mill. flatmappers 011 — обсудили KIP о двухфазном коммите в Kafka. Вспомнили, где можно почитать новости о жизни Scala (｡•̀ᴗ-)✧ Подробно разобрали magnum, о которой мы писали в прошлом выпуске. В следующем выпуске можно услышать, как поет Юра, нужно только оставить 🤡 ребятам под постом. В этом блоке не всегда свежие, но зацепившие наш взгляд ресурсы под флагом «очумелые ручки». Авторы творят что-то интересное, необычное, но не обязательно полезное: typo — Typed postgres integration for Scala — библиотека по генерации Scala-кода на основе SQL. Однако Postgres-only. Отметим, что документация сайта выглядит потрясающе! Retrying Cats Effect Failures With Ease — обзор библиотеки cats-retry, неофициальный котенок от typelevel. Кусочек дайджеста, где мы рассказываем о появлении новых и улучшении существующих инструментов для разработки: stryker4s — приходил ли вам в голову когда-либо вопрос, сколько unit-тестов сломается, если мы перепишем наш код? Авторы этого проекта делают попытку отследить качество покрытия тестами, вставляя произвольные баги в source-код и прогоняя на модифицированном коде тесты. Хотя бы из интереса потыкаете в их playground. Integration testing the Typelevel toolkit — мейнтейнеры typelevel-toolkit проводят мультиплатформенное тестирование того, как scala-cli обращается с их toolkit. Почитайте, чтобы проникнуться мозговыносящими техниками тестирования, которые не увидишь в обычном enterprise-коде. ifdef macro in Scala — Eugene Yokota имплементировал фичу, позволяющую писать тесты в src/main/. Зачем это надо — вопрос дискуссионный. Сама концепция кода, который понимает, в какой среде запускается, звучит интригующе. Статья из двух частей: в первой реализация через макроаннотации, во второй — через плагин компилятора. Раздел курьезных и любопытных событий в мире scala-общества, и мы хотели бы видеть его объемным и живым. Если что-то пропустили или у вас есть предложения — ждем вас в комментариях: The Story of AI Graphics at JetBrains — если вам, как и редакции дайджеста, нравятся заставки продуктов JetBrains, то не пропустите этот лонгрид. Рассматриваются две сетки генерации картин Stable Diffusion и CPPN и рассказывается, как подтюнивали базовый алгоритм для себя. «Приходишь к дизайнерам JetBrains посмотреть, как они лого рисуют, а там нейронки в нарды играют» (с) Карина 2023 Q3 Activity Report — отчет Scala Center за Q3. Подробно и прозрачно. Описаны интересные темы про передачу sbt от Yugene Yokota, sbt-плагин по автомиграции на Scala 3, а еще про попытки сделать процесс контрибьюта в компилятор более понятным. Work-in-Progress Scala 3 Specification — продолжают делать документацию более user-friendly для новичков и не только, а именно допиливают полноценную спецификацию всех фич в Scala 3. Tell us which errors bug you the most — уникальный шанс подсветить, какие ошибки вас бесят в Scala 3. Scale your software like a tech native. До встречи через месяц! ♡＼(￣▽￣)／♡ Предыдущие выпуски: Scala Digest #1 Scala Digest #2 Scala Digest #3 Scala Digest #4 Scala Digest #5 Scala Digest #6 Scala Digest #7 Scala Digest #8 Scala Digest #9 Над дайджестом работали @Melkaya_150cm, @Ivoya, @tcarina. Ваши идеи, предложения, обратную связь с удовольствием ждем в комментариях! <(￣︶￣)>  Scala Backend