The former parts of this series of articles analyzed several classic GoF patterns, Command and Strategy in the first one, Template and Observer in the second, Decorator and Chain of Responsibility in the third, showing how that they can be considered obsolete. In fact, when reviewed under a functional lens, it is evident that a […]

Read more

In the first two articles of this series we re-implemented, from a more functional point of view, 4 very commonly used GoF patterns. In this third part of the series, we will review 2 more: the Decorator and Chain of Responsibility patterns. These 2 patterns, despite their unquestionable usefulness, are probably employed less widely than […]

Read more

In the first article of this series, we started investigating how the most common GoF patterns can be reviewed and reimplemented in a cleaner and more concise way by leveraging the new functional features introduced with Java 8. In this second part, we will continue this process and revisit two other widely used GoF patterns: […]

Read more

This is the first in a series of articles where we will review many Gang of Four patterns under a functional light, showing how they can be re-implemented in more concise and often more flexible ways. Before analysing in detail the different patterns, let me start in an unusual way for a programming post: a […]

Read more

By Stefan Bulzan With the advent of lambdas in Java we now have a new tool to better design our code. Of course, the first step is using streams, method references and other neat features introduced in Java 8. Going forward I think the next step is to revisit the well established Design Patterns and see […]

Read more

In this excellent article that appeared originally on Brave New Geek, author Tyler Treat describes some of the misconstrued expectations of developers building distributed applications, including why existing notions of data consistency, message reliability, and predictability all need to be reconsidered. If there’s one unifying theme of this blog, it’s that distributed systems are riddled with […]

Read more