https://unsplash.com/@rosssneddon

design (5)

Bringing Meaning to Legacy Code with Parameter Objects

Most of the legacy codebases I have work on suffered from primitive obsession. One of the symptoms is the presence of methods with a swarm of int, string or bool parameters. These methods harm the codebase as they are hard to understand and easy to misuse - which could cause bugs and headaches. This article aims to present a simple, yet extremely effective, solution to this issue through the use of parameter objects.

Continue reading...

Untangling Legacy Code with Events

Legacy code is typically characterised by long methods that mix up different concepts and levels of abstraction. In this context, it can be hard to extract behaviour into proper modules because it feels like everything depends on everything and it would require a massive overhaul of the entire codebase. This article proposes to use events to reduce coupling between legacy code and other properly-bounded modules to either extract existing code or add new one.

Continue reading...
Renaud Humbert-Labeaumaz

Intersection Types in Java

This blog post aims to explain how we can use intersection types in Java when we expect an object that implements different interfaces. The Interface Segregation Principle (ISP) stipulates that interfaces should contain the least amount of methods as possible. In other terms, a client…

Continue reading...