Structure

Spring 2’s architecture – A single dependency cycle slipped in

The Spring guys have let a single dependency cycle into their architecture. A very small flaw, but it’s a perfect example of why you need to check your code-base at different levels to keep it truly tangle-free. I did a … Read More

Tracking complexity debt

Un-monitored, the complexity of a code-base increases with its size. Jboss and Struts are perfect examples. However monitoring complexity helps you keep complexity debt under control, or even down to zero. If you publish the last couple of years worth … Read More

Manage complexity like debt

Ben Hosking writes in Managing Complexity – The aim of Designing Code that: “The most important part of design is managing complexity“ I like the simplicity of that. What happens if you don’t manage complexity. Well, it starts to cost. … Read More

CAT-scan a code-base

Structure101 v2 goes beta today. With it you can walk through the code-base in slices from the class-level, to the package-level and up through the design levels, spotting tangles and seeing how far they have spread. This is a snag … Read More

Emergent Package Design

java.about.com has published my article on "Emergent Package Design", in which I illustrate how the package design continually changes as the underlying code evolves, and the negative impact this can have on the productivity of a development team if it … Read MoreRead More

“Tangles” rather than “Cycles”

I’ve been asked recently why I talk about "tangles" rather than "cycles" in the context of cyclic dependencies. The reason is clear when you look at a graph that contains a "strongly connected component" (a tangle):   This graph contains … Read More

Spring’s Structure is “almost perfect”

Keith Donald reports that Spring’s architecture contains not a single dependency cycle. I’ve looked at the structure of many open source projects and generally found them riddled with dependency tangles (junit is an exception – perhaps unsurprising given its small … Read More

Tangled, knot

I attended an interesting talk on Knot Theory yesterday by Professor Tim Porter from the University of Wales. Dr. Michael Brennan Waterford Institute of Technology (WIT) got me interested in Knot Theory some time back – I keep thinking there … Read More

Refactoring Designs and Architectures

I came across a thread in the refactoring group in which Mikael Freidlitz had tentatively asked the following: > I know that some would say that I’m way off since ‘The Code is the Design’ > and all, but I … Read More

Tangles by Design

This one goes out to the listener in France that doubted my word that you can take tangle-free classes and create tangles by careless packaging. It prompted me to dig out a sequence of diagrams that nicely show how this … Read More