Functional Principles for Object Oriented Development
summary
Six concrete principles (start with data in data out and include immutability, passing functions, strong typing and lazy evaluation) claim to halve effort on tricky logic: a pricing-engine slice estimated at four weeks grows into ~four man‑months but would be far simpler with functional patterns. Examples use Java and Scala, Guava immutable collections, Optional, and Java 8 lambdas; aim for ~80–85% of methods pure and testable, isolate environment access, prefer copy‑on‑modify immutable objects and lazy Guava iterables to separate concerns.
AI-written summary · about
chapters (26)
- 0:00Functional principles in OOP
- 2:32FP matters for Java
- 3:57FP vs procedural paradigms
- 5:41Six functional principles
- 7:07Data in data out
- 10:24Pure methods in Java
- 15:41Data flow and testability
- 18:09Immutability benefits
- 21:46Immutability Scala vs Java
- 23:54Defensive copying
- 27:12Immutability efficiency
- 29:25Option type vs null
- 30:29Functions as values
- 32:42Pricing engine project
- 34:47Declarative Java 8
- 35:30Declarative SQL Excel
- 38:00Readability vs familiarity
- 39:25Filtering with predicates
- 40:06Strong typing benefits
- 41:34DDD and type specificity
- 44:23Custom types in Java
- 45:05Interface segregation
- 46:08Lazy evaluation
- 47:13Lazy iterables
- 50:27Summary
- 50:48Non-allegiance to paradigms
related talks
50mFunctional Principles for Object-Oriented Development
42mPure Functions and Immutable Objects
01h 05mFrom object oriented to functional domain modeling
34mPrinciples of functional programming with examples in Java and Haskell
59mForget OO and Think Functionally!
31mFrom OOP to FP
01h 06mThe Joy of Functional Programming
42mFunctional Programming in 40 Minutes
