I have been having a blast working on my feed software idea. I've been trying to apply good programming practices throughout, and although I have very little functional code, I do have some architectural code in place.
As an example, I've got some code in place for using the Decorator
Pattern. Basically, a plugin
can define new functionality and data structures that can be wrapped around
feed items. Thus, while regular feed items contain information like "This
article was posted on
October 20th, 2007 by
Kurt ", a decorator
might add additional information: "...and is currently
unread ". It
looks like this will be mostly transparent to all of the other code (as it
should be!), because later today I'm expecting to tinker with implementing
the Factory Pattern.
The Factory Pattern lets all of the rest of the code be ignorant of the
existence of any decorators; the rest of the code just asks for a feed
article, and any decorators will be automatically attached.
When I actually sat down to code for the first time, I came up with a name for the project: Renquist. You see, I had "True Lies" (1994) on in the background, and Arnold Schwarzenegger had just introduced himself to Tia Carrere as "Renquist. Harry Renquist." I figured, "Hey, if he can dance the tango with Tia Carrere and then blow up some stuff and shoot a bunch of people in the ensuing chase, Harry "Renquist" can do anything." And I'd like this software to be just as capable.