Tuesday, 17 July 2007

Object Design Theory

For those of us who have not spent our lives immersed in Object design theory it can be quite confusing to find out there is a whole universe of techniques and design styles and acronyms when creating your code. Usually on closer inspections of the theories you normally find out that the latest pattern of design guidance is something you have always done the only difference is that you did not know what it was called, which is always reassuring however you do ten to feel overwhelmed until you find out this fact.

Sometimes when you listening to Object design theorists you also hear new techniques of design which you had always thought where no-no’s but now seem to be acceptable in the right place. For example I recently heard someone tell me that using public fields is acceptable when you never plan on doing anything special when the value is set or got, something I had burned people for doing!

The more I follow the path of investigating coding theory the more I am coming to the conclusions that there is no one rule which covers every situation, there is no all encompassing pattern of design its what ever fits the situation, which means we need to understand every situation and have a pattern or design style to fit it. However do not get me wrong there is never an excuse to write bad code.

On the topic of object and code design the guys at dnrTV have just finished a two part screen cast coving some of these techniques, they call it ‘Fundamentals of Agile Design’. Do not be put off by the agile design title as it’s a very informative discussion and presentation of how best to design your code for flexibility and future proofing, it also talks a lot about some of the design theories and acronyms. Have it on while you work, trust me there is not so much to watch but a lot to listen to.

To watch or download part 1 go here : http://www.dnrtv.com/default.aspx?showNum=73

To watch or download part 2 go here : http://www.dnrtv.com/default.aspx?showNum=74

Before you watch the video (if you download them) you will need the Techsmith Video Codec (160 K)