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

Make it gopherish #7

Open
bartossh opened this issue Mar 5, 2022 · 1 comment
Open

Make it gopherish #7

bartossh opened this issue Mar 5, 2022 · 1 comment
Assignees
Labels
enhancement New feature or request

Comments

@bartossh
Copy link
Contributor

bartossh commented Mar 5, 2022

Before starting with any new feature I would like to clear and reorganize the code a little bit, so it would be more GO like and less C/Python like.
I don't want to impose my point of view or criticize as the whole idea and code looks handcrafted.
This is well done but rather lacks gopher polish. I am afraid it can make adding new features hard and clunky.
But with a few fixes, I think it can make it testable, organize it in a way that the package will depend on abstraction rather than on implementation. Then it will be able to decouple some parts and focus on improving performance if needed.
The success of the package lies in how easy it feels for developers to write code without all the time referring to the documentation.

I would propose to start from the simplest and then go for the hardest:

  • Make a feature branch so the above can be worked on independently not blocking any development.
  • Rewrite names (func, vars, definitions and docs) to be written according to GO standard.
  • Restructure code so public dependencies are well documented and depend on abstraction rather than on implementation so the package user may inject its own custom solution or we may provide more than one implementation available in easy to use way.
  • Write tests and benchmarks.
  • Each step will have a separate branch rooted from the feature branch.
  • Feature branch will be then merged to the main branch after the whole feature is accepted.

WHY IT'S IMPORTANT.

This project is still in the early stage of development and has potential. After decoupling some logic we may know which part needs improvement.
This will unlock more possibilities for the package user.
This will allow creating smaller binaries as the package user will have more freedom in choosing what goes to the project she/he is working on.

Please let me know if and how it is possible.

Thanks. 👍 job.

@unrooted unrooted added the enhancement New feature or request label Mar 9, 2022
@p506
Copy link

p506 commented Apr 17, 2022

Tanks

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request
Projects
None yet
Development

No branches or pull requests

4 participants