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

50 mins
Identifying And Removing Impediments

Executing a software project has many challenges. For a team to function smoothly and deliver working solution we have to...

180 mins
Beyond Managing Your Manager

The deep-dive workshop presents why conflicts with your manager are inevitable based on differences in priorities and perspectives, and how...

50 mins
So You’ve Just Become a Tech Lead - Great! Now What?

You have just been promoted to a Tech Lead role - Congratulations! But something is wrong :(. Suddenly, you’re struggling...

25 mins
How Non-violent Communication Can Help Keep the Peace on your Team

Non-violent communication will help you communicate with your coworkers in a manner that enables productivity and helps you understand how...

25 mins
Uncovering your Personal Values

We regularly review our code and attend retros, but what about tracking and reviewing our personal identity? We all know...

50 mins
Top 10 Algorithms for Coding Interviews

So we are all the best coders, but have you see the run time of the code you are writing?...