~/talk

Immutable Ruby

Talkat MountainWest RubyConf 2013 · 2013-04-03..04-05· [ruby]
links:none on file
slides:none on file

Argues for immutability by giving concrete fixes: use ActiveRecord read_only and a gem to lock specific attributes, call Ice Nine deep_freeze on YAML config, and replace mutable strings with frozen ones to avoid destructive shovels. Shows value objects via composed_of to shrink fat models and speed tests, demonstrates event sourcing with Postgres as the canonical log and a graph DB for views that can be rebuilt by replaying events, and demos persistent structures with Hamster while noting CPU and memory tradeoffs.

AI-written summary · about

  1. 0:00Intro
  2. 0:21Immutable Ruby Michael Fairley
  3. 0:38Braintree
  4. 3:33In your application too!
  5. 4:50DANGER WILL ROBINSON
  6. 6:23deep_freeze with ice_nine
  7. 12:02Capture all changes to application state as a sequence of events
  8. 12:34Events Debits and credits (12/6/2012 16:30, "15.00", "Book")
  9. 13:30Replay Debug errors & test new code
  10. 14:09Derived state Working directory
  11. 14:28Replay git rebase
  12. 14:59Safety net
  13. 16:13Audit log
  14. 16:37Escape hatch
  15. 17:42Immutability lets you break the rules
  16. 17:52There are only two hard problems in Computer Science: cache invalidation and naming things.
  17. 18:27Normalization
  18. 18:55Thread Safety
  19. 19:17Performance
  20. 19:29Flexibility
  21. 20:29Next steps
  22. 21:00The Value of Values Simple Made Easy The Database as a Value Persistent Data Structures and Managed References
  23. 21:37Function Core/Imperative Shell Boundaries
  24. 22:01Event Sourcing Martin Fowler
  25. 22:31Bonus round!
~/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.