Scala Digest. Выпуск 20

965136eb6146b187329e480ad5f74a1e.png

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

Приветствуем любую обратную связь! (づ ◕‿◕)づ  Теперь вы можете поделиться собственными материалами!

Релизы

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

Tinkoff Scala meetup & open-source

Рубрика для митапов и релизов библиотек и фреймворков, рожденных в недрах Scala-комьюнити Т-Банка:

  • T-Scala — вышел финальный выпуск второго сезона видеоподкаста, где разработчики и руководители проектов рассказывают, как устроены наши продукты на Scala. Призываем всех посмотреть! А под выпуском про держателей профессий и вовсе можно оставить благодарственные комментарии: ведь именно благодаря героям этой серии мы тут. Им принадлежала идея запустить русскоязычный Scala Digest в таком формате.

Статьи

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

  • New Prioritization of Givens in Scala 3.7 — этот мир устроен просто: кто любит имплиситы и неявные функции, тот страдает за свою любовь. В Scala 3.7 анонсированы изменения для given в рамках поиска ближайшего подходящего значения, когда значений несколько. Настоятельно рекомендуем ознакомиться и попробовать потормошить свой код уже в 3.5 со специальными флагами.

  • Direct-style Bootzooka: 2024 update — этот проект, «швейцарский нож» от мира программирования, получил в 2024 году обновление в виде существенного рефакторинга бэкендовой части. Ушли от парадигмы эффектов в сторону прямого стиля, подключили нашу любимую библиотеку Ox с ее виртуальными потоками от 21-й Java. С одной стороны, Bootzooka остается инструментом, который удобно использовать для старта своего пет-проекта, а с другой — теперь это также любопытный демонстрационный экземпляр того, как скрестить ужа с гадюкой. В любом случае причин взглянуть на проект поближе стало только больше:)

  • Генерация фракталов методом хаоса, UI на ScalaFX — если во время чтения этой статьи у вас не зачесались руки хотя бы повторить описанные шаги или вовсе попробовать сделать что-то свое похожее, то вы явно персона, не отягощенная грехом любопытства. Используя ScalaFX, автор на ваших глазах создает простенькое приложение, подробнейше расписывая каждый шаг начиная с подключения библиотек, плагинов и включения флагов в sbt.

    e1c0be92e2497be4a2e348311b7ffb8b.pngНастя

    По сообщениям очевидцев, во время чтения статьи я выглядела вот так:
    (ノ◕ヮ◕)ノ*: ・゚✧

  • Pseudorandom Acts of Kindness —, а вы любите генерировать рандомные тестовые данные? Если вы уже забыли о возвращении Jon Pretty в Scala-мир и его новой огромной экосистеме библиотек Soundness с поразительно крутыми иконами, то вот вам знак и прикольная библиотечка, позволяющая гибко конфигурировать вариации вашего рандомайзера.

  • Crafting types with Scala 3 macros — Part 2: A Whitebox Macro — вторая часть серии про метапрограммирование. Внимание, это не учебная тревога: материал объемный и предназначен для «уверенных пользователей» Scala. Предлагаем добавить его в закладки и каждый раз, когда вам захочется заняться черной магией — метапрограммированием, — открывать серию статей и откусывать по кусочку.

  • The Tri-Z Architecture

    8fdfc75feecd1b4fa7a7724077bf0d95.pngНастя

    После прочтения этого материала я осознала, как, оказывается, глубока кроличья нора, обширен мир Z-эффектов и насколько малую часть я использую в повседневной работе. ZPure, ZSTM и их использование для построения архитектуры для серверов — ныряйте вместе со мной.

  • Unexpected Scala Functions: groupMap — «Все новое — это хорошо забытое старое», или Как перечитывание документации любимого языка открывает нам новые функции.

  • sudori part 4 — продолжаем следить за тем, как Eugene Yokota разрабатывает решение для sbt 2.x с удаленным кэшем и Bazel.

  • MavenGate gets it all wrong and hurts open source — история, которую следует услышать, если вы занимаетесь open-source. Рассказывается, что MavenGate может пометить ваши пакеты как уязвимые и забанить аккаунт, вместо того чтобы решать проблему на стороне MavenCentral и не позволять злоумышленникам заливать хаканые пакеты в ваш неймспейс. Тем не менее недежурный ответ от Sonatype в комментариях немного радует и внушает надежду, что подобного впредь происходить не будет.

  • The simplest Dependency Injection. Pure Scala, no magic, works for all Scala 2 and 3 and JS and Native — как подметил пользователь в комментариях, «The most puzzling thing about programming is the lengths to which developers will go to in order to avoid passing parameters or saying 'new'». А для ценителей ZIO можем порекомендовать ознакомиться с материалом.

Скрытый текст

Этим занималась редакция. Рубрика для всех и для никого

В богатом инженерном мире важен не столько навык владения конкретным языком программирования, сколько умение писать код грамотно с точки зрения архитектуры, поэтому хотим пролить свет на замечательную книжку A Philosophy of Software Design, John K. Ousterhout. 

Она учит здравым принципам написания простого, гибкого и легко поддерживаемого кода, прививая видение хорошего дизайна. Книга написана простейшим языком, присутствует большое количество разборов плохих и хороших решений, а страницы не переполнены громоздкими код-сниппетами. Нам она очень понравилась, и мы считаем, что это просто must-read для каждого разработчика!

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

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

Tooling

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

  • JetBrains AI Assistant 2024.2 — теперь ИИ поможет разрешить ваш git-конфликт при обновлении ветки, создать новую папку в терминале, забрать ребенка из детсада… ой, извините, эта функция планируется в следующем обновлении.

Highlights

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

  • Decisions4s — любопытный инструмент для описания логики принятия решений и последующей визуализации их. В сопровождение имеются и документация, и небольшая пояснительная статья. Выглядит интригующе, аж ручки зачесались попробовать в пет-проекте (つ✧ω✧)つ

  • Tour of Scala — простой и удобный ресурс для обучения Scala с нуля. Есть простые очевидные объяснения теории и легкие понятные упражнения.

    97bebfd1e321cc8596eb141de2496fb1.pngНастя

    Если бы я вела группу школьников по обучению Scala, я бы взяла себе этот ресурс на занятия и домашку.

  • leases4s — если вы не знали, что у Kubernetes есть Lease и что им можно до определенной степени управлять через HTTP-команды, то знайте. Библиотека предоставляет инструментарий для обращения с Lease, а в дополнение можем посоветовать статью.

  • snapshot4s

    1faf71a2e75b807354fa31470f764d17.pngНастя

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

  • instant-scala — если вы уже наигрались со scala-cli и тот прочно вошел в вашу повседневную рутину вместо bash, то, возможно, этот инструмент вас порадует. Тот же самый scala-cli, но теперь с мгновенным исполнением — при условии уже существующих предыдущих запусков экземпляров скрипта.

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

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

  • What happened to Adam Fraser? — Adam Fraser, один из наших любимейших авторов и весьма значимая персона в Scala-комьюнити, пропал с общественных радаров, опубликовав пост о том, что он покинул Ziverge. Держим кулачки за то, что скоро он объявится и вновь будет радовать нас и все сообщество Scala крутыми проектами. Было бы жаль потерять такого крутого лидера мнений нашего комьюнити.

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

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

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

Скрытый текст

© Habrahabr.ru