~/talk

Never again without a contract: dry-validation

Talkat RubyConf 2022 · 2022-11-29..12-01· [ruby]
links:none on file
slides:none on file

Argues that writing a clear contract with dry-schema/dry-validation makes validation, coercion and rule logic explicit so payloads are rejected with a 400 or transformed into usable values; uses monads and pattern matching for flow control and composes schemas into contracts; demonstrates a monorepo containing a versioned gem of contracts and a Roda-mounted business API that runs and integrates; claims 149 test assertions running in ~0.5 ms and shows the contract approach catching structural and rule errors where plain schemas would not.

AI-written summary · about

  1. 0:00Introduction
  2. 0:53Who am I
  3. 1:40Thank you
  4. 2:08Im old
  5. 2:31Agenda
  6. 3:11Exploitation
  7. 3:41No job anymore
  8. 3:55Never again without a contract
  9. 4:52Type checking
  10. 6:15Return carburetor
  11. 6:45Is it better
  12. 7:17Contracts
  13. 8:20Power for dryvalidation
  14. 8:41Why have you heard about dryvalidation
  15. 8:52Its not all about forms
  16. 9:41Schemas contacts
  17. 10:19Active mode is enough
  18. 11:17Sponsor
  19. 11:35Book recommendation
  20. 11:49Why is all about boundaries
  21. 12:10Schemas
  22. 12:23Use case
  23. 12:43Endpoints
  24. 13:05Name
  25. 14:08API
  26. 14:29Parameter
  27. 15:02Status
  28. 15:17Curve
  29. 16:03Success
  30. 18:41Parent
  31. 19:24Exercise
  32. 20:33Date
  33. 21:15Rules
  34. 22:23Contract
  35. 23:22Constraint
  36. 24:02Serializer
  37. 24:48Conclusions
  38. 25:14Test assertions
  39. 26:53Business API
  40. 28:20Little Buddy Lyrics
~/search
type to search 6,249 conferences, 138,987 speakers and 185,172 talks
~/help
cmdctrl k
search every conference, speaker and series
/
focus the filter search
h
home
c
conferences
s
speakers
e
series
t
light / dark — the status bar button does the same
?
this help
esc
close this, then clear every filter — or just the search, while you are typing in it

Ignored while you are typing. Pages without a filter rail have no search to focus.