Draft: Refactor nucleus to remove hard dependencies on structs
Description
The idea is to add an aditional layer around the core models
(like networkElement and others).
This will enable more flexibility in the nucleus
package and remove problems with circular dependencies and the question where to place interfaces for our services, stores, ...?
.
This should also remove the interfaces
folder that is filled with interfaces and structs.
After this we can also think about moving movings like rbac
and topology
back in the nucleus instead of in own packages and shared functionalitiy (like stores and services).
This will roughly follow the ideas of ports&adapters, hexagonal architecture and/or onion architecture. (I like this article about it)
Related Issue
Motivation and Context
How Has This Been Tested?
Screenshots (if appropriate):
Types of changes
-
Bug fix (non-breaking change which fixes an issue) -
New feature (non-breaking change which adds functionality) -
Breaking change (fix or feature that would cause existing functionality to change)
Checklist:
-
My code follows the code style of this project. -
My change requires a change to the documentation. -
I have updated the documentation accordingly. -
I have read the CONTRIBUTING document. -
I have added tests to cover my changes. -
All new and existing tests passed.
Edited by Andre Sterba