TG Telegram Group Link
Channel: Scala bin
Back to Bottom
Буквально несколько часов назад была опубликована книга Дженса Грасселя Pure functional HTTP APIs in Scala. Издание расчитано на опытных Scala программистов, использующих "enterprise" библиотеки (Akka, Play, Spring), но стремящихся к более ФП-ориентированному подходу к разработке.

Книга по сути представляет из себя пример итеративной реализации web-сервиса с учётом всех значимых компонент: загрузка конфигурации, роутинг, тестирование и т.д. Дополнительным бонусом служит то, что получить книгу можно абсолютно бесплатно.
Небольшая коллекция слайдов от Филипа Шварца на тему функторов как таковых и мотивации к их появлению. Содержит выдержки объяснений от Бартоша Милевски и нескольких книг, среди которых крайне рекомендуемая мной Haskell programming from first principles.
Пытаетесь доказать, что программировать на Scala не так сложно, как говорят? Окститесь, даже JavaScript - это уже чересчур.
Похоже, что новый год начинается с очередных синтаксических предложений [1, 2] от доктора Одерски, на этот раз в отношении extension методов в Dotty. Первое позволяет именам методов начинаться с точки, в то время как второе вводит новое ключевое слово extension (of) для определения таких методов взамен имеющемуся синтаксису с given.

До:
given listOps: [T](xs: List[T]) extended with {...}

После:
extension listOps of [T](xs: List[T]) with {...}


После значимой табуляции и изменений в синтаксисе присваивания (последние добавлены не были), данные изменения видятся гораздо менее спорными и, возможно, имеют реальные шансы в конечном итоге оказаться в Dotty.
После порядком затянувшегося перерыва решил попробовать написать что-то и на английском языке.

Итогом стала статья на Medium про использование Ordering в Scala. Примером стало, конечно же, любимое сообществом семейство кошачьих.

Искренне надеюсь, что дебют получился успешным. Буду очень рад вашим комментариям.
На фоне печальной коронавирусной истории Lightbend сделала жест невиданной щедрости и открыла бесплатный доступ к своим курсам до конца июня.

Курсы, в основном, посвящены продуктам компании (Akka, Lagom и т.д.), но присутствуют и курсы о реактивной архитектуре и даже domain-driven design.
Зарегистрироваться можно по ссылке.
Вдогонку ко вчерашней новости: аналогичным образом поступила одна из наиболее масштабных компьютерных организаций, - Ассоциация Вычислительной Техники (Association for Computing Machinery) - открыв доступ к своей цифровой библиотеке до 30 июня.

В основной коллекции библиотеки содержится порядка 600 тысяч записей, в расширенной - немногим менее 3 миллионов. По ключевому слову "Scala" удаётся найти около 4000 результатов. Получить доступ к библиотеке можно по ссылке.

За новость спасибо Евгению Игнатьеву.
Не так давно узнал, что вдобавок к сайту с вакансиями Profunctor запустил ещё и канал @profunctor_jobs с минималистичными описаниями вакансий, размещённых на сайте.

На фоне предложений с подробным описанием печенья и фруктов в офисе, но без зарплатной вилки/стэка/названия компании(!) очень приятно видеть продукт, ориентированный на разработчиков.
Вчера завершилась замечательная конференция ScalaLove, за которую огромное спасибо её организаторам. Надеюсь, в будущем такие мероприятия будут происходить значительно чаще.

Одним из докладчиков на конференции был Мартин Одерски, который уже не в первый раз (1, 2) описывал основные особенности Scala 3. Что особенно примечательно, синтаксические изменения, связанные с отступами, Мартин обозначил как наиболее сильно увеличившие персонально его продуктивность и отметил снижение числа строк кода в среднем на 10%.

Итогом доклада стал небольшой шедевр изобразительного искусства, вобравший в себя грядущие изменения:
Из-за многочисленных перестановок долго не знал, сложится или нет, но буквально несколько дней назад всё окончательно утвердилось. В эту субботу буду выступать на онлайн-митапе с обзорной презентацией про Scala, ФП и почему это важно.

Презентация рассчитана в основном на незнакомую с вышеозначенными понятиями публику и ставит своей целью обозначить основные направления для самостоятельного знакомства и заинтересовать попробовать новый язык программирования.

Мероприятие будет проходить на английском языке в эту субботу, в 13:30 по Московскому времени. Принять участие можно, зарегистрировавшись по ссылке. (Меня клятвенно заверили, что, несмотря на надпись на сайте, "вместимость" мероприятия - 100 человек)
Что ж, митап подошёл к концу, большое спасибо всем, кто присутствовал, особенно за вопросы. Опыт выдался крайне положительным и я надеюсь, что в будущем представится возможность рассказать о чём-то более детально.

Запись доклада - здесь.
Презентация - здесь.
С небольшим запозданием до меня добралась новость, что Scala обзавелась страницей для начинающих от SoftwareMill с кратким обзором IDE, курсов, книг и основных библиотек.

Коллеги, ещё только планирующие попробовать Scala, страницу оценили - удобно, когда вся необходимая информация собрана в одном месте.
Обнаружил весьма интересную статью о техническом долге.

Наиболее важным моментом считаю мысль о том, что метафора с "долгом", если и работает, то не всегда и не полностью - иногда более уместно понятие "технической инфляции", естественного увеличения необходимости переработки кода с течением времени.

Материал отлично подойдёт тем, кто сталкивался с термином "технический долг", но хочет более подробно ознакомиться со спецификой стоящего за ним явления.
Захотел попробовать создать свой range тип в PostgreSQL, использующий альтернативную схему нормализации (canonicalization) диапазона (по умолчанию все range типы приводятся к форме [x, y) ). Главной проблемой становится объявление соответствующей функции, которая должна принимать в качестве аргумента ещё не созданный тип. В документации даже имеется специальная инструкция для разрешения данного конфликта.

В реальности, к сожалению, всё обстоит плачевнее - инструкция просто-напросто не работает. Оказывается, единственным способом создания собственной функции нормализации является написание модуля на С, который затем должен быть подключён как расширение PostgreSQL. Спасительным оказался модуль inetrange, в котором удалось найти пример такой функции, ещё и с Makefile.

Если вам когда-нибудь потребуется написать небольшое расширение для PostgreSQL, репозиторий данного модуля может стать хорошей точкой старта, поскольку в большинстве своём документация крайне скудна на детали.
Впервые столкнулся с проблемой при работе с замечательной gRPC-библиотекой - mu. Оказывается, без опции package в .proto-файле генерация кода работать не будет, что может создать проблемы, когда файлы используются сразу несколькими командами. Ноги растут из базового пакета skeuomorph, в который зашита только логика работа с этим параметром.

Если тоже сталкивались с этой проблемой, обязательно "поставьте звёздочку" соответствующей issue, а если имеете полный контроль над .proto-файлами - рекомендую попробовать библиотеку.
Для меня стало большим откровением, что существует целый игровой движок, написанный на Scala - indigo. Несмотря на то, что пока доступна только альфа-версия и сами авторы предупреждают о возможных проблемах, уже можно писать небольшие игры на любимом функциональном языке, выходящие за рамки экспериментов с ZIO.
HTML Embed Code:
2025/07/02 06:29:48
Back to Top