You know beautiful code when you see it. But what about lots and lots of beautiful code; is it still beautiful at a distance? “Structure” is how all the snippets of code are organized into containers (methods, classes, packages, jars, etc.) and how the containers relate to each other. The same code can be organized into anything from a hopelessly tangled mess … to a Beautiful Structure.
This talk will explore how “locality of relationship” affects coupling, cohesion, and the width of interfaces. It will show how some structural patterns dramatically increase complexity, and how alternative patterns can massively decouple and simplify. The structure of open-source Java projects (such as the beautifully-structured Spring framework) will be used to illustrate the principles.
Sign in to add slides, notes or videos to this session