Scala Digest. Выпуск 18

от автора

Привет, Хабр! Наша коллега Карина в этом месяце защитила диплом и принимает по этому поводу поздравления в комментариях (。•̀ᴗ-)✧ 

А тем временем мы — Рома, Настя и Эвелина, бэкенд-разработчики Т-Банка — пишем код на Scala и продолжаем гореть желанием его популяризировать.

Мы собираем и агрегируем новости из разных источников, включая Scala Times, блог Petr Zapletal и канал Scala Nishtyaki, добавляем дополнительные новости и собственные комментарии. Мотивацию черпаем из желания развиваться и делиться полученными знаниями. Приветствуем любую обратную связь! (づ ◕‿◕ )づ

Теперь вы можете поделиться собственными материалами!

Релизы

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

Статьи

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

  • Lagom is approaching end of life: possible migration paths — светлая память Lagom. Lightbend прекращают поддержку своего фреймворка 1 июля, поэтому сотрудник SoftwareMill (¬‿¬ ) Adam Warski написал статью о том, как и на что можно съехать, заодно проведя рефакторинг проекта.

  • Functional Parallel Programming in the wild — классная статья о создании небольшого веб-сервиса с нуля. Отлично зайдет как подробный разбор pet-проекта всем новичкам, пробующим свои силы в функциональном программировании на Scala. 

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

    Статья написана в итеративном стиле: сперва запуск простенького Main-а, далее — веб-сервис с эндпоинтом-заглушкой, потом моделирование домена, разбор работы с API GitHub-а и авторизационном токеном, а в конце — бизнес-логика и реальные эндпоинты. Для полного набора не хватает только тестов и деплоя в виртуальное окружение.

  • Scala service combined with PostgreSQL, Flyway, Doobie, Hikari-CP, Ciris, IO(Cats Effects), Http4s, ZIO-JSON, and Cake Pattern — это база. У начинающих скалистов 99% приложений выглядят так, меняются только используемые библиотеки.

  • Forking and Interruption in ZIO — маленькая жизненная история о том, как подломанный с точки зрения параллелизма код + обновление версии либы = обстоятельства, в которых ты вынужден разобраться, как работают скопы и прерывания, и мини-статья в блог на десерт (ง ื▿ ื)ว

  • WebSocket chat using structured concurrency, Ox & Tapir — если у вас кончились идеи, через что еще можно реализовать сервис на веб-сокетах, то Adam Warski спешит к вам на помощь и предлагает сделать это через новомодные Java 21 и Ox. Спокойно повторяйте в домашних условиях.

  • Single tenant vs multitenancy — choosing the optimal solution — микропосвящение в варианты подписок на облачные серверы провайдеров. 

    Настя

    Мне, как человеку от этого крайне далекого, было любопытно повтыкать на картинки, иллюстрирующие эти варианты

  • Tapir Tech Update the Deep Dive — Softwaremill запускают собственный ежемесячный дайджест, посвященный новостям в мире технологий за последний месяц, а также направлениям архитектуры, Machine Learning и DevOps (☞°ヮ°)☞ ☜(°ヮ°☜)

  • Introducing TARP Stack ⛺ — Tapir, React and PostgreSQL — если вам 👨‍💻 в вашем семейном 🏠 чате не хватает 🤷‍♂️ эмодзи в сообщениях родственников 👯‍♀️, то проходим по ссылке читать статью, становимся TARP Stack разработчиками с претензией на FullStack и радуемся жизни. И нельзя не отметить обилие красивых рисунков и пояснительных подписей со стрелочками, во время чтения всплывали флешбэки студенческих времен об оформлении лекций в конспектах.

А сюда мы спрятали еще парочку интересных статей:

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

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

  • Tapir Tutorials — что может быть лучше видео от Adam Warski? Четыре видео от Adam Warski с туториалами по Tapir!

  • Lean Scala — плохо или хорошо? и Этот метод сделает тебя 10x-разработчиком — наши нежно любимые флетмапперсы продолжают экспериментировать с опенингами, стараются порадовать нас обсуждением хайповых тем, а также говорят о том, как и в чем ковыряются они сами последнее время.

  • Kit Langton YouTube — на личном ютуб-канале Kit Langton-а спустя более чем год снова стали появляться видео, посвященные Scala!٩(๑・ิᴗ・ิ)۶٩(・ิᴗ・ิ๑)۶ Вышла пара видео о макросах в Scala 3, совместно с Adam Hearn в серии Computer Hour.

  • ScalaMatsuri 2024 — в первых числах июня прошла одна из самых крупных на азиатской части scala-конференция ScalaMatsuri 2024, и уже успели подъехать записи докладов! Кроме того, конференция является мультиязычной и в записях можно встретить не только английский язык. Как на счет того, чтобы бросить себе челлендж и попробовать послушать доклады о Scala на японском?)

Ну а если вам не хватило докладов, то держим в курсе, что продолжают выходить записи конференции SCALAR.

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

Tooling

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

  • given 0.1.6 — Kit Langton отвлекся на минутку от своего любимого в последний год Swift и напилил на Rust для нас библиотеку для автоматического обновления зависимостей в scala-проектах.

  • virgil-kyo 0.1.1 — новая либа для создания Cassandra клиента. Стек — Scala 3, Kyo и Magnolia.

Highligts

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

  • flix — большое спасибо Игорь Цалко, который на наших внутренних докладах познакомил с интересным, пока еще только академическим языком flix. Интересен он по множеству причин: явное разделение на чистые и нечистые функции, встроенная IO-монада, поддержка логического программирования на datalog из коробки и так далее. Нет большого смысла перечислять все, что и так отлично расписано на сайте. 

    Главная фича, заинтересовавшая нас, состоит в том, что компилятор написан на Scala (да, Java стал уже дедушкой) и занимает не 600 000+ строк кода как компилятор dotty, а всего лишь около 70 000, что делает возможным на досуге засесть и с банкой пива / чашкой чая закопаться в код и собственными глазами увидеть, как конструируют современные компиляторы. Проект активно поддерживается исследовательской группой Орхусского университета, и ребята оттуда будто бы активно идут на контакт и помогают разобраться с проблемными местами. К слову, зацените прекрасно написанный раздел FAQ.

  • Soundness — Jon Pretty вернулся не только в коммьюнити языка, но и в сообщество контрибьюторов в open source с целой экосистемой разношерстных модулей для Scala 3. Никаких вам очередных либ для парсинга JSON-ов и обвязок над Netty. Модули действительно интересные, специфичные, легковесные и изолированные друг от друга. А еще в комплекте идут поразительно крутые иконки и названия ♡\( ̄▽ ̄)/♡ К экосистеме уже выпущено несколько статьей для отдельных модулей: Wisteria, Dissonance, Dendrology, Quantitative. 

    Настя

    Лично меня очень зацепила либа Dendrology, и я собираюсь попробовать ее на днях

Поразительно крутые иконки модулей Soundness

Поразительно крутые иконки модулей Soundness

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

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

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

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

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

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

  • 12 years of the com.lihaoyi Scala Platform — запись, меняющая ваше настроение минимум три раза за время прочтения. В начале это полный ностальгии кусок о том, как ковалась экосистема либ от lihaoyi. Интересно читать, какими экспериментами в плане кода занимался тогдашний автор-студент, в каких языках он себя искал и о чем вообще думал в то время. Есть даже место мемам о странных операторах функций и на что они похожи. 

    Далее автор знакомит нас со своим видением мира Scala в плане сложившихся и отмирающих подходов, предлагая третий, новый путь. Признавая вклад и мощь сообщества любителей cats и zio, он пишет о расширяющемся пути развития, который будет предназначен для завлечения новичков и роста комьюнити за счет новой крови, а не замещения существующих подходов. 

    В основу этого пути он кладет свою экосистему, которая стабильно работает и существует на протяжении 12 лет. И на этой светлой, возвышенной ноте вгоняет читателей в грусть следующим абзацем, похожим на крик о помощи и прошение милостыни одновременно. Спаси Scala сегодня, начни писать в простом прямом стиле уже сейчас. И да, по ходу повествования можно было встретить пару камней в огород Lightbend с их фондовым финансированием и легкую зависть к пиар-возможностям основателя экосистемы zio. В общем, предлагаем вам самим ознакомиться с материалом.

  • Announcing Business4s: a new value proposition for Scala — новый манифест о том, куда должна смотреть и развиваться Scala. Кратко: давайте решать бизнес-задачи, а не технические. Никаких громких имен в качестве опоры, из того, что есть сейчас, — две либы, стиль написания, канал в Discord и профиль на X (i: бывший Твиттер).

  • Scala Is Not Going Anywhere — скорее бы домой, сделать запись в дневнике эмоций: Scala хорошо работает в data-инжиниринге, поэтому все будет хорошо.

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

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

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


ссылка на оригинал статьи https://habr.com/ru/articles/825906/


Комментарии

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *