Scala Digest. Выпуск 21
Привет, Хабр! Мы — @Ivoya, @Melkaya_150cm, @tcarina и @EvieLynn — бэкенд-разработчики Т-Банка, пишем код на Scala и горим желанием его популяризировать. Мы собираем и агрегируем новости из разных источников, включая Scala Times, блог Petr Zapletal и канал Scala Nishtyaki, добавляем дополнительные новости и собственные комментарии. Мотивацию мы черпаем из желания развиваться и делиться полученными знаниями. Приветствуем любую обратную связь! (づ ◕‿◕)づ
Теперь вы можете поделиться собственными материалами!
Релизы
Собрали последние обновления популярных и полезных библиотек за пару месяцев:
Статьи
В этом разделе делимся свежими статьями, репозиториями и исследованиями, которые нам показались интересными. В отдельный блок вынесли ресурсы, где авторы используют Scala 3. Enjoy:
Поиск всех последовательностей чисел от 1 до n, где сумма соседних чисел является квадратом — возвращаемся к истокам, к нашим нежно любимым алгоритмам. Приятно на пять минут занырнуть в глубокие воды собственной памяти и ковырнуть задачку в вакууме.
Жизнь, смерть и р̶о̶б̶о̶т̶ы̶ управление ресурсами в Scala — можно пользоваться ZIO.Scope и бед не знать, а можно заморочиться и погрузиться в jvm-мир управления памятью и закрытием-высвобождением ресурсов.
The case for case objects in Scala — если вы хотите объяснить джуну всю свою невыразимую любовь к case class, киньте в него этой статьей.
Streaming Hash Computations — если вам когда-либо понадобится захешировать не просто ключ, а прямо поток байтов, теперь вы знаете, куда подсмотреть для выбора оптимального решения своей задачи.
sudori part 5 — между походом на пляж и занятиями скейтбордингом Юджин Йокота умудряется поработать для нас над удаленным кэшем для будущего SBT 2.0. В этот раз — над корректным кэшированием инкрементальных тестов.
RFC-4: persistent worker —, а здесь обсуждает создание persistent worker-а.
Spark Essentials: руководство по настройке и запуску проектов Spark с помощью Scala и SBT
НастяПро Spark без комментариев
com.lihaoyi issue bounties — Лихаои набирает обороты в своей баунти-системе и в сентябре подготовил суммарно 10 000 $ и список заданий, которые призваны расширить использование Mill на Java и других языках. В этот раз задания оказались настолько проще и «жирнее», что к моменту выпуска дайджеста зеленых галочек на них уже не счесть. Хотя некоторые задания с предыдущих баунти все еще открыты и актуальны.
Launch Scala, faster than Native — начали забывать про великолепный ансамбль библиотек Soundness от вернувшегося Jon Pretty? Не переживайте, мы напомним. В этот раз в центре внимания инструмент Ethereal, который станет CLI к вашему сервису.
НастяОй, кажется, я вижу на горизонте заблестевшие глаза багхантеров
SBT Task to Build Frontend Components — маленькое напоминание о том, какая на самом деле вундервафля SBT: в нем можно натурально создать исполняемую команду по установке фронтового инструмента (npm).
Writing an Android app with Scala.js — с каждой новой прочитанной историей о создании работающего приложения на Andriod через Scala.js с Tyrian ручонки все больше тянутся попробовать написать что-то этакое свое. Эх, было бы еще 36 часов в сутках, чтобы все успеть…
Видео и доклады
Собрали ссылки как на уже известные и популярные, так и на ноунейм-каналы и видео про Scala:
Может ли Best effort компиляция потеснить Idea — у наших любимых флэтмапперсов после двухмесячного перерыва вышел новый выпуск. Видимо, ребята зарядились солнышком и энергией, ибо эпизод вышел живейшим и продолжительным. Вместо джингла в этот раз — ностальгический разговор о том, кто как пытался запускать игры на Linux в достимдековские времена. А сразу после перемыли косточки и накидали камней в огород: uPickle с его особенной сериализацией Option[Option], его автору, инструменту scala toolkit, организации ссылок в документации на главной Scala. Досталось даже Python: «Не надо ожидать, что Питон — это нормальный язык», «Питон — это хороший Баш». В общем, если хотите узнать, почему совсем скоро станет без разницы, где работать — в IntelliJ Idea или Metals, в какой версии Scala появились имплиситы, какие правила работы диктует программистам-подрядчикам Майкрософт, и многое другое — переходите и слушайте подкаст. Теперь выходит даже на Ютубе!
Pure Functions — идем в ногу со временем и обозреваем YouTube Shorts.
[ICFP'24] Green — ICFP Papers and Events — восьмичасовая запись конференции в Милане, в комментариях рекомендовали к прочтению Degrees of Separation: A Flexible Type System for Safe Concurrencу.
А сюда мы спрятали еще несколько интересных видео:
Tooling
Кусочек дайджеста, где мы рассказываем о появлении новых и улучшении уже существующих инструментов для разработки:
Squery — в комментариях к прошлому выпуску уже обсуждали SQL в Scala. Как говорится в заголовке, No DSLs, no fuss, just plain SQL. Ссылка на GitHub.
Scapegoat-Scalafix — Scapegoat-линтер для Scala 2 теперь поддерживается и для третьей версии. Подробнее о его возможностях можно почитать в Readme.
Highlights
В этом блоке не всегда свежие, но зацепившие наш взгляд ресурсы под флагом «очумелые ручки». Авторы творят что-то интересное, необычное, но не обязательно полезное:
os-lib — если вы еще не встречались с этой библиотечкой, то вот вам интересное решение для работы с операционной системой прямо из Scala-кода.
lohika — proof generator, есть собственный UI и написан на Scala! Выглядит весьма интересно и необычно. Дополнительно можно почитать статью в двух частях про логическое программирование: ч. 1 и ч. 2.
zzspec — ZIO-обвязка над testcontainer-ами для удобного написания интеграционных тестов, если ваша религия — это ZIO. На первый взгляд, это аналог модуля Distage для интеграционников с контейнерами.
В прошлом месяце в EPFL давали домашку по написанию клиента к базе данных. Собрали часть из них, можно проверять и оценивать:
А сюда мы спрятали еще одну интересную статью:
Комьюнити-движ
Раздел курьезных и любопытных событий в мире Scala-общества. Мы хотели бы видеть его объемным и живым. Если что-то пропустили или у вас есть предложения — ждем вас в комментариях:
Trusting Open-Source — Алекс Недельсу поднимает вопрос о важности существования истинного опенсорса, и мы солидарны с ним в этом моменте. А еще он по-стариковски ворчит о том, как много развелось псевдоопенсорсных лицензий, которые затаскают вас по судам, ежели вдруг переменится ветер их доброй воли.
Just one more type of type bro, I swear… — ожидайте сиквел «Еще одна простая библиотека json-сериализации».
GOTO Considered Harmful — (͡° ͜ʖ ͡°)
До встречи через месяц! ♡\( ̄▽ ̄)/♡
Над дайджестом работали @Melkaya_150cm, @Ivoya, @tcarina, @EvieLynn. Ваши идеи, предложения, обратную связь с удовольствием ждем в комментариях! <( ̄︶ ̄)>
Предыдущие выпуски:
Выпуски за 2023 год