
Привет, Хабр! Мы — Настя, Эвелина и Миша — бэкенд-разработчики Т-Банка, пишем код на Scala и горим желанием его популяризировать. Мы собираем и агрегируем новости из разных источников, включая Scala Times, блог Petr Zapletal и канал Scala Nishtyaki, добавляем дополнительные новости и собственные комментарии. Мотивацию черпаем из желания развиваться и делиться полученными знаниями.
Приветствуем любую обратную связь! (づ ◕‿◕ )づ
Теперь вы можете поделиться собственными материалами!
Релизы
Собрали последние обновления популярных и полезных библиотек за пару месяцев:
Scala 2.13.16 — теперь к пустой строке нельзя писать
.tail
, надеемся, это не приведет к похожим последствиям;mockingbird 5.0.0 — птичка поддерживает GRPC-стримы;
-
chimney 1.7.0 — долгожданная фича: наконец-то можно выводить ответ из нескольких case classes сразу!!! Возрадуйтесь!!! Σ>―(〃°ω°〃)♡→ А еще добавлены флаги для проверки на этапе компиляции неиспользуемости полей.
Настя
Я аж станцевала от таких новостей!
cats 2.13.0 — sequence_, traverse_ и иже с ними теперь deprecated;
Статьи
Pre-SIP: A Syntax for Collection Literals. Как похорошел
ПитонScala3 при Одерски.Random Scala Tip #697: Avoid Anonymous Functions as Dependencies. Эргономика проектирования классов важна, и вот почему.
Random Scala Tip #568: Beware of Leaking Iterators. Вы можете выстрелить себе в ногу, если вы любители итераторов, а не надежных структур.
Functional Declarative Design: A Comprehensive Methodology for Statically-Typed Functional Programming Languages. Знакомимся с новым для нас термином в методологии.
Faster CI with Selective Testing. Даже тут упомянули про Machine Learning. Захотелось реализовать?
-
Declaring Implicits. Повторяем виды имплиситов.
Эвелина
Повторение — мать учения
Understanding JVM Garbage Collector Performance. Напоминание о том, что вы всегда можете поэскпериментировать с GC и попытаться улучшить перформанс приложения, не меняя код.
Announcing ScalaMock 7. Scalamock сменил мейнтейнера, активно развивается, и теперь инструмент можно использовать с ZIO на Scala 3.
Fibonacci Function Gallery — Part 2. Наши любимые слайдики в этом месяце жестко утопят вас в Фибоначчи.
Scala & Fintech – a perfect pairing — продуктплейсмент Акки. Из зацепившего взгляд — компании, которые используют связку Scala + Akka. Но наличие некоторых компаний в этом списке вызывает у нас вопросики, действительно ли это так, ведь у них есть собственное решение.
Tracks of Wrapping: How to Outsmart Sealed Collections Without Going Off the Rails. Черная магия, которая вызывает недоумение.
-
Endless Elegance: The Sensual Dance of Functional Infinity. Не пишите так в прод, пожалуйста.
Phantom types — Make illegal states unrepresentable и Phantom types — Part 2. Кратко про фантомные типы. В примере с паттерн-матчингом можно отойти от чистых фантомных типов и использовать, к примеру, ClassTag у generic-типа в Book.
Рекурсивные типы. Серия из пяти частей. Любите разбираться в математике и цените подробные объяснения? Эта серия как раз для вас! Здесь есть всё: академический стиль, математические обоснования и плавный переход от простого к сложному. Хороший способ почувствовать себя экспертом в рекурсивных типах после прочтения (─‿‿─)
А сюда мы спрятали еще несколько интересных статей:
Видео и доклады
Where Are the Scala Frameworks? Functional Scala 2024 talk. Даниэль пытается донести мысль, что в мире Scala часто переизобретают колеса, обилие которых только путает и отталкивает новичков, и призывает к созданию библиотек комплексных, но гибких, со множеством примеров.
-
Haoyi Li — Better Scala Builds With The Mill Build Tool - Functional Scala 2024. Если вы устали от дополнительных телодвижений с SBT, зависимостей от множества плагинов и хотите управлять сборкой проекта через Scala-код, просто попробуйте Mill.
Миша
После услышанного мне захотелось попробовать поиграться с Mill
Playlist Functional Scala 2024. Как хорошо, что нам не надо ехать в другую страну, чтобы послушать доклады.
A TOUR OF NEOTYPE. Newtype & Refined types для Scala3.
IntelliJ IDEA × Scala — Enums Support. Дока в видеоформате — мы дуреем с этой прикормки!
Tooling
Кусочек дайджеста, где мы рассказываем о появлении новых и улучшении уже существующих инструментов для разработки:
Gems in the Scala Ecosystem. Если вам кажется, что мы бедны в тулинге, перейдите по ссылке и убедитесь, что Scala богата.
WebSocket Example. Теперь
технологию древнихлюбимые вебсокеты можно реализовывать и на zio-http.Pekko Feat: Enhance Virtual Thread Support. Любителям Pekko и Java 21 завезли улучшение работы с виртуальными потоками.
Tyrian-flowbite.g8. Если кто-то из вас юзает tyrian + flowbite + scalaJS, вот вам шаблончик для будущих проектов (っ´ω`)ノ(╥ω╥).
-
Openapi4s-demo — демо нового проекта, генератора кода из openapi-спеки.
Миша
Кто душой на стороне spec-first подхода, как и я? (ノ◕ヮ◕)ノ*:・゚✧
Настя
Мое сердце, почки и душа принадлежат code-first-подходу ଲ(ⓛ ω ⓛ)ଲ
Highlights
В этом блоке не всегда свежие, но зацепившие наш взгляд ресурсы под флагом «очумелые ручки». Авторы творят что-то интересное, необычное, но не обязательно полезное:
Dmtscala. Теперь переписывать сервисы со Scala на любой другой язык стало значительно проще ψ( ` ∇ ´ )ψ. Не знаем, для чего это вам понадобится: чтобы соблюдать корректность контрактов между фронтом и бэкендом или же чтобы уволить всех скалистов и нанять хаскеллистов на переписанный код [̲̅$̲̅(̲̅ ͡° ͜ʖ ͡°̲̅)̲̅$̲̅]
Terminus — альтернативный вариант дать ребенку поиграться для обучения взаимодействию с I/O.
-
About FastScala — еще один фреймфорк для веб-разработки на Scala.
Комьюнити-движ
Раздел курьезных и любопытных событий в мире Scala-общества. Мы хотели бы видеть его объемным и живым. Если что-то пропустили или у вас есть предложения, ждем вас в комментариях:
-
#Rust vs #Scala: Facts and Hype. Ради таких дискуссий и создавался в свое время этот раздел в нашем дайджесте. Горячий холивар на тему двух языков перерос в обсуждение различных подходов к управлению памятью, и на это полыхающее пламя прискакал рыцарь Джон де Гуз.
Миша
Я вот представляю Scala без GC, и сразу на ум приходят строки: „И в разговоре каждой ночи сама душа не разберет, мое ль безумие бормочет, твоя ли музыка растет…“
Rant on Scala3 tooling (IntelliJ/metals), wish I started new project in Scala2 — очередной раунд холевара Scala3 vs Scala2. Скандалы, интриги и у кого какая ЗП — все это ждет вас по ссылке в комментариях __〆( ̄ー ̄ ) P. S. Обратите внимание на ники, возможно, увидите знакомые лица.
Relegate Scala 2.12 support to a branch? Если кто-то еще сидит на 2.12.x, вот вам
волшебный пендельдружеское напоминание обновиться до 2.13.x.-
Functional Programming in Scala. Если вы скучаете по школьным временам, где вас за ручку проводят по материалу урока, проверяют домашние задания и клеят наклейки-звездочки, вам понравится UI курса! Материал базовый, поэтому подойдет разработчикам, только знакомящимся со Scala.
Эвелина
Напомнило Stepik )٩(◕‿◕。)۶
Online Courses (MOOCs) from The Scala Center. Если вы пропустили, в scala-doc существует страница с рекомендуемыми курсами. Полагаем, что теперь новичкам легче искать материалы по типу «с чего начать обучение».
Recap of Advent of Code 2024. Поставьте себе уведомления о том, что в этом году нужно обязательно продержаться 25 дней до самого конца Advent of Code, чтобы торжественно быть упомянутым на главном ресурсе по Scala.
My post mortem for the codingame Winter Challenge 2024. Оказывается, помимо Advent of Code зимой можно размять мозги еще и на таком событии, как Codingame: Winter Challenge.
До встречи через месяц! ♡\( ̄▽ ̄)/♡
Над дайджестом работали @Melkaya_150cm, @EvieLynn, @haskiindahouse. Ваши идеи, предложения, обратную связь с удовольствием ждем в комментариях! <( ̄︶ ̄)>
PB_Academy
В РФ Scala умирает(исходя из вакансий). Его как бэкенд язык меньше рассматривают. Единственное, где сейчас он актуален - Apache Spark в Data Engineering.
GospodinKolhoznik
Кошмарный язык. Смешали джаву с хаскелем, взяли худшее из обоих языков и породили язык такой же переусложненный и неестественный, как оперное пение в одноимённом театре.