How functional programming change my Java code
summary
Describes applying functional ideas inside Java 8: adopts immutability, separates side effects and context, wraps effects in Option/Either instead of try/catch, and uses streams, trampolines for recursion and small pure functions. Reports reduced spec from ~1,000 to 150 pages by refactoring verbs/nouns/adjectives into reusable transformations, measures and fixes hotspots (notes some functional idioms can be ~100x slower), and claims the team delivered the app two years early while staying on the JVM and using Java 8 streams and Option/Either.
AI-written summary · about
chapters (20)
- 0:00Introduction and disclaimer
- 1:14Object-oriented Java basics
- 4:15Design patterns and SOLID
- 9:27Functional programming concepts
- 11:37Side effects in code
- 12:42Understanding monads
- 14:32Mixing OOP and FP
- 17:11Recursion in Java
- 18:41Pattern matching in Java
- 20:27Pure functional in Java limits
- 21:09Immutability benefits
- 22:38Side-effect separation
- 23:21Context separation practice
- 24:28Business logic simplification
- 27:05SOLID with functional style
- 29:13Testing and performance
- 30:59Refactoring and multi-threading
- 32:46Convincing the team
- 33:30Real-world project example
- 34:38Q&A and resources
related talks
51mFrom Java 7 to Functional Programming
52mFunctional Programming with Java 8
43mRefactoring to Functional Style
48mEmbrace the Func - How Far has Functional Programming Come in Java?
51mFunctional Programming with Java
57mLearning To Code In Functional Style with Java
37mPragmatic Functional Refactoring with Java 8
01h 06mThe Joy of Functional Programming
