Scala Digest. Выпуск 25

Моя цель - предложение широкого ассортимента товаров и услуг на постоянно высоком качестве обслуживания по самым выгодным ценам.

Привет, Хабр! Мы — Настя, Эвелина и Миша — бэкенд-разработчики Т-Банка, пишем код на 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;

  • Scala 3.6.3 is now available;

  • scala 3.3.5;

  • Announcing Scala.js 1.18.1;

  • scala-cli 1.6.1;

  • mill 0.12.5;

  • metals 1.5.1;

  • cats-effect 3.6.0-RC1;

  • fs2 3.12.0-RC1;

  • sttp 4.0.0-M25;

  • tapir 1.11.13;

  • magnolia scala3-1.3.9;

  • refined 0.11.3;

  • pekko 1.1.3;

  • tree-sitter-scala 0.23.4;

  • zio-schema 1.6.1

  • zio-kafka 2.10.0;

  • zio-elasticsearch 0.4.0;

  • Kyo 0.16.2;

  • scalasql 0.1.15;

  • cask 0.9.6;

  • Jar Jar Abrams 1.14.1 and sbt-assembly 2.3.1;

  • ducktape 0.2.7;

  • ifdef 0.4.0;

  • helenus v1.8.1;

  • smithy4s 0.18.29;

  • tyrian 0.12.0;

  • raise4s 0.5.0;

  • caliban 2.9.1;

  • magnum 2.0.0-M1;

  • helenus 1.8.1;

  • teckel 0.5.0;

  • oolong 0.5.0.

Статьи

  • 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.

  • Рекурсивные типы. Серия из пяти частей. Любите разбираться в математике и цените подробные объяснения? Эта серия как раз для вас! Здесь есть всё: академический стиль, математические обоснования и плавный переход от простого к сложному. Хороший способ почувствовать себя экспертом в рекурсивных типах после прочтения (─‿‿─)

А сюда мы спрятали еще несколько интересных статей:
  • Small Type-driven Dependency Injection in Effect Systems.

  • How JVM Executable Assembly Jars Work.

  • Scala in the Boudoir: Lifting the Veil on Opaque Types and Exporting Our Secrets.

Видео и доклады

  • 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-подходу ଲ(ⓛ ω ⓛ)ଲ

  • Doobie-typesafe 0.4.0.

  • ZIO Apache Arrow.

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. Ваши идеи, предложения, обратную связь с удовольствием ждем в комментариях! <( ̄︶ ̄)>

Выпуски за 2024 год:
  • Scala Digest #13

  • Scala Digest #14

  • Scala Digest #15

  • Scala Digest #16

  • Scala Digest #17

  • Scala Digest #18

  • Scala Digest #19

  • Scala Digest #20

  • Scala Digest #21

  • Scala Digest #22

  • Scala Digest #23

  • Scala Digest #24

Источник: https://habr.com/ru/companies/tbank/articles/879034/


Интересные статьи

Интересные статьи

Сегодня создание и поддержка веб-сайта стали неотъемлемой частью бизнеса. Если вы занимаетесь электронной коммерцией, ведете блог или разрабатываете корпоративный портал, вам потребуется надежная и фу...
Приятно познакомиться, мы битриксоиды. Да-да, те самые которые:- вообще не модные,- пишут НЕ на Laravel и Symphony,- возятся с кучей мягко говоря “неидеального” кода под названием “1С-Битрикс: Управле...
SWAP (своп) — это механизм виртуальной памяти, при котором часть данных из оперативной памяти (ОЗУ) перемещается на хранение на HDD (жёсткий диск), SSD (твёрдотельный накоп...
Добрый день всем! В прошлой статье, посвященной изучению Power Automate и Logic Apps, мы рассмотрели основные отличия между Power Automate и Logic Apps. Сегодня хотелось бы двинуться дальше и пок...
Хочу поделиться нашим годичным опытом при поиске решения для организации централизованного и упорядоченного доступа к ключам электронной защиты в нашей организации (ключи для доступа к площадкам ...