
Привет, Хабр! Мы — Настя, Эвелина и Миша — бэкенд-разработчики Т-Банка, пишем код на Scala и горим желанием его популяризировать. Мы собираем и агрегируем новости из разных источников, включая Scala Times, блог Petr Zapletal и канал Scala Nishtyaki, добавляем дополнительные новости и собственные комментарии. Мотивацию мы черпаем из желания развиваться и делиться полученными знаниями.
Приветствуем любую обратную связь! (づ ◕‿◕ )づ
Релизы
Собрали последние обновления популярных и полезных библиотек за пару месяцев:
Статьи
Делимся свежими статьями, репозиториями и исследованиями, которые нам показались интересными. А еще обозреваем ресурсы, где авторы используют Scala 3. Enjoy:
Sttp client 4: the Scala HTTP client you always wanted, released! — расширен API для сокетов, завезли интеграцию с Тапиром, более читаемые ошибки, в общем, все как мы любим.

Миша
Ура, они упростили типы, стало больше сахарного механизма под капотом. Я думаю, вкатываться в Scala станет проще
Классические абстракции, используемые в ФП — порой хочется иметь под рукой один источник, который разберет все базовые абстракции теории категорий на простом житейском языке.

Миша
Мне нравится формат статей на Хабре. И видно, что код писал человек, поэтому от меня лайк, материал полезно повторять перед собесами

Настя
Я сохранила эту статью в избранное — и всем советую
Flavors of shared state in Cats Effect — для кого-то база, для кого-то нет. Статья рассказывает о таких кошачьих инструментах, как Ref и IOLocal. Разные подходы для выдержки баланса изоляции состояния и потокобезопасности. Выбирайте инструменты с умом и по потребностям __〆( ̄ー ̄ )
Why Functional Programming Matters — мы любим Scala из-за того, что критично сложные вещи можно написать очень красиво, выразительно и лаконично, и автор напоминает нам об этом.

Настя
Лютая база
How to implement a REST API in Scala 3 with ZIO HTTP, Magnum and Iron — очень подробный гайд со всеми тонкостями по стандартной задаче.

Миша
Я Магнум на пет-проекте пробовал — мне понравилось. Просто берешь и делаешь ┬─┬ノ( º _ ºノ)
Whiteboxish Macro Powers with Named Tuples — в примере статьи мы повышаем читаемость, но это все еще не то же самое, что и во второй Scala. Также мы считаем, что проблемы с генерацией макросов невыносимы и их тяжело диагностировать.
Интересный факт: Actually, the term “whitebox” does appear in the documentation. Transparent inline methods are “whitebox” in the sense that the type of an application of such a method can be more specialized than its declared return type, depending on how the method expands. (с) Мартин Одерски
Scalar Conference 2025 - Summary & Highlights — обзор конференции Scala-центра: поможет вам выбрать, прежде чем смотреть ( ͡° ͜ʖ ͡°)
Tagged vs Untagged Unions — иногда полезно заглядывать в раздел комментариев, там можно отыскать еще более ценный и полезный материал.
Applying SOLID Principles in Scala: In Depth — хоть статья и называется In Depth, но по факту очень сыро и поверхностно. Все мы знаем принципы SOLID и как они мапятся на ФП в Scala, но хотелось бы услышать какие-то рассуждения автора на тему универсальности SOLID относительно парадигм. То есть когда ты говоришь о LSP, то должен понимать, в чем кардинальные различия между иерархичностью в классах и параметризацией типов. Это требует более глубокого понимания различий между структурной и номинальной типизацией, а также между поведенческим подтипированием и подтипированием по структуре. Нет никакого переосмысления или выводов — допустим, на тему отличия проектирования фреймворков в ФП за счет отличия механизма DIP.

Миша
Ставлю двух голодных студентов из 10
Drawing Heighway’s Dragon - Part 3 - Simplification Through Separation of Concerns - Rotation Without Matrix Multiplication — любимое задание для школьников и студентов, только от наших драгоценных слайдиков, в нескольких частях, с подробными комментариями.
Блог редакции
Дорогие читатели, хотим поделиться некоторыми мыслями, что возникли за последние месяцы работы над дайджестом.
Не можем не отметить возрастающее в геометрической прогрессии количество GPT-статей. Большую часть из них мы встречали на Medium. Поэтому, уважаемые Scala-разработчики, будьте критичны к контенту!
Мы испытали минутку гордости за то, что в нашем творчестве AI используется только для генерации мемов, а отбираем материалы и комментируем их мы вручную и с большой любовью (❤⩊❤)[=_=](☆ε☆)
За последние пару-тройку месяцев либо форкнули, либо сделали первый коммит, либо начали снова поддерживать много генераторов кода из openAPI-спеки. Кажется, что GPT-бум спровоцировал возрождение интереса к подобным инструментам, ибо с помощью LLM чрезвычайно просто сгенерировать контракт, а после уже можно прогнать его через генератор и получить готовый клиент или сервис.
Вот такая дихотомия добра и зла AI ¯\_(ツ)_/¯
Видео и доклады
Собрали ссылки как на уже известные и популярные, так и на локальные каналы и видео про Scala:
Оптимистичный Scala-опрос и AI-агенты — вместо обычного комментария из нас посыпались мемы:




T-Meetup: Scala — крутой продакшн: приятная картинка, хороший звук.

Настя
В QA-мире мейнстримом считается пирамида тестирования. Антон Бровкин в своем докладе прекрасно продемонстрировал на примере демопроекта эволюцию системы тестов из пирамидальной в сотовую. Доклад ценен в первую очередь как взгляд разработчика и архитектора на выбираемый подход к тестированию проекта

Миша
Арсений Жижелев как никто другой умеет грамотно и эффективно применять DSL в нужном месте в целях бизнеса. Базовые принципы и приемы такого подхода в полной мере раскрываются в его докладе. И нужно помнить, что волшебной таблетки не существует, ведь DSL — это отражение реального языка бизнеса
Вышли записи с митапа в Казани F[Scala] 2025:
Что мы рассказываем про FP программистам на других языках — программисты как дети: шебутные и любознательные. Павел Аргентов в своем выступлении уподобляется доброжелательному воспитателю, который говорит всем нам, ФП-программистам, что мы умные, ценные и вообще молодцы (つ≧▽≦)つ

Эвелина
Доклад-аппетайзер. В нем вы не найдете ни одной строчки кода, но после просмотра возникнет желание открыть IDE

Настя
Доклад смотрелся легко и на одном дыхании. Под конец я почувствовала себя щеночком, которому чешут пузико (◕‿◕)♡

Миша
Мне понравились вставки с историями из жизни. Немного огорчил продакшен, на монтаже можно было и убрать шумы
ZIO Query и современное общество — нежное и глубокое знакомство с ZQuery. Доклад отличается особой харизмой выступающих и бодрой и понятной подачей материала. Один из спикеров решил оставить комментарий специально для наших читателей: «Хочу посоветовать этот доклад всем здоровым адекватным людям, а также ФП-энтузиастам, Scala-разработчикам и владельцам БМВ» (c) Всеволод

Миша
Миллениалы прикидываются зумерами и рассказывают про Batching, Pipelining, Caching (ಠ_ಠ)

Настя
Удивительно драйвовый доклад. Выверенный баланс между полезными техническими знаниями и мемами, шутками и расслабляющей информацией. Я и вовсе начинаю думать, что это великолепное, эталонное выступление, равного которому я не слышала давно
Перевод гейтвея auto.ru на GraphQL — если ваш гейтвей-сервис похож на постоянно пухнущий клубок запутанных нитей, то Кирилл Ершов представляет одно из возможных решений этой проблемы: правильно настроенный GraphQL. После инфрамиграции в Авто.ру жить разработчикам стало легче, а главное для бизнеса — ttm снизился (つ✧ω✧)つ
А сюда мы спрятали еще несколько интересных видеоматериалов
Tooling
Кусочек дайджеста, где мы рассказываем о появлении новых и улучшении уже существующих инструментов для разработки:
Publishing ZIP artifacts with SBT — вы очень хотите опубликовать свой пакет именно в ZIP-формате, но не знаете, как это сделать? Не беда! Alexandre Plateau предлагает воспользоваться плагином, который решит эту задачу в одну кнопку.
Highlights
В этом блоке не всегда свежие, но зацепившие наш взгляд ресурсы под флагом «очумелые ручки». Авторы творят что-то интересное, необычное, но не обязательно полезное:
sbt-dependency-check v1.0.0 released — а ваши безопасники обрадуются, если вы самостоятельно добавите в пайплайн стадию поиска на наличие уязвимостей сервиса?
Комьюнити-движ
Раздел курьезных и любопытных событий в мире Scala-общества. Мы хотели бы видеть его объемным и живым. Если что-то пропустили или у вас есть предложения — ждем в комментариях:
Evolving Scala — по мнению Scala Center, для успешности языка ему необходимо развитие и помощь open-source. По мнению редакторов дайджеста, для успешности языка ему необходимо быть выбором № 1 для бизнеса. Доступен перевод на русский язык.

Настя
Как будто Scala Center не в ту сторону воюет: не разработчиков нужно убеждать в успешности языка, а дядек с деньгами

Миша
Ребята, у нас есть Compiler Spree, Tooling Spree, SIP-ы, вы только контрибьютьте, пожалуйста (/ω\)
Reddit: my experience with Scala as someone new — честный отзыв об опыте погружения в Scala от Clojure-разработчика. Выделены и плюсы, и минусы: к примеру, насколько сильно его поразила мощь flatmap/map плюс строгая типизация, которая решала привычные для него боли. И насколько не понравилось отсутствие внятной документации некоторых библиотек и наличие возможности решить одну задачу десятью способами. Отзыв получился горячим: набрал более 100 плюсов и 50 комментариев. В частности, многие ребята рекомендуют новичку присмотреться к библиотекам экосистемы от lihaoyi.

Миша
Крик души автора о том, как из-за широкого выбора создаются проблемы на ровном месте. Лично я надеюсь, что такие релизы, как sttp4, позволят в будущем новичкам легче реализовывать свои задумки, использовать все прелести ФП-мира без „абсурдной сложности“, как считает автор
Experimental Capture Checking: New Syntax for Explicit Capture Polymorphism — язык развивается прямо на ваших глазах, новый синтаксис для capture-checking. Вы можете как принять участие в тестировании, так и спуститься в комменты и почитать, что об этом думает комьюнити {{ (>_<) }}
Waterfall CAD has SVG support now — мейнтейнер-хаскелист рассказывает и показывает (★ω★)/, как он добавил экструзию из SVG и сделал елочные украшения.
До встречи через месяц! ♡\( ̄▽ ̄)/♡
Над дайджестом работали @Melkaya_150cm, @EvieLynn, @haskiindahouse. Ваши идеи, предложения, обратную связь с удовольствием ждем в комментариях! <( ̄︶ ̄)>