Scala Digest. Выпуск 15

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

Привет, Хабр! Мы — Рома, Настя и Карина — бэкенд-разработчики Тинькофф, пишем код на Scala и горим желанием его популяризировать. Мы собираем и агрегируем новости из разных источников, включая Scala Times, блог Petr Zapletal и канал Scala Nishtyaki, добавляем новости и собственные комментарии. Свою мотивацию мы черпаем из желания развиваться и делиться полученными знаниями. Приветствуем любую обратную связь! (づ ◕‿◕ )づ

Релизы

Собрали последние обновления популярных и полезных библиотек за пару месяцев:

  • scala-cli v1.2.0 — активно пилят фичи и поддерживают новые версии Scala;

  • slick v3.5.0 — через полтора года после последнего стабильного релиза выпустили новую версию с поддержкой Scala 3;

  • tree-sitter-scala 0.21.0 — «ни фига себе Василий обошел Йокоту по контрибутам»© Карина;

  • dotty v3.3.3 и v3.4.1 RC2;

  • scala v2.13.13 и v2.12.19;

  • sttp v3.9.5 и v4.0.0-M11;

  • tapir v1.10.0;

  • cats-effect v3.5.4;

  • fs2 v3.10.0;

  • kittens v3.3.0;

  • Intellij IDEA 2023.3.6 и 2024.1-beta;

  • sbt-assembly v2.2.0;

  • zio-http v3.0.0-RC5;

  • zio-kafka v2.7.4;

  • iron v2.5.0;

  • izumi v1.2.7.

Статьи

Делимся свежими статьями, репозиториями и исследованиями, которые показались нам интересными. В отдельный блок вынесли ресурсы, где авторы используют Scala 3. Enjoy:

  • Crossing those hills и A false end. Не зря Mark Hammons в конце каждой своей статьи оставляет фразу «Happy Scala hacking!», ибо некоторые этюды из его постов заставляют удивленно хлопать глазами. Эти части — продолжение приключений о поиске красивого выражения платформозависимых типов на Scala 3. Наивные подходы с типами-объединениями и path-dependent-типами к успеху не привели.

  • Benchmarking Tapir: Part 2. Продолжение исследования оверхеда, который приносит tapir для различных серверных бэкендов. Завезли анализ затрачиваемых CPU и RAM и флеймграфы. По найденным потенциальным узким местам завели ряд задачек на GitHub, большая часть из которых уже закрыта. Наше уважение за такой конструктивный подход!

  • SSE vs WebSockets: Comparing Real-Time Communication Protocols. Хорошая статья с обзором технологий Server Side Events и Websocket. Наверное, ветераны клиент-серверных архитектур ничего нового не найдут. Но если не доводилось работать с подобными решениями, это отличный шанс поверхностно посмотреть, как все устроено.

  • Зачем в Scala трамплины и как их использовать. «Вошли и вышли, приключение на 20 минут». О том, что такое trampolining, как написать свой аналог Eval и зачем все это нужно. Отдельно стоит глянуть комментарий в обсуждении от Seigert: там есть некоторый ответ на вопрос «Почему все так?».

  • Scala 3.3.2 post-mortem analysis. Разбор postmortem из компилятора Dotty с нарушением обратной совместимости, которое произошло из-за отсутствия тестов.

  • Deriving the Elm Architecture. Автор Tyrian и Indigo о том, как с помощью простых логических переходов и ряда первоначальных хотелок при проектировании GUI прийти к тому, что называется Elm Architecture.

  • Flavors of shared state in Cats Effect. Солидненькая статья с введением в Shared States. Начинается с простых изоляций на уровне Ref, а заканчивается более продвинутым реальным примером использования с Middleware и IOLocal.

  • Jox 0.1: virtual-thread friendly channels for Java. Первый релиз библиотеки для go-like-каналов на виртуальных тредах для Java. Да, это Java-библиотека. API, предоставляемый в Jox, используется уже для реализации scala-библиотеки ox, про которую есть целая серия статей Adam Warski.

  • Имплиситы и тайпклассы в Scala. Приятное для чтения, хорошо структурированное введение в implicit и паттерн typeclass. Код на Scala 2, впрочем, как и наши с вами проекты ┐(︶▽︶)┌

  • The holy graal of GitHub Actions. Совсем недавно в Github Actions добавили поддержку Brand New M1 MacOS runner

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


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

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

Совсем недавно корпорация Intel заявила о прекращении финансовой поддержки линейки мини-ПК Next Unit of Compute (NUC). Производить эти устройства компания начала свыше 10 лет назад, в 2012 году. ...
Новая порция выпускных проектов, на этот раз — студентов нашего образовательного проекта в МГТУ им. Баумана. Ребята сами опишут свои разработки, а посмотреть видео с защиты можно здесь. Если вы хотите...
Два года назад, утомлённый длинным списком нереализованных идей проектов в телефоне, я решил попробовать осуществлять по идее за неделю в их минимальном виде. Мне так и не удалось придерживаться ...
Привет! Меня зовут Александр Солтанович и я разработчик в компании Wargaming. В команде Acquisition Tools мы работаем над Tracking Engine – проектом, который помогает соб...