This week's book giveaway is in the Servlets forum.
We're giving away four copies of Murach's Java Servlets and JSP and have Joel Murach on-line!
See this thread for details.
The moose likes OO, Patterns, UML and Refactoring and the fly likes Literature about code design, which is above the obvious patterns ? Big Moose Saloon
  Search | Java FAQ | Recent Topics | Flagged Topics | Hot Topics | Zero Replies
Register / Login

Win a copy of Murach's Java Servlets and JSP this week in the Servlets forum!
JavaRanch » Java Forums » Engineering » OO, Patterns, UML and Refactoring
Bookmark "Literature about code design, which is above the obvious patterns ?" Watch "Literature about code design, which is above the obvious patterns ?" New topic

Literature about code design, which is above the obvious patterns ?

Sol Mayer-Orn
Ranch Hand

Joined: Nov 13, 2002
Posts: 311

I'm an experienced programmer, trying to work my way to a point when I can one day assume responsibility over the code design of entire projects (medium sized, and some day even large ones...).
I've already been responsible for design of partial modules, or very small projects. Been quite successful in both.
I also have good knowledge of design patterns (both theoretical and practical... e.g. I've used all 23 patterns mentioned in the famous "Gang of Four", and can give interesting insights on them all, based on real-world experience. I've read about other patterns as well, including but not limited to J2EE patterns).

Still I get the feeling it's not enough... patterns are only part of the solutions. I suspect there are other important principals, that are not "design patterns"... like: how much to plan ahead (over-flexible code could be hard to maintain), how to tell if my design guarantees de-coupling between modules, how to tell if may API interface is not over complicated of other (beginner) programmers to use...

These are only examples... the point being, I'm looking for "overall" principals which are not "patterns".
Is there any literature or web-sites on this ? Or is it only common-sense and experience ?

Thanks very much
Stan James
(instanceof Sidekick)
Ranch Hand

Joined: Jan 29, 2003
Posts: 8791
I'm a big fan of Robert Martin's Agile Software Development book (which he calls PPP for the subtitle Principles, Patterns, and Practices). His recent blog on PrinciplesOfObjectOrientedDesign gives an overview of the topics in the book.

A good question is never answered. It is not a bolt to be tightened into place but a seed to be planted and to bear more seed toward the hope of greening the landscape of the idea. John Ciardi
Balachandran Paranjothimani
Ranch Hand

Joined: Jun 18, 2005
Posts: 43
You have to learn the process of object oriented thinking. For instance API design will require that you define the interface with minimal number of parameters to the method. The public methods in a class must be minimal. There are other design principles that you need to understand in order to evaluate the different designs.

One of the best books on this topic is OO Design Heuristics by Arthur Riehl. Another good book is Object Thinking by David West published by Microsoft Press.

Moderator : <a href="" target="_blank" rel="nofollow"></a><br />Home : <a href="" target="_blank" rel="nofollow"></a>
Ilja Preuss

Joined: Jul 11, 2001
Posts: 14112
I second Stan's recommendation - "Agile Software Development" really is a must-read, in my opinion. (Be warned that there is another book of that name by Alistair Cockburn - which is also quite good, but about a slightly different topic...)

The soul is dyed the color of its thoughts. Think only on those things that are in line with your principles and can bear the light of day. The content of your character is your choice. Day by day, what you do is who you become. Your integrity is your destiny - it is the light that guides your way. - Heraclitus
Sol Mayer-Orn
Ranch Hand

Joined: Nov 13, 2002
Posts: 311
thanks everyone for the useful replies
I agree. Here's the link:
subject: Literature about code design, which is above the obvious patterns ?
Similar Threads
where to turn next? need help with model layer talking to the database
Advice needed before switching towards Java domain by an experienced PHP programmer
Software Architecture: Industry x State of the Art
please comment-OOP BAD
Simple Question