Future directions #50
Closed
falk-werner
started this conversation in
Ideas
Replies: 1 comment 1 reply
-
I think for the intention this script had, the featureset is big enough. It can stay as it is in one python file. An electron project could be interesting as well, from the same reasons, to get a little practice with it. |
Beta Was this translation helpful? Give feedback.
1 reply
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
-
Hi there,
note.py started in December 2022 with the idea of a single and simple python script in mind. It was not intended to become a full-featured note taking tool but to be a practical tool reduced and focused to it's primary use case. Another reason for note.py was to improve the authors python programming skills and to get in touch with some basic python programming environment and skills. Therefore tools such as pylint and pytest were introduces early in the project.
At the time this discussion starts, note.py's main script has about 1.260 lines of code in a single script. We have implemented a good set of features and I wonder about the future directions:
Should we keep our initial idea of a single python script or should we split the code in multiple modules?
I really like the idea of a single script, since it is very easy to handle and to change. If we keep this approach, I would tend to not add many more features, since the script may become too complex to handle. I also would refactor the script to remove some unnecessary abstraction. We have started with some abstractions to distinguish UI code from business logic in order to make business logic testable (however we did not implemented much tests since then).
If we decide to split note.py into multiple modules, we can keep our abstractions and should focus on better unit test coverage to make it easier to enhance and refactor our code base. We can get rid of the inline font and may want to create executables for linux (appimage) and windows (exe). However, it will be harder to apply changes on demand.
A third option might be a project reboot in another environment, such as https://www.electronjs.org/. With electron, we can use HTML/CSS or some framework to render markdown. We are not limited to tkinter and it would be easy to integrate UI-centered features.
@hmlampe: Do you have any suggestions / preferences ?
Beta Was this translation helpful? Give feedback.
All reactions