Real-world Functional Ruby
summary
A concrete claim: Ice Lab ships more than 10 apps in two years using this style with teams of two or three, proving it scales beyond toy examples. Code models behavior as immutable verb-named functional objects with constructor dependency injection wired by dry-system + dry-auto_inject, results as monads via dry-monads, typed value objects with dry-types/struct and validations via dry-validation, views with dry-view, HTTP via dry-web-roda and persistence via ROM. Tests mock injected deps and focus on small units.
AI-written summary · about
chapters (22)
- 0:00Introduction and welcome
- 1:50Design stamina hypothesis explained
- 5:41Gap between OOP desires and reality
- 6:46Why functional Ruby
- 8:12Modeling apps as transformations
- 9:54Immutable functional objects
- 12:03Functional objects for CRUD
- 13:47Value objects for data
- 15:13Ease of testing functional code
- 17:18Dependency graph and design
- 18:40Real-world functional Ruby success
- 19:44Dry-rb ecosystem overview
- 21:07Dependency management with dry-system
- 23:39Result handling with monads
- 25:25Data validation and types
- 27:10Functional views with dry-view
- 27:50HTTP layer with dry-web-roda
- 28:32Database persistence with ROM
- 29:58Rediscovering joy in Ruby
- 30:39Functional Ruby movement grows
- 33:06Bridging Ruby community gaps
- 34:55Call to action and resources
related talks
44mReal-World Functional Ruby
39mFunctional Architecture for the Practical Rubyist
40mReinvesting in Ruby
39mFunctional Architecture for the Practical Rubyist
42mTaking inspiration from the functional world
27mA New Ruby Toolbox
01h 01mCan We Still Innovate?
26mBlending Functional and OO Programming in Ruby
