Привет, Хабр! Мы — Рома, Настя, Карина и Эвелина — бэкенд-разработчики Т-Банка, пишем код на 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.
Настя
По сообщениям очевидцев, во время чтения статьи я выглядела вот так:
(ノ◕ヮ◕)ノ*:・゚✧
Pseudorandom Acts of Kindness — а вы любите генерировать рандомные тестовые данные? Если вы уже забыли о возвращении Jon Pretty в Scala-мир и его новой огромной экосистеме библиотек Soundness с поразительно крутыми иконами, то вот вам знак и прикольная библиотечка, позволяющая гибко конфигурировать вариации вашего рандомайзера.
Crafting types with Scala 3 macros - Part 2: A Whitebox Macro — вторая часть серии про метапрограммирование. Внимание, это не учебная тревога: материал объемный и предназначен для «уверенных пользователей» Scala. Предлагаем добавить его в закладки и каждый раз, когда вам захочется заняться черной магией — метапрограммированием, — открывать серию статей и откусывать по кусочку.
-
Настя
После прочтения этого материала я осознала, как, оказывается, глубока кроличья нора, обширен мир 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 с нуля. Есть простые очевидные объяснения теории и легкие понятные упражнения.
Настя
Если бы я вела группу школьников по обучению Scala, я бы взяла себе этот ресурс на занятия и домашку.
scala-jdbc-routine — еще одна библиотека для работы с SQL-запросами в базы данных.
leases4s — если вы не знали, что у Kubernetes есть Lease и что им можно до определенной степени управлять через HTTP-команды, то знайте. Библиотека предоставляет инструментарий для обращения с Lease, а в дополнение можем посоветовать статью.
-
Настя
мне неизвестно, как далеко по временной шкале мы находимся от восстания машин, но этот инструмент определенно нервирует: согласно приведенным примерам и документации, он по команде в терминале допишет или обновит уже существующие тесты.
instant-scala — если вы уже наигрались со scala-cli и тот прочно вошел в вашу повседневную рутину вместо bash, то, возможно, этот инструмент вас порадует. Тот же самый scala-cli, но теперь с мгновенным исполнением — при условии уже существующих предыдущих запусков экземпляров скрипта.
Комьюнити-движ
Раздел курьезных и любопытных событий в мире Scala-общества. Мы хотели бы видеть его объемным и живым. Если что-то пропустили или у вас есть предложения — ждем вас в комментариях:
What happened to Adam Fraser? — Adam Fraser, один из наших любимейших авторов и весьма значимая персона в Scala-комьюнити, пропал с общественных радаров, опубликовав пост о том, что он покинул Ziverge. Держим кулачки за то, что скоро он объявится и вновь будет радовать нас и все сообщество Scala крутыми проектами. Было бы жаль потерять такого крутого лидера мнений нашего комьюнити.
Scala takeaways from the StackOverflow 2024 developer survey — мнение обычного пользователя о результатах опроса. Нелишним будет ознакомиться и прикинуть результаты на себя и коллег.
До встречи через месяц! ♡\( ̄▽ ̄)/♡
Над дайджестом работали @Melkaya_150cm, @Ivoya, @tcarina, @EvieLynn. Ваши идеи, предложения, обратную связь с удовольствием ждем в комментариях! <( ̄︶ ̄)>
Предыдущие выпуски: