Проектирование на уровне типов. Системный взгляд на дизайн и архитектуру (ДМК-Пресс, 2025)

«Проектирование на уровне типов» — это новаторское исследование программирования на уровне типов. В отличие от других книг, заигрывающих с типовой системой и математикой, эта книга делает акцент на практическом применении: лучших практиках, сценариях использования, шаблонах проектирования, принципах и архитектурах приложений, универсальных для различных статически типизированных языков — таких как Scala, Rust, Haskell, C++, OCaml и F#. Основной язык книги — Haskell, однако есть раздел «Розеттский камень», где те же идеи изложены на Scala 3 и Rust.

Купить Проектирование на уровне типов (ДМК-Пресс, 2025)
Английская версия: Pragmatic Type-Level Design (LeanPub, 2024)

Книга доступна обычным разработчикам вроде меня. Она увлекательная, систематичная, полна забавных примеров и хорошо написана. Без академизма — вы не найдёте здесь ничего, связанного с категорной теорией, теорией типов или абстрактной алгеброй. Математики в книге нет вовсе. Она доказывает, что сложные математические концепции не нужны, чтобы извлечь пользу из программирования на уровне типов.

Благодаря своему фокусу на практических результатах и реальных бизнес-задачах, Проектирование на уровне типов — обязательное чтение для архитекторов ПО, функциональных программистов и инженеров, которые хотят поднять проектирование на уровень выше обычных значений. Эта книга объясняет как и почему использовать программирование на уровне типов, помогая читателям принимать обоснованные и рациональные проектные решения.

Репозиторий книги на GitHub

Благодарности

Я благодарен всем, кто поддерживал книгу, когда она писалась в виде Pragmatic Type Level Design. Особенная благодарность патронам на Patreon:

  • Patryk Zieliński
  • rohit
  • Anatolii Prylutskyi
  • Gabriele Lana
  • Christopher Miller
  • Cezar Halmagean
  • Matt Braun
  • John Man
  • Dmitry Podoprosvetov
  • Vadim Sotnikov
  • Vladimir Krivopalov
  • Francesco Zanini
  • James Bartholomew
  • Alex Vakhitov
  • Jacob Baumbach
  • Omar Mefire
  • Veronika Romashkina
  • Simon Shine
  • Ignacio Ballesteros
  • Andor Penzes
  • Michele Riva
  • Juan Ortega
  • Andrew Broman
  • Angel Vanegas
  • Kayvan Kazeminejad
  • Pavel Kucera
  • Jonathan Thaler
  • Forest Walk
  • Dmitriy Zakomirnyi
  • James
  • Grzegorz Milka
  • Ilia Rodionov
  • Mat
  • Max Moiseev
  • Alexey Lebedeff
  • Jorge Vasquez