Presentation: Code Organization Guidelines for Large Code Bases

| by Floyd Marinescu Follow 35 Followers on Jun 21, 2007. Estimated reading time: 1 minute |
Structuring a large code base maintained by multiple teams working in parallel can be a real challenge. If you are not disciplined about code structure overtime you will end up with a tangled, unmaintainable mess that cannot adapt to change and risks ossifying into legacy. In this session Juergen will pull from his experiences working on large projects (including his role as chief architect of the Spring Framework) to provide general guidelines on:
- Packaging and package interdependencies
- Layering and module decomposition
- Evolving a large code base

Watch  Code Organization Guidelines for Large Codebases (1hour 28 min)

Juergen's conclusions:
  - The evolution of a large code base is a tricky particular if backwards compatibility is an issue and architectural quality remains a goal!
 - Central issue: package interdependencies
     - Avoid circular references between packages, at (nearly) any cost!
 - Consider the use of tools for ongoing validation of your architecture
    - e.g. JDepend, SonarJ
Much of the presentation was spent explaining how to minimize dependencies between modules (especially cyclic dependencies) and how Juergen manages Spring's codebase to tight standards of quality.  Juergen also demonstrates how he uses JDepend and SonarJ on Spring's codebase, and near the end for fun does a package dependency comparison between Spring and Hibernate.

Update: The slides can be downloaded here.

Rate this Article

Adoption Stage

Hello stranger!

You need to Register an InfoQ account or or login to post comments. But there's so much more behind being registered.

Get the most out of the InfoQ experience.

Tell us what you think

Allowed html: a,b,br,blockquote,i,li,pre,u,ul,p

Email me replies to any of my messages in this thread

Are the slides available? by Oliver Henlich

Had a quick surf and could not seem to find the slides to download.
Anyone know if they are available anywhere?

Slides please? by Angeline Tan

I would like to add a request for the link to the slides?


Can I download the slides? by Lam Nguyen

I'd like to download the slides. Is it possible? Thanks.


Are the slides available for download? by Luiz Almeida

I would like to get the slides. Is it possible?

Re: Are the slides available? by Andrea Del Bene

I think that Juergen should publish his slides on SpringOne site soon or later.
I mean, SpringOne speakers, Interface21 guys in particular, use to do so.

My two cents.
Andrea "Italian Spring lover :-)"

Good summary of this presentation by Floyd Marinescu

Mike blogged a great summary of this presentation here.

Slide available now by Andrea Del Bene

Slide are now available from SpringOne site wiki.
Login is required.


Here are the slides by Floyd Marinescu

Large Code Bases in the .NET sphere by Patrick Smacchia

In the .NET sphere we are also facing the same kind of problem. I wrote and article about that, that describes similar answers:

Control component dependencies to gain clear architecture

Allowed html: a,b,br,blockquote,i,li,pre,u,ul,p

Email me replies to any of my messages in this thread

Allowed html: a,b,br,blockquote,i,li,pre,u,ul,p

Email me replies to any of my messages in this thread

9 Discuss

Login to InfoQ to interact with what matters most to you.

Recover your password...


Follow your favorite topics and editors

Quick overview of most important highlights in the industry and on the site.


More signal, less noise

Build your own feed by choosing topics you want to read about and editors you want to hear from.


Stay up-to-date

Set up your notifications and don't miss out on content that matters to you