Pull to refresh
311.62

Scala Digest. Выпуск 14

Level of difficultyEasy
Reading time6 min
Views1.3K

Привет, Хабр! Мы — Рома, Настя и Карина — бэкенд-разработчики Тинькофф, пишем код на Scala и горим желанием его популяризировать.


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

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

Теперь вы можете поделиться собственными материалами — мы опубликуем их в следующем выпуске и скажем вам спасибо ?

Релизы

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

Статьи

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

  • Build cities not buildings — softwaremill идут в коучинг и объясняют, как стать эффективным архитектором. Лейтмотивом мысль, что не стоит зацикливаться на конкретной задаче, нужно видеть верхнеуровневую картину и какую роль эта задача в ней играет.

  • AI Refactorings in IntelliJ IDEA — теперь AI-ассистент может объяснять и рефакторить куски кода. Классная фича для разработки. Совет дня: старую писанину лучше рефакторить только убедившись, что она покрыта тестами. Мало ли ;)

  • What is Green IT — Strategies and trends lined out — представьте ближайшее будущее: перекладываешь одну json-ину в другую, руки сами накалякали 70 строчек кода, в голове мысли о прекрасном. Юнит-тесты прошли, интеграционники уже гасят контейнеры, e2e пленительно сияют зеленой галочкой. Но! Что это такое? Не может быть! Неужели снова упал шаг оценки углеродного следа от твоего кода? Е-мое, опять не экофрендли-кодяка получилась. Пока не прибежали коллеги из экобезопасности, нужно срочно переписать. Предыдущие споры о том, что горение пятой точки и бумага, затраченная на написание выговора, суммарно оказывают куда больше влияния на парниковый эффект, их не убедили.

  • Errors happen. Can we get rid of them using ZIO Test? — довольно обширный туториал о том, как работать с zio-test. На самом деле это уже вторая статья в серии. В первой был написан REST API, здесь же — теория и практика о том, как все написанное тестировать. Даже если вы уже давно адепты zio-test, стоит взглянуть — хотя бы оттого, что как писал Л. Н. Толстой все main/scala-директории похожи друг на друга, каждая test/scala подходит к тестированию по-своему.

  • Composable concurrency scope of ZIO Semaphore — небольшой пример реализации конкурентного доступа к key-value-хранилищу через Semaphore и Scope из ZIO-2, как альтернатива любимому Ref.

  • Migrating event sourced Akka application from CockroachDB to AlloyDB — «что за базы данных такие бархатные». Название статьи звучит довольно сухо и четко. Это вам не Build cities not buildings из серии околоменеджерских статей от softwaremill. Но содержание действительно стоящее! Virtuslab делятся тем, как исследовали performance различных БД для задач построения распределенных очередей. Четкая методология, обилие технических деталей, множество красивых графиков, ясные выводы в conclusions. Будто вернулся в универские времена и читаешь отчет отличника о проделанной лабораторной работе по термодинамике.

  • Self-documenting code is a myth — Adam Warski без лишних философствований рассказывает, когда стоит взять и оставить пару комментариев над «очевидной» логикой. А Рома вот выпил две кружки кофе подряд и пофилософствовать готов: интересно, будут ли разработчики когда-нибудь только тем и заниматься, что оставлять комментарии? А код бы генерировался по этим комментариям и билдился со всеми остальными сгенерированными частями в единый документ. А на пулл-реквестах оставляли бы метакомментарии к комментариям. В итоге ревью свелось бы к обсуждению текстов, как сейчас принято в научной среде или как раньше было принято в религиозной сфере.

  • Benchmarking Tapir: Part 1 — так как tapir есть не что иное, как функциональный фасад, представляющий единый интерфейс к различным http-бэкендам, то невольно должен возникнуть вопрос: а какой же оверхед получается с этой дополнительной прослойки? В статье — первая часть исследования этого вопроса.

  • Our journey begins — Mark Hammons вернулся и продолжает рассказывать о своем magnum opus — slinc. В чем же проблема связать C-код и Scala-код? А хотя бы в том, что типы в языке C зависят от платформы исполнения. Так, например, long является 64-битным в Linux и MacOS и 32-битным в Windows на X64 процессорах. Такая имплементация идет вразрез со строгой типизацией Scala и идеологией Write once, run anywhere JVM. По словам автора, это первая часть из серии статей. Ждем продолжения.

  • My team built and productionized a custom rate limiter in Scala — о том, как ребята написали свой rate-limiter: что к этому привело, какой технический стек выбрали и что из этого получилось. Лайтовая статья, читается на одном дыхании.

А сюда мы спрятали еще несколько интересных статей. Если у вас остались силы — загляните обязательно:

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

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

Настя

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

  • Game development in Scala.js with David Smith — I got bitten by functional bug — часовой подкаст с создателем игрового движка на Scala Indigo и фреймворка для фронта Tyrian, как он дошел до жизни такой. Если вас интересуют игровые движки, создание игр, игровое закулисье, но сами вы бесконечно далеки от этого — возможно, вас увлечет данное интервью.

А сюда мы спрятали еще немного интересного для тех, кто предпочитает видео- и аудиоформаты текстам:

Tooling

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

  • Containerize your tooling — изолируем и делаем воспроизводимым наше окружение по работе с различными инфра-тулами и скриптами через контейнеры с alpine-ом внутри.

  • mainargs — небольшая библиотека для парсинга аргументов командной строки от Li Haoyi.

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

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

  • Scala 3: My migration journey — неожиданно, без нытья история переезда на Scala 3. Можно даже использовать как гайдлайн, если тоже задумываетесь о переезде.

  • Scala Center Roadmap for 2024 — выкатили роадмап на текущий год. В принципе равномерно планируют свою работу во всех областях экосистемы. Из интересного — собираются активно помочь Eugene Yokota со второй версией sbt.

Рубрика My Scala Story в виде мини-интервью работяг. Взгляните, в рядах светится сам Alexandru Nedelcu :)

У Scala Center есть проекты, которые студенты могут взять в качестве дипломной работы. Если вам предстоит сразиться с боссом «Научрук» на карте «Диплом», а у вас нет подходящей снаряги — советуем заглянуть.

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

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

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

Tags:
Hubs:
Total votes 12: ↑12 and ↓0+12
Comments8

Articles

Information

Website
l.tbank.ru
Registered
Founded
Employees
over 10,000 employees
Location
Россия