Software Organization
Lately I've been hacking quite a few open source code in the telecom and data com area. One of the interesting thing I came up ( and of course nothing new) is the software organization. I've read Hardware Organization books, but I don't recall any such book on software that I read. There are a few books on crafting good codes with our choice of languages... But what about the organizations. Even source code could make anyone confused if they are not logically organized.
In this particular case I'm talking about some user land libraries. When it comes to closed source, all one needs to do is to expose the contract very very clearly and precisely, and rest of it is hidden anyway. For open source, there is really more responsibility. Without looking at the implementation(s), some of the things I would really like to see are --
- Clear separation of interface files, so an user knows up front what are the interfaces.
- Reflect the naming of files and the organization of files in a logical manner that mimics the specification, for example the functional design of an RFC from ITU.
- Immune to refactoring meaning no illogical introduction of files and or the tree structure.
- Examples of isolation of interface, so that the bindings are very very loosely coupled.
- Replacing old libraries with new one should very very seamless.
Few such libraries seem to have some respect for those five points I just stated, but many don't....
Reader Comments