Open IvoDD opened 8 months ago
As discussed with @willdealtry, the various abstractions are meaningful and each has a specific purpose. It is better to have more abstractions with a single purpose than few abstractions with many functions.
Instead we should write up good header docs to explain the function of each abstraction.
Is your feature request related to a problem? Please describe. The current higher level code structure is confusing and has potentially too many abstractions:
Most of the abstractions in this picture don't do more than just directly call methods from the next portion of the hierarchy.
Also I don't think there is a good reason for
InMemoryStore
to be aStore
rather than aStorage
.Describe the solution you'd like
~I suggest a refactor to simplify these abstractions to something like:~
~
PythonVersionStore ---> Library ---> Storage ---parent-of---> Many (including InMemory)
~~Here
PythonVersionStore
will be responsible for the translation between Python and c++.~~
Library
will be the main point-of-entry exposing all library operations we expose to users.~~
Storage
will be the common interface over all storage types (S3
,InMemory
,Azure
, etc.).~Write down decent inline documentation explaining the function of each abstraction at the top of the header file.
Describe alternatives you've considered A clear and concise description of any alternative solutions or features you've considered.
Additional context Add any other context or screenshots about the feature request here.