neurax icon indicating copy to clipboard operation
neurax copied to clipboard

Make it gopherish

Open bartossh opened this issue 2 years ago • 1 comments

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.

bartossh avatar Mar 05 '22 17:03 bartossh

Tanks

p506 avatar Apr 17 '22 20:04 p506