-
-
Notifications
You must be signed in to change notification settings - Fork 3.3k
Labels
component: libre-officedev: code-qualityIssues related to code or architecture decisionsIssues related to code or architecture decisions📌 Pinned📍 AssignedAssigned by assign-issue-action (or manually assigned)Assigned by assign-issue-action (or manually assigned)🔔 reminder-sent
Description
Project: Refactor JabRef-OpenOffice components
There is a lot of scope for improvement in code quality in JabRef's OpenOffice/LibreOffice integration components to make it much more maintainable. These include, but are not limited to:
- Unification of error handling mechanism for JabRef-OOdoc interaction: Currently there exists a mix of returning Optional, throwing exceptions, and using
OOResult/OOVoidResult. We can standardize the error handling approaches for consistency. - Use of Dependency Injection
- Break down large methods like
guiActionInsertEntry() - Use more constants instead of magic strings e.g. as used in the error messages
- Use of built-in functional interfaces: for methods that take
Supplier<OOError>as parameters - will improve code clarity - Use of modern Java features like streams and optional chaining
- Separation of concerns: classes such as
OOBibBasehandle both business logic and UI interactions. We can consider extracting UI-related code into a separate class or layer. - Inner classes like
ComparableMarkcan be converted to record classes. - Unification of backend for CSL and JStyles (Optional, and a big project - I am fine with all the CSL logic being separate due to the difference in code philosophy and time required for unification).
I will be working on this, but any sub-issue here is free-to-take, so will be using this issue to track the state/progress.
The list is not yet complete, so will be updated from time to time as I come across more scopes for improvements.
Reactions are currently unavailable
Metadata
Metadata
Assignees
Labels
component: libre-officedev: code-qualityIssues related to code or architecture decisionsIssues related to code or architecture decisions📌 Pinned📍 AssignedAssigned by assign-issue-action (or manually assigned)Assigned by assign-issue-action (or manually assigned)🔔 reminder-sent
Type
Projects
Status
In Progress