The JUnit 5 extension model enables detailed, flexible, and powerful additions to JUnit 5’s core features. For that it provides specific extension points and easy composition of annotations.
Posts about well designed software.
JUnit 4 came in a single artifact, blending all uses cases into one bundle. The JUnit 5 architecture promotes a better separation of concerns and provides clear APIs for testers (Jupiter) and tools (Platform).
Summary of the architecture described by Sandro Mancuso in his talk “Crafted Design”, held at GeeCON2014.
Why interface evolution with default methods does not work for whole interfaces – at least not smooth enough to be practical.
A summary of the talk “Agile Architecture” given by Molly Dishman and Martin Fowler as the keynote at the O’Reilly Software Architecture Conference.
Patterns for interface evolution with default methods: gradually add, replace and remove interface methods without breaking client code.
A presentation of the Serialization Proxy Pattern as defined in Effective Java. It defines the pattern, describes its implementation and gives examples.
Discussing the talk “Architecture – The Lost Years”, which Robert C. Martin held on several occasions.
Use Java 8’s default methods to make the decorator pattern even more beautiful, which results in more concise and readable code.
A real-life example how the decorator pattern enables future changes and improves code quality by upholding the Single Responsibility Principle.