One of the most favorite topics of mine is improving software quality — and software maintainability in particular — through the means of decomposition. A problem associated with that, of course, is how to measure the success of a particular strategy chosen. Software metrics are a common means used to project the current state of a system into something seemingly measurable. In today’s blog post, I would like to take a closer look at the Instability-Abstractness-Relationship and whether it can help us to objectively measure the quality of a particular system design.
I’m currently busy booking travel for quite a few conference and JUG appearances that have been in the pipeline for a while. It’s gonna be a wild mix of Spring Modulith talks and workshops, Domain-Driven Design, jMolecules and a Spring get together with members of the core team. Some of these events are commercial, but others are free to attend. Be sure to sign up, I would love to see you!
It has been almost exactly 15 years since Jeffrey Palermo posted the first blog of his series on the Onion Architecture. In that post, he summarized ideas that essentially form a continuation of the Hexagonal Architecture approach by Alistair Cockburn. Although I have always thought that both of these approaches to code organization do not necessarily constitute “architectures”, I find them helpful in shaping a mental model about how to structure a code base. Over the years, I have seen plenty of teams trying to follow those models and running into problems with them. In this blog post, I would like to summarize a few of those findings and present a refined way of looking at Onion Architecture.
I’d like to announce the availability of Moduliths 1.1 GA. Moduliths is a toolkit to create modular, monolithic applications based on Spring Boot. The release ships with significant improvements and new features:
ApplicationListener
implementations detected as event listeners - #145PublishedEvents
API - #124, #125, #126Let me walk you through the most significant additions in a bit more detail.
The RESTBucks sample project has served as showcase for various Spring related technologies in the context of building a hypermedia based API implementing a high-level business process for almost a decade. It has evolved significantly since then and – in the last couple of months – accumulated quite a batch of changes. I think that it’s worthwhile to have a look at them and how new libraries, specs, and their integration into Spring projects shape the sample.