Exploring Railway Oriented Programming in Python
summary
Builds a Railway Oriented Programming pipeline from scratch in Python and demonstrates the concrete code: a Success/Failure two-track wrapper, bind and map adapters and a compose helper, used to implement a user-update flow (validate canonicalize update DB send email). Claims error handling moves to a single generate_response boundary, keeps happy-path code clean, and mostly works though authors note missing libraries for ergonomic, type-checked composition and uncertain adoption in real projects.
AI-written summary · about
chapters (21)
- 0:00Welcome
- 1:30Why functional programming matters
- 3:16Python error handling pitfalls
- 6:27Railway Oriented Programming
- 7:32Function composition
- 9:40Error handling with success/failure
- 11:04Composing functions with double tracks
- 12:48Bind function for mismatched tracks
- 13:50Bind simplifies error handling
- 15:37Mapping functions to double tracks
- 17:18Simplify map with bind/success
- 18:02Full railway pipeline
- 19:15Centralized error handling
- 20:43Business logic vs errors
- 21:25ROP challenges in Python
- 23:13Key takeaways and resources
- 24:16Performance trade-offs
- 26:01Reusable blocks and error handling
- 27:03ROP vs promises
- 27:24ROP versus exceptions
- 28:47Q&A
related talks
43mMonads: Exploring Railway Oriented Programming in Ruby
35mRefactoring for fun and profit
02h 46mThe How and Why of Object-oriented Programming in Python
28mYour Pipeline as a Function.
38mBuilding Data Pipelines in Python
43mOmg, how do I write software that isn't a ticking timebomb!?
24mPython for Humans, Designing Python Code Like a User Interface
36mPlumbing in Python: Pipelines for Data Science Applications
