-
Notifications
You must be signed in to change notification settings - Fork 10
Description
In my objective to be able to export a nice library to calculate dependencies from the codept project, several points need to be clarify to improve step by step the project - this is why there is a 1/n. Each of these points will be of interest in what I think is a good library and we can discuss the interest of each and see if it is worth spending time on it or not. So this is going to be a series of questions possibly associated with PRs.
The first point I'd like to highlight is the exposure of the guys. From what I can see from the project, the use of modules often implies implicit knowledge about the use of certain types which only becomes clear through their use. A first step that would help clarify the interest of the modules (and then export them as a library) would be to:
- abstract some of the types,
- add some functions to create values corresponding to the types and,
- add some documentation to finally delimit the interest of these modules in relation to each other
The first modules in which there is surely a particular interest to abstract would be the Name, Path and Namespaced modules. For the last two modules - and I've noted this several times in the code - one could ensure that a Path cannot be empty (eg. an empty list). This would partially change the Namespaced type, which would have an optional namespace (currently embodied as an empty list).
What do you think about this change?