
This is the Title of the Book, eMatter Edition
Copyright © 2007 O’Reilly & Associates, Inc. All rights reserved.
Layered Library Design
|
163
The fact that the word miscellaneous only appears once in Table 8-1 is a good sign.
The Subversion development team is serious about making sure that functionality
lives in the right layer and libraries. Perhaps the greatest advantage of the modular
design is its lack of complexity from a developer’s point of view. As a developer, you
can quickly formulate that kind of big picture that allows you to pinpoint the loca-
tion of certain pieces of functionality with relative ease.
Another benefit of modularity is the ability to replace a given module with a whole
new library that implements the same API without affecting the rest of the code base.
In some sense, this happens within Subversion already. The libsvn_ra_dav, libsvn_
ra_local, and libsvn_ra_svn all implement the same interface. And all three commu-
nicate with the Repository Layer—libsvn_ra_dav and libsvn_ra_svn do so across a
network, and libsvn_ra_local connects to it directly.
The client itself also highlights modularity in the Subversion design. While Subver-
sion currently comes with only a command-line client program, there are already a
few other programs being developed by third parties to act as GUIs for Subversion.
Again, these GUIs use the same APIs that the stock command-line client does. ...