Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Project: Refactor and unify JabRef OO components #11829

Open
1 of 9 tasks
subhramit opened this issue Sep 25, 2024 · 1 comment
Open
1 of 9 tasks

Project: Refactor and unify JabRef OO components #11829

subhramit opened this issue Sep 25, 2024 · 1 comment
Assignees
Labels
openoffice/libreoffice type: code-quality Issues related to code or architecture decisions

Comments

@subhramit
Copy link
Collaborator

subhramit commented Sep 25, 2024

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 OOBibBase handle both business logic and UI interactions. We can consider extracting UI-related code into a separate class or layer.
  • Inner classes like ComparableMark can 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, 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.

@subhramit subhramit self-assigned this Sep 25, 2024
@subhramit subhramit added openoffice/libreoffice type: code-quality Issues related to code or architecture decisions labels Sep 25, 2024
@subhramit subhramit changed the title Refactor and unify JabRef OO components Project: Refactor and unify JabRef OO components Sep 25, 2024
@leaf-soba
Copy link
Contributor

I want take the task "Inner classes like ComparableMark can be converted to record classes."

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
openoffice/libreoffice type: code-quality Issues related to code or architecture decisions
Projects
None yet
Development

When branches are created from issues, their pull requests are automatically linked.

2 participants