Как стать автором
Обновить
375.96

Scala Digest. Выпуск 28

Уровень сложностиПростой
Время на прочтение7 мин
Количество просмотров505

Привет, Хабр! Мы — Настя, Эвелина и Миша — бэкенд-разработчики Т-Банка, пишем код на 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. Ваши идеи, предложения, обратную связь с удовольствием ждем в комментариях! <( ̄︶ ̄)>

Предыдущие выпуски
Теги:
Хабы:
+6
Комментарии0

Публикации

Информация

Сайт
l.tbank.ru
Дата регистрации
Дата основания
Численность
свыше 10 000 человек
Местоположение
Россия