раздел 27

Gleam на практике

Gleam, минималистичный типизированный язык на BEAM. Первая половина, от первого gleam new до Wisp, Lustre и Telegram-бота: ADT, pattern matching, парсинг через Decoder, OTP-акторы, и тот же код в Erlang и в JavaScript. Вторая половина, серия по функциональному DDD: Value Object, Aggregate, паттерн Decider, event sourcing, CQRS и saga.

34 урока34 тем · 7 кластеров

Начать раздел

Раздел открыт для всех. Войди, чтобы отмечать пройденные уроки, вести заметки и решать задачи в редакторе. войти

Уроки раздела

  1. Введение в Gleam, язык на BEAMJ~30 мин
  2. Начало работы: gleam new, базовые типы, первый проектJ~35 мин
  3. Функции, пайплайны и замыканияJ~50 мин
  4. Типы данных и коллекции: ADT, pattern matching, List, DictM~60 мин
  5. Рекурсия, свёртки и обработка ошибокM~70 мин
  6. Строки, BitArray и стандартная библиотекаM~55 мин
  7. Type Safety и Parse Don't ValidateMS~60 мин
  8. Erlang FFI и системное программированиеMS~40 мин
  9. JavaScript FFI и фронтенд интеграцияM~80 мин
  10. Процессы и OTP: акторы, supervisor, let it crashMS~80 мин
  11. Тестирование на Gleam: gleeunit, property-based, snapshotM~40 мин
  12. Веб-разработка с WispMS~60 мин
  13. Фронтенд с Lustre: TEA-архитектура в браузереMS~110 мин
  14. Заключение и следующие шагиJ~15 мин
  15. Telegram-бот с Telega 3: роутер, диалоги, flow, эксплуатацияS~190 мин
  16. Functional DDD на Gleam: с чего начинаемM~25 мин
  17. Value Object и Email: opaque + smart-конструкторM~35 мин
  18. Money: валюта как phantom-параметрM~40 мин
  19. Entity и Customer: identity против equalityM~35 мин
  20. Aggregate Reservation: стек инвариантов через result.tryMS~45 мин
  21. Domain Events: команды и события как ADTMS~40 мин
  22. Repository как порт: in-memory backend для тестовMS~35 мин
  23. Bounded Context: один Customer, два несовместимых типаMS~30 мин
  24. Composition root на Wisp: где собирается граф зависимостейS~30 мин
  25. SQLite-репозиторий через sqlight: реальный adapter под тот же портS~35 мин
  26. Конфиг и build_repo: финальная сборка первого блокаM~35 мин
  27. Event Modeling: от свимлейна на доске к типам GleamM~25 мин
  28. Decider Жереми Шассена: три функции вместо агрегатаS~35 мин
  29. Event Sourcing: хранить факты, а не состояниеS~35 мин
  30. CQRS: разделить запись и чтение, проекция как свёрткаS~30 мин
  31. Process Manager и Saga: charge-on-checkout с компенсациейS~35 мин
  32. Aggregateless ES: единый стрим и Facts вместо агрегатаL~35 мин
  33. Кейс Decider: Uno как FSM с ходом и направлениемM~35 мин
  34. Континуации: одна бизнес-логика, любые эффектыS~40 мин

Темы и кластеры

Старт

Типы и данные

Дисциплина типов

BEAM и FFI

Практика

Functional DDD

Эффекты