The Design Example

This book describes the development of a system that incorporates many features of some of the systems that have been created in the past. The experience of creating those systems forms some of the guidelines for developing new systems. Developers are not perfect. We cannot read our client's mind, and his mind might change. The development story outlined in this book shows where decisions were made that had unanticipated ramifications.

This book presents one of many possible designs that can solve your clients' requirements. There is no absolute measurement method for evaluating the "goodness" of a design. There are obviously good designs and bad designs, but there are many gray areas as well. Counting the number of methods, lines of code, or number of classes seems like a very objective way of measuring, but often the resulting number is not necessarily meaningful, except for the extremes. I measure designs with a gut feeling. This parallels the "code smells" of refactoring. A system's overall design gives me a gut feeling ranging from "warm tummy" to "upset stomach."

Get Prefactoring now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.