Sooner or later, it is time to turn from analyzing and designing to implementing and testing. While fully analyzing the problem and designing the solution is necessary, it is not sufficient — your customer will not be happy if you deliver a specification and a well-documented design but neglect to deliver working code.
The process of implementing a program from a well-crafted design is quite different from the kind of midnight hacking we all love and miss. When you first learn to program, you typically build smaller, less-complex programs with short shelf lives, which few other programmers will need to maintain and extend. On the other hand, in today's commercial software application environment, the initial cost of development may be dwarfed by the cost of maintenance and product enhancement. It is incumbent on us to design well and, when we do, implementation becomes an exercise in realizing that design in code.
The excerpts of code shown in the rest of this chapter are taken from the source code for the example program, Phish. The full code for Phish is available for download from the Wrox website:
.http://www.wrox.com