by Asim Jalis
Here is one way of getting rid of messy complexity in
This occurred to me today for a specific problem that I have been
working on for some time.
I am writing a program that automatically generates documentation
in the Word XML format. Now the Word XML format is unpleasant.
It's all XML, and human readable, so it is can be generated from
a program as text. Still, the format is complex. So this is a
difficult task and adds significantly to the complexity of the
Here's the grain of an idea on how to get around this complexity:
Instead of generating the XML in the program, create a template
file and copy the XML from the template file to the generated
file. The template file can be generated using Word, so creating
it is not hard.
While it's hard to write a program that generates complex XML, it
is relatively easy to write a program that transforms existing
XML and then inserts it in the right place.
The general pattern here is: replace generation with
This is related to the general idea of leverage. Instead of
building something from scratch, find a way to make it from
something you already have. The simplified version of the program
leverages the template file instead of working hard to do the
creation from scratch.