A certain monk said to master Suku: “I have studied your
code to learn from your example, but on one question my eyes
have not yet been opened.”
The monk unfolded a source listing. “Consider this tiny
application, where you search log files for errors. I would
have done all processing in the application class. Yet you
define a host of additional classes: a LogFileReader
interface which has only a readEntry method, a LogFileEntry
to be returned by the method, and a SimpleLogFileReader
which is the only implementation of the interface! Why all
this formality for so small a project?”
Suku replied: “Go to the stables, untie my horse, and ride
him up the Drunken Serpent’s Road to the peak of this
mountain. Then ride down and tell me what you have
learned.”
The monk reappeared that evening, bruised and dirty. “I have
learned that your horse does not like being ridden bareback.
Also, that one may fall a long way down the cliffside if
thrown.”
Suku produced a saddle, breastplate, bridle, bit and reins,
saying: “No matter how short the journey, the rider should
be absolutely certain of where to sit and how to steer.”
The monk rubbed a huge bump on his head. “But what will the
ill-tempered horse be certain of?”