Tuesday, July 15, 2008

Prototype review

I’ve blown some more dust off the application prototype and started to look at it alongside the original design and the new list containing features/ideas/design elements for the version I’m developing for release.

I was surprised at how useable the interface still felt after being on the shelf for around a year.  It didn’t take long to re-familiarise myself with the way the application worked and I was quickly reviewing why I’d made decisions affecting not just the user interface but also the core components. 

The prototype has a working POP3 server, and partner POP3 client, embedded within it which I used to try out various data storage mechanisms.  The final version used a data store based around SQLite which I’m keen to continue using for the application. 

I’d also been working on a string class which brought together various bits of string handling functionality, coded over the years and which I’d used to stop myself blowing a gasket when working with the myriad of string types and handling functionality in Windows.  The string class is a bit of a throwback, being loosely based on the IString class contained in the IBM ICLUI (later Open Class) library but I’d expanded it to include Unicode handling and some interoperability with the COM string classes.  There’s also some REGEX processing and a dusting of SQLite specific functionality in there. 

A quick glance at the prototype code showed that the time spent on commenting wasn’t wasted either.  A large amount of commenting explaining not just what the code was doing but why it was doing it.  Commenting is something that I see skimped on quite a bit on a day to day basis but I see it as essential to readability, understanding and maintainability of code. 

The prototype also has a very well advanced logging class which meant I could fire it up and watch what it was doing.  Logging is one thing I always implement in whatever I write.  The benefits far outweigh the small amount of time required.

No comments: