Leaving side effects aside
summary
Compares functional and object-oriented techniques for isolating side effects to maximize purity, using Scala and the scalaz library as concrete tools. Explains how functional abstractions and monads extend purity beyond OO approaches so effects (database, web, logging, async, persistence) can be isolated, enabling easier testing, composition, and changes in effect execution.
AI-written summary · about
chapters (15)
- 0:00Intro
- 1:48OUTLINE
- 4:28An impure function
- 8:08Pure or impure?
- 10:59Why are side effects the software- Incarnation of evil?
- 16:25Separation of concerns: presentation vs. business logie
- 19:19Intermingled concerns
- 21:34Separation of concerns: business logic vs. persistence
- 22:57"Purified" business logic
- 25:04Persistency concerns relegated to interface implementations
- 25:51Overall architecture
- 28:57How can we extend the realm of purity?
- 40:57Enhanced programs, enhanced Interpreters
- 49:30Functional architecture
- 56:39Conclusion
related talks
01h 00mLogic vs. side effects: functional goodness you don't hear about
31mSide-effects are not your friend
44mEffects, Algebraically yours ..
33mRethinking Effects with Effect Systems
50mFunctional Programming with Effects
34mHow I learned to stop worrying and love Functional Design
57mThe Fun of Functional Programming Panel
34mPrinciples of functional programming with examples in Java and Haskell
