От чтения тайпскриптовых ФП-библиотек (раз,
два) складывается впечатление, что они
проходят тот же этап, что и скалисты несколько лет назад, когда тащили всё
подряд из хаскеля. Только в тайпскрипте это выглядит как будто бы ещё хуже:
один только заменитель
do-нотации чего стоит.
В исходников ещё много вещей, которые интересны своей изобретательностью в
обходе ограничений компилятора, но болезнены в использовании.
»
Не сразу заметно, но в документации третьей
скалы работает аналог Hoogle.
Hoogle — это поисковый движок по библиотекам на
Haskell, умеющий искать по сигнатуре функции. В документации Scala 3 тоже можно
нажать на лупу и ввести, например, Option[A] => A => Boolean: поиск найдёт
функцию contains. Правда, далеко не на первом месте.
»
Нашёл библиотечку OCDQuery с генерацией запросов на doobie по пользовательским
моделям данных. Сама библиотека выглядит заброшенной, а вот в документации
лежит сокровище — понятное описание проблематики и реализации паттерна Higher
Kinded Data для моделей сущностей из БД.
»
Поигрался с match
types в Scala 3.
Сильно хотел использовать их для определения зависимости возвращаемого типа
функции от типа аргумента, но не прокатило. Не понравилось, что матчинг при
использовании типа происходит в рантайме, поэтому можно словить исключение
MatchError:
»
Задача (де)сериализации структур в json решается тремя способами:
»
Ковырялся на работе с тапиром, не
понравилось. tapir — это популярный в Scala-мире DSL для описания HTTP
эндпоинтов. DSL интерпретируется в “настоящие” эндпоинты на одном из четырёх
доступных веб-серверов и автоматически генерирует спецификацию в OpenAPI.
Собственно, ради автогенерации сваггера мы и затащили его в один REST-сервис.
Руками OpenAPI описывать всё-таки нудно и ненадёжно, а gRPC не подходил по
требованиям к сервису.
»
Написал небольшую библиотеку с интеграцией ZIO и
MUnit
»
Мелочь, а приятно: в третьей скале можно не придумывать имена для контекстных
параметров.
»
В EPFL не только релизят третью скалу, но и продолжают шатать монадки. Вслед за
заходами в async/await и effects as
abilities
появилась экспериментальная библиотека Monadic
Reflection (от создателя не
менее экспериментального
scala-effect).
»
Продолжаю чтение бизнес-литературы. Дочитал супер-крутую книжку по
менеджменту: Первые 90 дней (Майкл Уоткинс). Максимально содержательное
чтиво, ни капли воды. Систематизированное повествование о том, что руководитель
должен сделать в свои первые три месяца на новой должности. Хотя акцент сделан
на адаптационном периоде, это качественно структурированные знания по
руководству как таковому. Поэтому читать книгу есть смысл в любой карьерный
момент.
»