Applied Modularity – Part 4

In part 3, we applied the SeparateAbstractions pattern so that we could independently manage the two different AuditFacade interface implementations. The result was the module relationships shown at right (click to enlarge). The code can for this version of the system can be found in the SeparateAbstractions project. Also, be sure to check out Part […]

Applied Modularity – Part 3

In Part 1, we introduced the system, and broke each layer out into separate modules. In Part 2, we applied two refactorings using two different modularity patterns – AbstractModules and AcyclicRelationships. But we were still left with a problem, which we’ll solve here. Fourth Refactoring After the third refactoring, we were left with the modules […]

Applied Modularity – Part 2

See Part 1 for an overview of how we got started. In this post, we’re going to take the modularization of our application a step further. We’re going to apply two refactorings using two different modularity patterns – AbstractModules and AcyclicRelationships. First, we’re going to separate the bill and audit functionality out into separate modules […]

OSGi Adoption Increasing?

Check out this graph obtained by searching for OSGi job trends on indeed. It’s evidence that interest in OSGi is increasing. That’s a pretty significant spike over the past two years. While it represents only a fraction of overall Java jobs, it’s refreshing to see that folks recognize the benefits of modularity (here’s an example). […]

Agile Architecture Deck & Code

Here’s my Agile Architecture – Patterns & Technology slide deck (bottom of this post) that I presented at SpringOne2GX and OOPSLA. Thank you to all who attended, and for providing such positive feedback. I’ve also uploaded the code samples used to show the modularity pattern examples found toward the end of the presentation. The code […]