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