BT

Presentation: Code Organization Guidelines for Large Code Bases

by Floyd Marinescu on Jun 21, 2007 |
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 challenge...in 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.

Hello stranger!

You need to Register an InfoQ account or 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

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

Slides please? by Angeline Tan

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

Thanks!
Angie

Can I download the slides? by Lam Nguyen

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

Regards,
Lam

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.

Cheers

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
www.theserverside.net/tt/articles/showarticle.t...

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

Educational Content

General Feedback
Bugs
Advertising
Editorial
InfoQ.com and all content copyright © 2006-2013 C4Media Inc. InfoQ.com hosted at Contegix, the best ISP we've ever worked with.
Privacy policy
BT