floco
floco copied to clipboard
Architecture: missing isolation
Its is currently very hard to take one module and re-use it in isolation. For example if you just wanted to take the 'plock2pdefs' module you also have to import a lot of unrelated other modules.
This comes due to the fact that config
in all modules is a global attribute. If you access any attribute other than your own you have an implicit dependency on another module. This breaks isolation of modules and even worse dependencies are not declared and the only way to find out via error-retry and code-studies.
We should de-couple modules and declare dependencies explicitly, such that you can only access attributes from explicitly declared modules.
I see the following action points:
- Detangle modules.
- Create stricter module interfaces. (where only explicitly imported modules config attributes are actually available, preventing implicity)