What is a good design in programming?

A good design is efficient:
in the amount of space the program takes up, or in the time required to implement the program

A good design is reusable:
it involves chunks of code that the programmer might be able to use at a later date

A good design is understandable:
it allows the programmer to know exactly what was going through his/her head at the time he/she first thought out the program

A good design and therefore a good program is extensible:
It provides the tools with which to extend--or branch out-- from or within an existing set of classes, group of objects... from an existing space into possibly divergent directions... logically and easily.

A good design is rarely the first design.

( i write | i program | i have a homepage | i take an english class )