Scala Digest. Выпуск 16

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

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

Релизы

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

  • IntelliJ Scala Plugin 2024.1 Is Out! — завезли целый ворох полезных изменений для работы со Scala 3 и его синтаксисом. Если ваш проект использует третью версию языка и IDE для разработки — IntelliJ IDEA, то настоятельно рекомендуем обновить версию используемого плагина и зайти почитать изменения;

  • IntelliJ IDEA 2024.1 Is Out! — в этой версии IDE обладатели Ultimate-версии найдут для себя много вкусных фич, причем больше всего подарков завезли джавистам и котлинистам. Не можем не отметить заметный акцент на AI Assistant и автодополнении кода. К данному релизу JetBrains даже выпустили отдельное видео: What’s New in IntelliJ IDEA 2024.1:

  • sbt 1.10.0-RC2 — в RC2 продолжается работа над внедрением SIP-51. Чтобы внезапно не обнаружить в sbt 1.10.0 этот сюрприз, стоит ознакомиться хотя бы с текущим чейнджлогом;

  • JetBrains Toolbox App 2.3;

  • Scala 3.4.1 is now available!;

  • Pants 2.20.0 is released!;

  • com-lihaoyi releases for Scala-Native 0.5.0;

  • scala-cli 1.2.3;

  • smithy4s 0.18.16;

  • metals 1.3.0;

  • slick 3.5.0 - 3.5.1;

  • magnolia 1.3.5, 1.1.9;

  • sttp 4.0.0-M12;

  • tapir 1.10.3-1.10.5;

  • zio-http 3.0.0-RC6;

  • zio 2.0.22, 2.1.0-RC2-RC3;

  • chimney 1.0.0-M5-M7, 1.0.0-RC1;

  • iron 2.1.0;

  • tyrian 0.6.2;

  • izumi 1.2.8;

  • mockingbird.

Статьи

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

  • Scala 3 Data Transformation Library: ducktape 0.2.0. — недавно вышел релиз ducktape 0.2.0, аналог chimney, но только для Scala 3. В этом блог-посте разработчик библиотеки рассказывает о внутрянке проекта и о том, как с пришествием 0.2.0 новые фичи библиотеки позволяют пользоваться ею с кайфом. В общем, загляните, все как в chimney!

  • SIP-61 - Unroll Default Arguments for Binary Compatibility — интересный SIP от Li Haoyi, с бурным обсуждением нейминга от Одерски. Само по себе предложение выглядит вкусным для либ: в текущей реальности, когда в классе или функции добавляется параметр, имеющий дефолтное значение, новая версия либы является семантически совместимой для пользователя, но бинарно несовместимой с предыдущей версией. Предлагается создать специальную аннотацию, помечать ею такие поля и получать в итоге бинарную совместимость.

  • Capture Checking in Scala 3.4 — Mark Hammons рассказывает, как усиленно разрабатываемый capture checking поможет сделать менеджмент ресурсов еще более безопасным.

  • Alexandru Nedelcu’s comment — Alexandru Nedelcu очень клевый мужик круто, понятно и подробно пояснил за имплиситы новичку на Reddit-e, несмотря на то, что таких вопросов миллион в интернете, а документации еще больше.

  • Mocking Libraries can be your doom — небольшая статья о том, что такое мокирование в тестах и как мокировать правильно. Отметим пикантность, состояющую в том, что в тэгах статьи значится “Scala”, а весь код статьи на python (¬‿¬)

  • Folding Cheat Sheet #4 — слайды Philip Schwarz как отдельный вид искусства. Они в целом по делу, но иногда такие забавные.

    А здесь могла быть ваша статья :) Присылайте новости, которые хотите увидеть в дайджесте, а мы скажем вам спасибо в следующем выпуске!

  • Benchmarking Tapir: Part 3 (Loom) — “We are going to compare the following backends: http4s-vanilla, pekko-vanilla, vertx-vanilla, tapir-http4s, tapir-pekko, tapir-vertx (Future-based Vert.X server), tapir-vertx-ce (Tapir Vert.X backend using Cats Effect), and finally, our fresh contenders: tapir-nima and tapir-netty-loom.”

Сотрудники softwaremill со своими бэкендами tapir-а такие:
Сотрудники softwaremill со своими бэкендами tapir-а такие:

Вышли три части мощнейшего введения в теорию типов от @Underskyer1 на Habr. В отличие от классических учебников и методичек по теории типов, здесь все написано человеческим языком и с реальными примерами современного Scala-кода, использующего подобные техники. Наш рекомендасьон.

  • Обобщенные типы. Часть 1/3. Полиморфные типы высокого рода

  • Обобщенные типы. Часть 2/3. Классы типов и контейнеры

  • Обобщенные типы. Часть 3/3. Применение контейнерных типов 

А сюда мы спрятали еще парочку интересных статей:
  • Supporting high-performance response streaming in Shardcake

  • KubeCon EU 2024 — summary of conference worth every penny

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

Собрали ссылки как на уже известные и популярные, так и на ноунейм-каналы и видео про Scala:

А сюда мы спрятали еще немного интересного:

Tooling

Кусочек дайджеста, где мы рассказываем о появлении новых и улучшении уже существующих инструментов для разработки:

Highlights

В этом блоке не всегда свежие, но зацепившие наш взгляд ресурсы под флагом «очумелые ручки». Авторы творят что-то интересное, необычное, но не обязательно полезное:

Комьюнити-движ

Раздел курьезных и любопытных событий в мире scala-общества, и мы хотели бы видеть его объемным и живым. Если что-то пропустили или у вас есть предложения — ждем вас в комментариях:

До встречи через месяц! ♡\( ̄▽ ̄)/♡

Предыдущие выпуски:

Над дайджестом работали @Melkaya_150cm, @Ivoya, @tcarina. Ваши идеи, предложения, обратную связь с удовольствием ждем в комментариях! <( ̄︶ ̄)>

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


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

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

Недавно стал использовать новый способ получения SSL-сертификатов. Сохранил небольшую шпаргалку для себя, чтобы каждый раз не вспоминать шаги, команды и вот это вот всё. Потом решил, что такая инструк...
Всем привет! Это Александр Макаров и второй выпуск Yii новостей в этом году.С момента последнего выпуска в феврале прошло 3 месяца. Мы стремились ускорить разработку Yii3, но также продолжали поддержи...
Будучи разработчиком программного обеспечения, вы наверняка сталкивались с ситуацией, что получив какой-то результат из внешних источников (обычно внешнего сервиса), необходимо выполнить функцию хотя ...
В большинстве случаев люди приходят учиться в Яндекс.Практикум, чтобы уйти со старой работы в новую или смежную область. Чтобы студент после окончания обучения действительно нашёл новую р...
Многие начинающие и не очень Scala разработчики принимают implicits как умеренно полезную возможность. Использование обычно ограничивается передачей ExecutionContext  во Future. Дру...