We saw the basics of how to use the shelve module. This includes creating a shelf and designing keys to access the objects that we've placed in the shelf. We also understood the need for an access layer to perform the lower-level CRUD operations on the shelf. The idea is that we need to distinguish between the class definitions that are focused on our application and other administrative details that support persistence.
Summary
Design considerations and tradeoffs
One of the strengths of the shelve module is allowing us to persist distinct items very simply. This imposes a design burden to identify the proper granularity, of the items. Too fine a granularity and we waste time assembling a container object from pieces...