Design Patterns in Dynamic and Functional Languages
summary
Claims that many GoF patterns either disappear or change implementation in modern languages, with concrete examples: closures replace Command (Groovy/Ruby blocks used instead of command objects), iterators are built into Groovy/Ruby, builders use method_missing DSLs (recipe DSL via Integer metaclass), adapter solved by runtime interface switching in Ruby, decorator implemented with modules, memoize functions (built-in) give orders-of-magnitude speedups, and lazy sequences produce infinite collections and efficient pipelines (Clojure/Scala/Java 8).
AI-written summary · about
chapters (18)
- 0:00Introduction to modern patterns
- 2:25Iterator pattern in modern languages
- 4:11Command pattern with closures
- 6:21Strategy pattern simplified
- 8:12Builder pattern with method missing
- 11:02Template method flexibility
- 14:40Interpreter pattern and DSLs
- 22:28Factory pattern edge cases
- 24:36Decorator pattern in Ruby
- 29:55Adapter pattern with open classes
- 34:56Null object pattern in Ruby
- 37:46Functional programming patterns
- 41:36Filter map and reduce in Java
- 45:32Flatten and flatMap explained
- 49:07Closures and state management
- 51:55Memoization and caching
- 53:42Laziness in functional languages
- 55:27Summary and future insights
related talks
55mRevisiting Design Patterns After 20
45mRevisiting Design Patterns after 20
43mDesign Patterns - The Most Common Misconceptions (1 of N)
01h 40mDesign Patterns: Examples in C++
44mGang of Four Patterns in a Functional Light
01h 07mDesign Patterns in Modern C++
46mFunctional Programming with Go
36mConcrete Functional Programming
