Wednesday, May 24, 2006

Software Best Practices Wiki?

I've been thinking about creating a wiki for software development "best practices."
Something that might contain entries like this:

1. Where Applications Save Data

Many applications need to save data between invocations of the application.
Some examples are:
  • User Preferences.
  • Documents or other work product from the application (web pages, spreadsheet, reports, images, etc.)
  • Cache files.
  • Other long-lived data (bookeeping data, emails, audit trails, etc.)

1.1. Forces at Work

Some of the forces at work in determing where an application should save data include:
  • Access ability: the application needs write and read access.
  • Upgradeability: some data must survive a software upgrade.
  • Multiple users: some applications are used by many users.
  • Privacy and security: Some data must be protected from unauthorized access.
The types of data an application saves are:
  • Temporary vs. Long-Lived
  • User-associated vs. Application-associated
  • Internal use by the application vs. Suitable for distribution outside the application environment.
  • 1.2. General Principles

  • Application shall:
  • Save Long-Lived data where it will survive an upgrade.
  • Save Temporary data where it is easily garbage-collected.
  • Save per-user data in a place belonging to the user.
  • Save data for distribution in a place the user is explicitly informed about.
  • Use encryption to help secure privacy.

Technorati Tags:

No comments: