Design Patterns in Dynamic and Functional Languages


Duration: 50 mins
Neal Ford
Software Architect, ThoughtWorks

Design patterns have existed for decades in the software development world, acting as a well known catalog of common problems and structural solutions. Unfortunately, the seminal book on this topic, Design Patterns, include code examples in C++ and Smalltalk! In the intervening years since the book was released, capabilities and paradigms of programming languages have evolved, but not the design patterns…until now. This talk takes a fresh look at the GoF design patterns, but implemented in modern languages, including modern dialects of Java and C# (not C++) as well as dynamic languages such as Ruby and Groovy and functional languages such as Clojure, Scala, and Haskell. It turns out that some patterns disappear, some change implementations, and others change focus and scope. Come see a fresh look at this pertinent topic and how modern languages simplify and clarify these patterns.

You may also be interested in

25 mins
Pull My Code: Effective Code Review

We need to talk about code reviews. Having a strong, effective code review process is the key-stone of quality, culture, learning...

50 mins
Build Your Own Tech Radar, Capture Your Org's Tech Posture

Software industry changes at a crazy speed. There are always new things coming in and going out of the eco-system...

25 mins
Writing Professionally

The most important thing you do in your job is write. It's in every email you send, every commit you...

50 mins
All That Glitters Ain't Gold

Let’s use Kafka, everywhere! Let’s try event driven architecture! How about Rust for this service? Let’s use Elixir for this!...

180 mins
Modern Software Development

Our industry never stops changing, but sometimes those changes are trivial and fluffy and we can ignore them. Sometimes they...

50 mins
10x productivity for Developers and Architects

Productivity is key to success in software development. We will be exploring different principles, so you do not have to...