Code Complete: Design in Construction

  • 6/9/2004

Key Points

  • Software's Primary Technical Imperative is managing complexity. This is greatly aided by a design focus on simplicity.

  • Simplicity is achieved in two general ways: minimizing the amount of essential complexity that anyone's brain has to deal with at any one time, and keeping accidental complexity from proliferating needlessly.

  • Design is heuristic. Dogmatic adherence to any single methodology hurts creativity and hurts your programs.

  • Good design is iterative; the more design possibilities you try, the better your final design will be.

  • Information hiding is a particularly valuable concept. Asking "What should I hide?" settles many difficult design issues.

  • Lots of useful, interesting information on design is available outside this book. The perspectives presented here are just the tip of the iceberg.