Привет, Хабр! Мы — Настя и Эвелина — приветствуем свежую кровь в нашей небольшой, но уютной команде! Миша присоединился к нам месяц назад с горящими глазами и желанием раскопать и вывести на свет каждую драгоценную унцию информации и новостей из Scala-мира.
Мы рады видеть нового бойца в наших рядах и уверены, что сможем делать дайджест еще лучше. А вы можете поделиться собственными материалами — мы опубликуем их и скажем вам спасибо (づ ◕‿◕ )づ
Поздравляем наших читателей с Наступающим новым годом и желаем, чтобы Scala приносила еще больше удовольствия!
Релизы
Собрали последние обновления популярных и полезных библиотек за пару месяцев:
Статьи
Делимся свежими статьями, репозиториями и исследованиями, которые нам показались интересными. А еще обозреваем ресурсы, где авторы используют Scala 3. Enjoy:
-
Scala 3.6.2 is now available! — учитывая, что выпуск 3.6.0 был сломан, встречаем самый наполненный фичами выпуск Скалы серии 3.6! Завезли много экспериментальных SIP’ов, стабилизировали старые. Нас больше всего вдохновили фичи с named tuple и for-comprehension, начинающегося с map’а. Всем советуем прочитать, ознакомиться и попробовать что-то в ближайшем времени.
Миша
Больше сахара Б-гу сахара!
-
Выжимаем максимум из Scalafix — первая на нашей памяти хорошая статья на русском о scalafix. О том, как работать и пользоваться им.
-
A Non-Obvious Variance Question You Might Encounter in a Scala Developer Interview — если вы что-то помните о вариантности, но ваши знания не отшлифованы, статья поможет разложить их по полочкам.
-
Debugging a Scala Compilation Issue, a journey into Variance and LUB — маленькое напоминание о том, как нам важно, создавая свою систему типов, помнить про ко- и контрвариантность. А если вы не помните — см. статью выше (>ᴗ•)
-
Zio-kafka, faster than java-kafka — попадаясь на байтящий заголовок, всегда внимательнее всматривайтесь в детали бенчмарков. При тщательном анализе окажется, что не везде, не всегда, не для всех условий утверждение в заголовке верно.
-
A succinct early exit trick for Option in Scala — долой грязные хаки от мира императивного способа мышления ✴==≡눈٩(`皿´҂)ง
-
ZIO: A ZIO 2 + Scala 3 + MySQL database + ZIO HTTP server example application — рыба для набора инструментов из названия.
Мы нашли нового продуктивного писателя Mark Grechanik. В своих статьях за этот месяц он рассмотрел такие сложные и неоднозначные темы, как:
-
All 24 new JEPs for JDK 24: Quantum-Resistant Cryptography, Garbage Collectors, and a lot of cleanups — JVM Weekly vol. 111 — в этом выпуске полно JEP`ов, и так как мы часть JVM-мира, считаем, что это важно. Особенно понравился JEP 404: Generational Shenandoah (Experimental), что позволяет делать паузы между сборками мусора короче, что критически важно для low-latency-приложений.
Блок JEP`ов с квантово-устойчивой криптографией. Мы считаем, что это важный шаг в подготовке JDK к будущим угрозам в безопасности.
-
JEP 478: Key Derivation Function API (Preview)
-
JEP 496: Quantum-Resistant Module-Lattice-Based Key Encapsulation Mechanism
-
JEP 497: Quantum-Resistant Module-Lattice-Based Digital Signature Algorithm
-
-
From Functional Purity to Flip-Flopping: How Data Structures and Politicians Both Embrace Controlled Mutation — изоляция мутации на примере FingerTrees, Persistent HAMT, Splay Trees. Если вы слышали, что такое back-patching, но не видели примеров на Scala, вам будет особенно интересно.
-
Mutations Gone Wild: How DynamicVariable Keeps the Chaos Contained — затронул модели управления памятью, поднял проблемы управления изменяемостью состояний. Особенно полезно будет тем, у кого в коде должны быть вложенные изменения без изменения глобального состояния при наличии зависимых потоков и скоупов.
-
Genesis in Scala: Crafting New Classes As Children of Some Existing Classes or, How to Create Your Own Adams and Eves in Code — продолжение темы о том, как создавать в Runtime новые классы. В этот раз фокус на наследовании и сохранения родительских связей.
Миша
Я за AOP всеми руками и ногами.
-
From SML’s exn to Scala’s Dynamic Shenanigans: Wrangling Symbols, Subtypes, and Fluid Exceptions with Flair! — большая статья про то, как достичь гибкости в реализации интерфейсов и какими способами можно достичь генерации новых типов в рантайме.
-
Purify Your Tests Episode IV: The Monoids Strike Back — от банальной задачи обработки потоков естестественным образом приходим к Моноидам, которые прекрасно вписываются в изменчивый мир реальной разработки. Но мнения авторов дайджеста разделились:
Миша
Порой интуитивно приходишь к сложным вещам через простые. А еще открыл для себя этого автора, добавив себе несколько статей в закладки почитать (♡μ_μ)
Эвелина
А я думала, все всё и так пишут через трейты и полиморфизм.
Настя
Ничего нового я для себя не узнала, мы в команде ровно так и пишем. Но мне импонирует игровая и интересная подача автором материала
-
Scala Space in 2025 — декларация намерений VirtusLab & SoftwareMill с их планами по улучшению тулов для разработки на 2025 год.
-
Fibonacci Function Gallery — Part 1 — возвращаемся к базе, снова трогаем Фибоначчи на пути к Котам и трамполайнам.
-
What Scala has to offer for Java devs — Scala — это сын маминой подруги, а Java — это джава… Список приятных мелочей из Scala, которых лишены джависты.
-
Scala, Bazel, Akka, and monorepos: A technical perspective of monorepo migration — о преимуществах использования Bazel в монорепах.
-
Integrate JobRunr into Play Framework — если вы в 25 году всё ещё используете Play Framework, вас, возможно, заинтересует такой инструмент управления и запуска фоновых задач, как JobRunr.
-
How I SBT — VII — заключительная часть о тонкостях пользования sbt.
-
Scala is Cool and works well with Java 21 — богатый азиатский taobao запустил английскую версию себя, наговнокодив на Scala, используя pekko.
Настя
Видимо, на Akka не хватило риса.
-
On Scala Tooling & Stability: What Can We Learn From a Small Drama? — мнение о стабильности инструментов в экосистеме Scala от простого работяги. Запускайте гуся, если согласны.
-
Modeling in Scala, part 1: modeling your domain — объемный материал, выдающий базу про DDD в рамках Scala 3.
А сюда мы спрятали еще несколько интересных статей
-
GraalVM and ChromeDriver in a Docker image for Render.com — заметка подчеркивает важность понимания особенностей используемых базовых образов и необходимости настройки окружения для обеспечения корректной работы приложений в контейнерах.
-
When Exceptions Get Sneaky: Dynamic Classes vs. Malicious Meddlers in ScalaLand
-
First, why is type-based injection better than name-based injection?
Видео и доклады
Собрали ссылки как на уже известные и популярные, так и на ноунейм-каналы и видео про Scala:
-
[ICFP24] Capabilities for Control — новогодний подарок от Мартина Одерски. Поднимается тема сложности, которая скрывается за гибкостью Монад, что отталкивает некоторых в их использовании. Автор покажет, как ответить на вопрос «Какого цвета ваша функция?» через Capabilities.
-
flatmappers033 — ребята задались вопросом: а кому нужна новая akka из крупных игроков? Геймдев? Tesla? А может быть, лучше все переписать? А может, Pekko? (¬‿¬ )
-
Scala Space Podcast: Modelling the Business Domain with Voytek Pituła and Raphaël Lemaitre — видео о том, как выстроить DDD в Scala, проектируя свой бизнес-домен от case class`ов до High-kinder types, какие плюсы есть в Scala3 с ее системой типов и почему вам стоит попробовать Pillars.
Мероприятия для скалистов — это всегда про комьюнити, яркие эмоции и качественные доклады. Мы посетили F[Scala] 2024, и особенно нам запомнилось:
-
Ахтям Сакаев, Авто.ру | Процесс — изящное применение стримов в совокупности с опытным спикером — залог успеха доклада!
-
Денис Шевченко, BIOCAD | Изоморфизм Карри-Говарда и Вселенная — увлекаетесь математикой и хотите шагнуть к прекрасному миру ФП? Этот доклад создан для вас с мастерской подачей от Дениса!
-
Иван Лягаев, Т-Банк | Поставка http-интеграций через библиотеки — что делать в условиях неопределенности, когда порой приходится проводить множество технических миграций, а OpenAPI в плачевном состоянии? Одно из возможных решений — написать свою гибкую, настраиваемую библиотеку. В докладе Ваня расскажет про тонкости реализации T-Client.
-
Алексей Троицкий, Т-Банк | Подношение от типов: отношение подтипов — доклад — фаворит Миши, в котором каждый ФП-разработчик найдет для себя интересные мысли (✯◡✯)
Следите за анонсами таких мероприятий в нашем дайджесте и обязательно приходите в следующий раз \(≧▽≦)/
А сюда мы спрятали еще несколько интересных видеоматериалов
Tooling
Кусочек дайджеста, где рассказываем о появлении новых и улучшении существующих инструментов для разработки:
-
Zionomicon — вышла в релиз настольная книга для каждого, кто использует экосистему ZIO. Встречайте Zionomicon — совершенно бесплатно для всех желающих, с обновленными примерами до ZIO 2.1.
-
Getting Started With the JetBrains Bazel Plugin — не можем не отметить важный исторический момент: JetBrains выпустила полноценный плагин для Bazel, новая веха развития и поддержки инструмента.
-
Iron Constraint — отличный инструмент с множеством готовых шаблонов для тех, кто ценит статическую типизацию в Scala 3.
-
Advanced Code Analysis in IntelliJ IDEA — если вы все еще активно не пользуетесь хоткеями, вот вам знак, что пора.
Highlights
В этом блоке не всегда свежие, но зацепившие наш взгляд ресурсы под флагом «очумелые ручки». Авторы творят что-то интересное, необычное, но не обязательно полезное:
-
ScaLaMatrixRain — кто-то пересматривает «Гарри Поттера» под Новый год, но мы предпочитаем «Матрицу». Жаль, что ее не крутят в кинотеатрах, но благодаря этому проекту каждый из нас сможет запустить свою «матрицу» дома.
Комьюнити-движ
Раздел курьезных и любопытных событий в мире Scala-общества. Мы хотели бы видеть его объемным и живым. Если что-то пропустили или у вас есть предложения — ждем вас в комментариях:
-
The IntelliJ Scala Plugin in 2024 — JetBrains по результатам опроса разработчиков в 2024 году подвели итоги года по Scala. Доступна более полная инфографика по всем языкам программирования.
Настя
Из зацепившего мой взгляд: в Южной Корее аж 15% разработчиков — женщины.
-
Join the Open Web — рано или поздно на пути своего развития программист приходит к мысли о цифровой гигиене.
Миша
После GPT-бума осознанное, выборочное потребление контента — это острая необходимость при развитии современного разработчика!
Настя
Мне нравится парадигма индивидуальных минималистических блогов от специалистов своего дела, так что призывы к подобному меня только радуют. (─‿‿─)
Эвелина
Нельзя не согласиться со всеми идеями, но мы не можем отказаться от соцсетей, т. к. они выполняют функцию агрегаторов контента, в том числе и хорошего.
-
december adventure 2024 — заметки, типичная жизнь скалиста: утром покатался на коньках, вечером поправил SIP. А как у вас прошел декабрь? (=^ ◡ ^=)
-
Scala Advent of Code 2024 — примеры решений Advent of Code 2024 на Scala.
-
Bounties SoftwareMill — теперь деньги за кодинг опенсорс-задач раздает не только lihaoyi, но и целый SoftwareMill.
-
Scala 2 maintenance plans — Scala 2.13 жил, жив и будет жить.
До встречи в следующем году! ♡\( ̄▽ ̄)/♡
Над дайджестом работали @Melkaya_150cm, @EvieLynn, @haskiindahouse. Ваши идеи, предложения, обратную связь с удовольствием ждем в комментариях! <( ̄︶ ̄)>
Предыдущие выпуски:
ссылка на оригинал статьи https://habr.com/ru/articles/870380/
Добавить комментарий