Win a copy of The Java Performance Companion this week in the Performance forum!
  • Post Reply
  • Bookmark Topic Watch Topic
  • New Topic

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

 
Sol Mayer-Orn
Ranch Hand
Posts: 311
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
Hi,

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
Posts: 8791
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
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.
 
Balachandran Paranjothimani
Ranch Hand
Posts: 43
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
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.
 
Ilja Preuss
author
Sheriff
Posts: 14112
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
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...)
 
Sol Mayer-Orn
Ranch Hand
Posts: 311
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
thanks everyone for the useful replies
 
  • Post Reply
  • Bookmark Topic Watch Topic
  • New Topic