Technical Debt: Module Organization #833
Replies: 3 comments 16 replies
-
I think you are very confused on what should be made an extension and what shouldn't. Anything inspector, navigator or even the text view should be core elements and not extensions not even built in extensions. It should be core components at all times. |
Beta Was this translation helpful? Give feedback.
-
To elaborate on the case of |
Beta Was this translation helpful? Give feedback.
-
Update on this issue, after the meeting on 11/05/2022 We came to the conclusion that we are going to try to split the logic and views in the app. The reason for this is that some modules depend upon another because they require its views. The logic, if possible, will stay in separate modules so they can be reused. Also this way the logic can be tested separately from the rest. The views will move to core application. In case of ViewModels, we'll have to check whether it makes sense to move them in the core as well or if it's better that it stays in it's respective module. |
Beta Was this translation helpful? Give feedback.
-
Our application's user interface is laid out similar to Xcode like so.
Our Modules folder doesn't quite reflect this. I've opened #821 and began revising Modules to reflect this in a PR, #823.
As I got into moving the TabBar from the main app into its own module, I encountered cyclical dependency declaration errors.
You can see what the code looks like in #831.
The problem was that TabBar depended on CodeEditUI which depended on WorkspaceClient because
ToolbarBranchPicker
and was in CodeEditUI. So I moved ToolbarBranchPicker into Git which seemed more appropriate but I ran into similar cyclical issues.So @matthijseikelenboom and I thought about our architecture.
Because ToolbarBranchPicker is single-use, would it be more appropriate to put it in the main app?
But then again, our tab bar, navigators and inspectors are also single-use. By that logic we'd also move those into our main app.
But aren't each navigator and inspector eventually going to be a bundled extension?
Anyways, we could use some input so we can precede with confidence as we scale.
Cc: @CodeEditApp/maintainers
Beta Was this translation helpful? Give feedback.
All reactions