~/talk

I Command You to be Free!

Talkat LambdaConf 2017 · 2017-05-25..05-27· [frontend-architecture]
links:none on file
slides:none on file

Refactors a side‑effecting PHP/Ruby codebase into explicit command values, then interpreters and finally the Free monad; examples use Ruby, Haskell, PHP, Stripe API, SQL and QuickCheck properties; tests become simple value equality and in‑memory interpreters replace slow DB integration tests; an optimizer coalesces inserts into one bulk operation and claims nearly 100x speedups; business logic emits a list/stream of commands that get interpreted, composed and unit‑tested; code lives at https://github.com/parsonsmatt/command-pattern and the technique is already used at Seller Labs with no PHP concurrency.

AI-written summary · about

  1. 0:00Start
  2. 1:25BETTER CODE?
  3. 2:38TEST DRIVEN DESIGN
  4. 9:30WRONG HASKELL
  5. 14:28THREE MAGIC STEPS
  6. 16:32OUTPUT EFFECTS
  7. 26:37PROPERTY TESTING
  8. 27:25COMMAND INTERPRETER
  9. 29:46TRAVERSABLE
  10. 29:57SIMPLE DATA
  11. 49:02THE SCARY 'M' WORD
~/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.